Browse Source

writeup: the design section is pretty much done

master
eta 3 years ago
parent
commit
1d38b37620
  1. 8
      ircd-groupchats.lisp
  2. 1130
      writeup/NEA writeup.lyx
  3. 15
      writeup/gc-make.plantuml

8
ircd-groupchats.lisp

@ -1,13 +1,12 @@ @@ -1,13 +1,12 @@
(in-package :nea/ircd)
(defparameter *groupchat-capabilities*
'(:send-message :change-roles :change-subject :invite-user
:change-invite-only :remove-user)
'(:send-message :change-roles :change-subject)
"List of defined groupchat capabilities in this implementation.")
(defparameter *standard-roles*
'((:operator . (:*))
(:voiced-user . (:send-message :change-subject :invite-user))
(:voiced-user . (:send-message :change-subject))
(:user . (:send-message)))
"Alist of standard role names to the capabilities assigned to each role.")
@ -27,9 +26,6 @@ Will add the *STANDARD-ROLES* to the newly created groupchat, and add this serve @@ -27,9 +26,6 @@ Will add the *STANDARD-ROLES* to the newly created groupchat, and add this serve
(execute-one (:insert-into 'groupchats
:set 'uuid '$1 'subject '$2)
uuid-db (or subject ""))
(execute-one (:insert-into 'groupchat_sponsoring_servers
:set 'groupchat_uuid '$1 'server_id '$2)
uuid-db *local-server-id*)
(loop
for (name . caps) in *standard-roles*
do (progn

1130
writeup/NEA writeup.lyx

File diff suppressed because it is too large Load Diff

15
writeup/gc-make.plantuml

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
@startuml
start
:Look up the provided channel name\nin the server directory;
if (Is there an entry?) then (yes)
:Add a membership entry for the user,\ngiving them the //user// role;
else (no)
:Create a groupchat;
:Insert a new directory entry with\nthe given name and the groupchat UUID;
:Insert the standard set of roles into\nthe database for that groupchat;
:Add a membership entry for the user,\ngiving them the //operator// role;
endif
:Let the user know about the join;
:Deliver any message history to the user;
stop
@enduml
Loading…
Cancel
Save