File tree Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Original file line number Diff line number Diff line change
1
+ Fix bug where the [Make Room Admin API](https://element-hq.github.io/synapse/latest/admin_api/rooms.html#make-room-admin-api) would not treat a room v12's creator power level as the highest in room.
Original file line number Diff line number Diff line change @@ -634,7 +634,7 @@ async def on_POST(
634
634
for creator in creators :
635
635
if self .is_mine_id (creator ):
636
636
# include the creator as they won't be in the PL users map.
637
- admin_users .insert ( 0 , creator )
637
+ admin_users .append ( creator )
638
638
639
639
if not admin_users :
640
640
raise SynapseError (
Original file line number Diff line number Diff line change @@ -2917,6 +2917,39 @@ def test_v12_room(self) -> None:
2917
2917
)
2918
2918
self .assertEquals (pl ["users" ][self .admin_user ], 100 )
2919
2919
2920
+ def test_v12_room_with_many_user_pls (self ) -> None :
2921
+ """Test that you can be promoted to the admin user's PL in v12 rooms that contain a range of user PLs."""
2922
+ room_id = self .helper .create_room_as (
2923
+ self .creator ,
2924
+ tok = self .creator_tok ,
2925
+ room_version = RoomVersions .V12 .identifier ,
2926
+ is_public = True ,
2927
+ extra_content = {
2928
+ "power_level_content_override" : {
2929
+ "users" : {
2930
+ self .second_user_id : 50 ,
2931
+ },
2932
+ },
2933
+ },
2934
+ )
2935
+
2936
+ self .helper .join (room_id , self .admin_user , tok = self .admin_user_tok )
2937
+ self .helper .join (room_id , self .second_user_id , tok = self .second_tok )
2938
+
2939
+ channel = self .make_request (
2940
+ "POST" ,
2941
+ f"/_synapse/admin/v1/rooms/{ room_id } /make_room_admin" ,
2942
+ content = {},
2943
+ access_token = self .admin_user_tok ,
2944
+ )
2945
+
2946
+ self .assertEqual (200 , channel .code , msg = channel .json_body )
2947
+
2948
+ pl = self .helper .get_state (
2949
+ room_id , EventTypes .PowerLevels , tok = self .creator_tok
2950
+ )
2951
+ self .assertEquals (pl ["users" ][self .admin_user ], 100 )
2952
+
2920
2953
2921
2954
class BlockRoomTestCase (unittest .HomeserverTestCase ):
2922
2955
servlets = [
You can’t perform that action at this time.
0 commit comments