status-im / status-desktop

Status Desktop client made in Nim & QML
https://status.app
Mozilla Public License 2.0
273 stars 76 forks source link

[GroupChat] Add possibility to delete group #14311

Open alexandraB99 opened 3 months ago

alexandraB99 commented 3 months ago

Description

When the group chat's owner is leaving the group chat, the chat should be deleted. Figma.

gc

jrainville commented 3 months ago

We checked the Discord behaviour, and they do not do this. Instead, when the owner leaves, it promotes a new owner, which I think makes more sense.

@benjthayer @John-44 do we really want the delete group feature? It's weird to implement, because the group should still exist for history at least. Wouldn't it be better to just make someone else the owner?

benjthayer commented 3 months ago

We checked the Discord behaviour, and they do not do this. Instead, when the owner leaves, it promotes a new owner, which I think makes more sense.

@benjthayer @John-44 do we really want the delete group feature? It's weird to implement, because the group should still exist for history at least. Wouldn't it be better to just make someone else the owner?

I think we did consider this but it was decided at the time that the nomination process of the new group owner might be tricky - we either add the burden to the existing group chat owner to nominate a new owner and require a flow for nomination and accepting/declining ownerhsip or we run the risk of auto-assigning a member who perhaps shouldn't have that level of control over the group chat.

@jrainville do you know what logic Discord uses to assign a new owner? Is it based on any metrics relating to engagement in the chat etc?

jrainville commented 3 months ago

@jrainville do you know what logic Discord uses to assign a new owner? Is it based on any metrics relating to engagement in the chat etc?

@benjthayer I'm not sure. It seems random. I tried to check in the Discord docs, but couldn't find it.

IMO, just giving the rights to a a random person is not that bad. Being an owner of a group doesn't mean that much. I think one of the only advantage is you can kick people. So if a "bad actor" becomes owner, then I guess he'll kick you, which is not worse than the group just getting deleted if the OG owner leaves.

We should obviously add the option to promote someone as owner. Like right-click on the member in the right side bar to promote.

Now, I don't know that code that well, so maybe it's not that simple to make someone else the owner, considering keys are being handled here. I'm gonna ask the experts here @cammellos @osmaczko

cammellos commented 3 months ago

We should obviously add the option to promote someone as owner. Like right-click on the member in the right side bar to promote.

I think that's how it was before and imo the simplest mental model and the more consonant to the technology, I don't think it was worth the effort to change it at this stage of the app.

Giving admin rights to the earliest member in is not difficult, it requires no protocol changes, by convention people can assume the owner is the oldest member of the chat, so that's not difficult to accommodate (don't think it's worth the development effort as per above).

I would find leaving the chat orphaned fine, deleting the chat on other devices is very poor in terms of UX and I think unexpected, since users might rely on it for storing certain information, and has no security value since it's a cooperative effort.