Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No way to promote/demote people in a group #5240

Closed
turt2live opened this issue Oct 11, 2017 · 28 comments
Closed

No way to promote/demote people in a group #5240

turt2live opened this issue Oct 11, 2017 · 28 comments
Assignees
Labels
A-Spaces Spaces, groups, communities P1 T-Enhancement

Comments

@turt2live
Copy link
Member

turt2live commented Oct 11, 2017

Description

This is particularly needed if someone creates a group by accident and wants to hand it off to someone else. In my case, I removed myself from the group, leaving my other account stuck with a group they can't manage. I should be able to promote people using power levels or similar.

Would be even nicer if multiple people could be at the same level.

Version information

  • Platform: web (in-browser)
  • Browser: Chrome 61
  • OS: Windows 10
  • URL: riot.im/develop
@ara4n
Copy link
Member

ara4n commented Apr 11, 2018

the fact users can't delegate admin to other users is a massive pain in terms of letting them define a sensible community structure.

@Cadair
Copy link

Cadair commented Apr 11, 2018

and bus-factorness.

Not to mention I really want to be able to delegate admin of my communities to my bot 😉

@awgneo
Copy link

awgneo commented Nov 12, 2018

This would be an excellent feature:)

@kenneth-larsson
Copy link
Contributor

While waiting for the official functionality my team has been fiddling with this in the production database.
We've added group admins a few times and haven't had any problems yet.

Here are the instructions I wrote:

Here’s how to make someone a community admin.

All community members can be listed using:

SELECT * FROM group_users;

Start a transaction and set a user as admin in a certain community:

BEGIN;
UPDATE group_users SET is_admin='t' WHERE group_id='+community:domain.com' AND user_id='@user:domain.com';

Make sure that only one row is updated. You should see UPDATE 1. You could also list the community members again to see the result. If everything is correct, commit the change:

COMMIT;

If everything went wrong just rollback the changes:

ROLLBACK;

@subins2000
Copy link

Is there a hack in the client to do this ?

@t3chguy
Copy link
Member

t3chguy commented Feb 23, 2019

@subins2000 nope, the API does not support it yet.

@DonaldTsang
Copy link

In Discord, there are "Server Mods/Admin" (equivalent to having mods/admins in communities)

@subins2000
Copy link

@t3chguy Should this be a Synapse feature request then ?

@Charlemagne3
Copy link

Someone linked this PR in an old synapse PR: matrix-org/synapse#3926 and appears to have closed it based on this issue being a duplicate, however, it is clear that this is a data layer request and not a UI request.

@RicoNosa
Copy link

RicoNosa commented Apr 17, 2019

While waiting for the official functionality my team has been fiddling with this in the production database.
We've added group admins a few times and haven't had any problems yet.

Here are the instructions I wrote:

Here’s how to make someone a community admin.
All community members can be listed using:

SELECT * FROM group_users;

Start a transaction and set a user as admin in a certain community:

BEGIN;
UPDATE group_users SET is_admin='t' WHERE group_id='+community:domain.com' AND user_id='@user:domain.com';

Make sure that only one row is updated. You should see UPDATE 1. You could also list the community members again to see the result. If everything is correct, commit the change:

COMMIT;

If everything went wrong just rollback the changes:

ROLLBACK;

@kenneth-larsson, can you please explain to me how to safely Update rows in the database ?

What I tried :

  • Stop matrix-synapse.service
  • Update rows
  • Start service

But then some rooms, communities or chat history is unavaible, until I ROLLBACK;

@kenneth-larsson
Copy link
Contributor

kenneth-larsson commented Jun 25, 2019

@RicoNosa

@kenneth-larsson, can you please explain to me how to safely Update rows in the database ?

What I tried :
* Stop matrix-synapse.service
* Update rows
* Start service

But then some rooms, communities or chat history is unavaible, until I ROLLBACK;

That's strange. Are the database changes available for all users (the Synapse service account) before they're committed?
We have always committed the changes to the database before verifying in Synapse. I guess you can revert a one-row-change as easy as doing a rollback(?).
Also, you might need to reconnect to notice the community admin change.

We do this while Synapse is running and we're still using Synapse v0.34.1.1-py3 (in Docker with a separate container for Postgres). We will upgrade to Synapse v1 later this year, but we still haven't tested if this works there.

