disappearing messages
Value
- As a signal user adopting signalboost, I expect disappearing messages to "just work"
- Because they do on signal
- (So that i can have some level of assurance that sensitive messages are likely to disappear more often than they are to be retained because someone who wants to retain them must take a screenshot, which is more work.)
Behavior
[ ] Setting default expiry for new users
GIVEN a maintainer has just created a channel
- THEN the first admin will receive a welcome message with the disappearing message timer set to 1 week
GIVEN a user has just subscribed to a channel
- THEN they will receive a welcome message with the disappearing message timer set to 1 week
[x] Changing expiry time
GIVEN a channel with disappearing messages set to 1 week
- WHEN an admin sets the disappearing message timer to 6 hours (in her conversation with the channel)
- THEN the disappearing message timer will be set to 6 hours for all admins and all subscribers (on their own conversations with the channel)
[x] Enforcing expiry time
GIVEN a channel with disappearing messages set to 1 hour
- WHEN a subscriber sets the disappearing message timer to off (or any other value other than 1 hour)
- THEN the channel changes the disappearing messages timer back to 1 hour
- AND THEN the channel sends a message that says
Sorry, only admins are allowed to set the disappearing message timer on this channel.
Implementaiton Notes
- all solutions will involve:
- adding an
expiryTimefield (with valid enum values) to thechannelstable - sending a signald message of type
set_expirationfrom the channel number to every member of the channel to set and enforce the admin-proscribed expiry time - working around upstream issues blocking correct functioning of that message. see https://gitlab.com/thefinn93/signald/issues/10 and ask @aguestuser about how updating will require adapting to breaking changes to the safety number changing API utilized in #100 (closed)
- adding an
- Option 1 for triggering expiry time updates will involve:
- inspecting the
expiryTimefield on incoming signald messages from admins and looking for values that do not match the storedexpirtyTime(normal expiry time changes show up in signald as empty messages with a new expiry time), then setting the channel'sexpiryTimefor the new value
- inspecting the
- Option 2 will involve parsing english language text for valid enums, which is sort of a bummer. hopefully option 1 works!
Edited by aguestuser