Add remove member

This commit is contained in:
Sébastien Blin 2020-11-21 17:25:57 -05:00
parent f8e5969244
commit 4749075b59
1 changed files with 26 additions and 7 deletions

View File

@ -146,7 +146,20 @@ So, if Alice wants to ban Denys, she had to propose a vote with the sequence num
5. When we are sure that someone is synched, remove erased=time::now() and sync with other user's devices
6. All devices owned by the user can now erase the repository and related files
**TODO, determine how this will work**
## Remove a device from a conversation
This is the only part that MUST have a consensus to avoid conversation's split, like if two members kick each others from the conversation, what will see the third one?
This is needed to detect revoked devices, or simply avoid to get unwanted people present in a public room. The process is pretty similar between a member and a device:
*Alice removes Bob*
Note: Alice MUST be admins to vote
+ First, she votes for ban Bob. To do that, she creates the file in /votes/members/uri_bob/uri_alice (members can be replaced by devices for a device) and commit
+ Then she checks if the vote is resolved. This means that >50% of the admins agree to ban Bob (if she is alone, it's sure it's more than 50%).
+ If the vote is resolved, files into /votes can be removed, all files for Bob in /members, /admins, /CRLs, /devices can be removed (or only in /devices if it's a device that is banned) and Bob's certificate can be placed into /banned/members/bob_uri.crt (or /banned/devices/uri.crt if a device is banned) and committed to the repo
+ Then, Alice informs other users (outside Bob)
# Used protocols
@ -180,12 +193,18 @@ Moreover editing messages will be possible! (`commit --fixup`)
```
/
- Admins (public keys)
- Members (public keys)
- Devices (certificates of authors to verify commits)
- Banned
- Devices
- Accounts
- invited
- admins (public keys)
- members (public keys)
- devices (certificates of authors to verify commits)
- banned
- devices
- members
- votes
- members
- uri
- devices
- uri
- CRLs
```