mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-26 02:39:23 -05:00
Add set_user_admin function to the module API (#12341)
This commit is contained in:
parent
bebf994ee8
commit
4e900ece42
1
changelog.d/12341.feature
Normal file
1
changelog.d/12341.feature
Normal file
@ -0,0 +1 @@
|
|||||||
|
Allow setting user admin status using the module API. Contributed by Famedly.
|
@ -515,6 +515,17 @@ class ModuleApi:
|
|||||||
"""
|
"""
|
||||||
return await self._store.is_server_admin(UserID.from_string(user_id))
|
return await self._store.is_server_admin(UserID.from_string(user_id))
|
||||||
|
|
||||||
|
async def set_user_admin(self, user_id: str, admin: bool) -> None:
|
||||||
|
"""Sets if a user is a server admin.
|
||||||
|
|
||||||
|
Added in Synapse v1.56.0.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user_id: The Matrix ID of the user to set admin status for.
|
||||||
|
admin: True iff the user is to be a server admin, false otherwise.
|
||||||
|
"""
|
||||||
|
await self._store.set_server_admin(UserID.from_string(user_id), admin)
|
||||||
|
|
||||||
def get_qualified_user_id(self, username: str) -> str:
|
def get_qualified_user_id(self, username: str) -> str:
|
||||||
"""Qualify a user id, if necessary
|
"""Qualify a user id, if necessary
|
||||||
|
|
||||||
|
@ -96,6 +96,20 @@ class ModuleApiTestCase(HomeserverTestCase):
|
|||||||
self.assertEqual(found_user.user_id.to_string(), user_id)
|
self.assertEqual(found_user.user_id.to_string(), user_id)
|
||||||
self.assertIdentical(found_user.is_admin, True)
|
self.assertIdentical(found_user.is_admin, True)
|
||||||
|
|
||||||
|
def test_can_set_admin(self):
|
||||||
|
user_id = self.get_success(
|
||||||
|
self.register_user(
|
||||||
|
"alice_wants_admin",
|
||||||
|
"1234",
|
||||||
|
displayname="Alice Powerhungry",
|
||||||
|
admin=False,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self.get_success(self.module_api.set_user_admin(user_id, True))
|
||||||
|
found_user = self.get_success(self.module_api.get_userinfo_by_id(user_id))
|
||||||
|
self.assertEqual(found_user.user_id.to_string(), user_id)
|
||||||
|
self.assertIdentical(found_user.is_admin, True)
|
||||||
|
|
||||||
def test_get_userinfo_by_id(self):
|
def test_get_userinfo_by_id(self):
|
||||||
user_id = self.register_user("alice", "1234")
|
user_id = self.register_user("alice", "1234")
|
||||||
found_user = self.get_success(self.module_api.get_userinfo_by_id(user_id))
|
found_user = self.get_success(self.module_api.get_userinfo_by_id(user_id))
|
||||||
|
Loading…
Reference in New Issue
Block a user