element-hq / element-meta

Shared/meta documentation and project artefacts for Element clients
75 stars 12 forks source link

Allow roles #87

Open Biep opened 4 years ago

Biep commented 4 years ago

Many groups have members of different kinds, such as teachers and pupils, or gurus and n00bs, or researchers, patients and caregivers. In such cases it can be useful to make those groups visually distinct - especially in situations where a mix-up might be harmful, as in a non-caregiver posing as one and starting to solicit private information, or a non-teacher prankster giving false instructions. Currently a work-around is possible using flair, but if room administrators could simply assign members to the various classes, that would be much better. Once communities are there, as 'super-rooms', such assignment could also be done on that level. Remark that this is fully orthogonal to power levels - though once those become multidimensional, one of their dimensions could be used to indicate roles. Ideally the roles should be visible in the list to the right - which might even be sorted by role, akin to the way tags sort the room list to the left.

Biep commented 4 years ago

This is not a suggestion specifically for communities - I just mentioned that such rôles could be assigned at all hierarchical levels: from threads to communities. (In fact, if the hierarchy is implemented properly, this would automatically become possible: whatever works for rooms should keep working for rooms of all levels.) These rôle tags should also be addressable: if there is a tag 'teacher', then a mention of '@teacher' should be interpreted as a mention for all members with the tag 'teacher'.

turt2live commented 4 years ago

We just use labels like that so we can find it in the future. It's not to say it will be solved with communities, just that it's a case to consider while working on communities.

Biep commented 4 years ago

OK. Thanks!

dylhack commented 4 years ago

Could this be accomplished with a state event / lab feature? (ie im.vector.user_roles with a blank state key)

{
    "roles": [
        {
            "name": "Member",
            "position": 0,
            "members": ["@user:example.org"]
        }
    ]
}
Property Type Description
name string Role name
position int Role position in members list
members string[] Role members - MXID's
HansJK commented 4 years ago

A role system is far superior to a hierarchical level one for larger communities. This is why Discord have such a powerful moderation tools and bots. Hope to see this with Community 2.0.

ArtexJay commented 1 year ago

This is a must/dealbreaker for me and my group

HarHarLinks commented 1 year ago

Some Element derivatives such as BundesMessenger implement something like this using different approaches.