I cannot guarantee that this update is safe, but it works for us.
The reason we use BEGIN / COMMIT / ROLLBACK is to safely check that the change only affect the row we want (we usually don't change more than one row at the time).

@tmladek
Copy link

tmladek commented Jul 28, 2019

Just to make sure, by "groups", you mean what's now called "communities", right?

@t3chguy
Copy link
Member

t3chguy commented Jul 28, 2019

Yup

@TorstenScheck
Copy link

I just fell into the same trap, when I created a community room with an inappropriate user.

If I had known this before, I would have created a special admin user just for this room, so the credentials could be passed to the admin/moderator.

As long as the feature is not available, this should be prominently mentioned in the first steps guides.

@TorstenScheck
Copy link

[...]

If I had known this before, I would have created a special admin user just for this room, so the credentials could be passed to the admin/moderator.

Now I'm confused. I've just found out, that I can click on a room member and change his privilege level via a drop-down list box.

Isn't that the feature, which was reported missing?

@tmladek
Copy link

tmladek commented Aug 2, 2019

Isn't that the feature, which was reported missing?

Promoting and demoting people in rooms works perfectly fine. There is yet no equivalent for communities however, which are "a level above" rooms.

@TorstenScheck
Copy link

Ah! Thank you.

I still have to get used to the terminology: room vs. group/community.
I checked the FAQ now.

I understood a "group" as a group of persons, rather than a group of rooms.

@marcusmueller
Copy link

This issue is giving us a headache, as we've got an international conference coming up, and thus would need the group admin to be 100% available 24h/7d, which is... not a healthy approach to adminship :)

What can we do to help this 2 years p1 level issue be resolved?

@aaronraimist
Copy link
Collaborator

@marcusmueller well you could sponsor work on communities. Contacting @matthew:matrix.org is probably the best way to do that.

Though if you are running an international conference surely you have the resources to host your own Matrix server where you could just edit the database to get multiple admins.

@marcusmueller
Copy link

@marcusmueller well you could sponsor work on communities. Contacting @matthew:matrix.org is probably the best way to do that.

:) will have a talk with backoffice about funding delegation; we're a FOSS project ourselves, might or might not be easy to cross-fund another project. I'll honestly discuss this, though!

Though if you are running an international conference surely you have the resources to host your own Matrix server where you could just edit the database to get multiple admins.

We indeed do have a hosted server of our own and we're aware of the ability to just add admins in the Synapse database (and as FOSS project, running our own Synapse / paying someone to keep it running does seem a bit out of the standard)!

Sadly, as you can imagine, we'd like to give our conference committee the freedom to promote group admins on the fly, so that's not really much of an option.

Point is, even me adding an appropriate group/<group_id>/add_admin_user (or similar) RestServlet in Synapse that would make it possible do that via API isn't going to help much if it then doesn't fit philosophy of the client who'd use it most. Now, my Python is OK, my JS / TS certainly isn't. I could best case contribute that server feature. So, if I do that, I'd like some guidance on what the Element frontend wants to see to avoid wasting TS developer cycles.

@stephanerosa
Copy link

For what it's worth, I have used many times the is_admin='t' SQL trick above on communities without ever stopping the matrix service and never encountered any issue.

Nevertheless, I haven't looked at the code but there are inconsistencies between the user panel of Rooms and Communities which let me guess that the code is the same and there already but not functioning properly in the context of communities. In particular:

  • The Avatar doesn't show up
  • The Online status says 'Unknown'
  • The Role banner and edit button seems missing but maybe it just hides because of the context

Is this going to stay unfixed until Communities v2 ?

image

@turt2live
Copy link
Member Author

Is this going to stay unfixed until Communities v2 ?

Almost certainly, yes.

@t3chguy t3chguy self-assigned this Dec 15, 2020
@yajo
Copy link

yajo commented Dec 22, 2020

This might be a dumb question but I'm searching for related issues and I'm confused.

  1. Communities v2 == Matrix Spaces?
  2. Whenever Spaces land, will Communities v1 be able to evolve to Spaces/v2? Or will we have to ask people to exit the Community v1 and enter the Space/v2?
  3. Where's the proper place to track progress for this?

@turt2live
Copy link
Member Author

Communities v2 is spaces. The other questions can be asked in #element-web:matrix.org

@t3chguy
Copy link
Member

t3chguy commented Dec 22, 2020

The communities V2 labs option is not spaces though.

@joao-p-marques
Copy link

The communities V2 labs option is not spaces though

Ok, and what does it bring as improvements, then? Any of the mentioned above?

@t3chguy
Copy link
Member

t3chguy commented May 12, 2021

This is fixed by Spaces landing in Beta in next Release

@t3chguy t3chguy closed this as completed May 12, 2021
@gvelez17
Copy link

Yay! we created a space on a matrix server we don't have the backend control to so this will be super helpful!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Spaces Spaces, groups, communities P1 T-Enhancement
Projects
None yet
Development

No branches or pull requests