Adapt 'change roles' screens to the new creator/owner role (#5076)

* Replace `RoomMember.Role.CREATOR` with `RoomMember.Role.Owner` - Make `RoomMember.Role` a sealed interface instead

* Adapt room member role mapping to include the power level to distinguish between admins and owners

* Use new `RoomMember.Role` sealed interface through the app

* Change how `MembersByRole` groups members to add owners to the admins section

* Adapt the `ChangeRoles` screen to the new roles:
    - Owners can't modify other owner's roles.
    - They can modify the roles of any other user, without confirmation.

* Adapt 'roles and permissions' screen:
    - Owners can't demote themselves.
    - The admin count also counts owners.

* Add more tests and screenshots

* Add owners to its own section in the 'change roles' screen

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
This commit is contained in:
Jorge Martin Espinosa 2025-07-29 16:07:16 +02:00 committed by GitHub
parent 9509ad5170
commit 8298404630
77 changed files with 663 additions and 301 deletions

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e5c71623f182b0e2aac51c276d3b61f039997c3dadf6c7bd9de6c4f2dfa352b8
size 49837
oid sha256:a1a33eba9c38eb8e518401f19536be0dedeb25e1c6fa805006d25b2354eea9ad
size 50289

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:01a7f9e4be6f064593c299e84f9bf3926dbeb5be1c243b7293889c178c593672
size 53305

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:326e774bb0420b4d55cca0014bcb8aac69f2351e58e756c7d63de3905f5bb6d0
size 66470
oid sha256:f002866b7076f6541d2842009e7f0f2df1ab32981ca3d2bca0c8dddb260a3991
size 65349

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ba30b7ffc1096fd5190fbf7e1881217dce20a5e0865800d49b26d82fd0aac0dd
size 60733
oid sha256:95e9f4fb1fdce076c41091c8e629fb5e4540d6c820271464a0df62ec9c86d04b
size 60279

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0fa5719b287ebb77a79900ffdec8793d9a86f2a07920f32c50924872609b09d5
size 60682
oid sha256:9e24c761af34c2256845387f58fa09bd0200a5a325a7f263b1544db1f8109d55
size 60230

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:46cd3b9a7be00e4f41fbaab11e1cb6aa6528d6db578a84512f7abedf5d4b5492
size 55610
oid sha256:ebe33703e823b36249c9ce77c1bc40cd1bc76a7a184947b2b8dd01d04add1126
size 55151

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:13c8b71ef7331e86d15200b8b1979688b21337237bcccd309ce70d866f9304f4
size 12932
oid sha256:128c073395c100b5fa4d61ce8549fac6db753dd1d8ab33475652b5a051130f6e
size 12485

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2d992de8f70372d03ca2e701310ab261c1f5ddb5864810071a84f6b17ce5f6a4
size 57531
oid sha256:57509ab85d4f7feda8287a9a39353c8213633b0675a638b286523bb9cdc177fe
size 58002

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0b34ca16979d6e496ec13cec78250eace85e17616cfa162d131d2c8f797c6b1f
size 59946
oid sha256:0ddf77c1776754186a16520834dd32458777cefd02b63e810eae46b85788e825
size 60434

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3dbd48f7c11b0b5881eedf939654e50b37bfc349c28c3c0e93d5ca5bda0717da
size 51691
oid sha256:0ef2a7ada57b834c8cc062096e5793027ba0e5b86d5d43bef88d3a5c448d5bdb
size 51789

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:83a9e031d5b928895778ac073d4374863a5e8a6b0ac9d99fee0a95879a0421e9
size 64502
oid sha256:699f12cc41c0d766c61db13ea980fb150b7027457526892da636fa020d3e6a2f
size 64046

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9a00224f7aea8db03d01c0dbf244b90eb5d2d3f4289ced45cda874dc655fbac9
size 48320
oid sha256:0b2908f2612fde0ac68aa872b039e39614004e9207119f34fd480bf9ab558e5f
size 48502

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0907cb2655a7a02dd4cc00ffaabf564274eb54ccb739ac61d0b3c6f13a7dd86c
size 54081

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bbca019f7bb7555bcfea4645ad3ec00445ec55a54cc98611b1e0d7f99bebeea4
size 67131
oid sha256:d05b4a8db64921114da702cbbbf3480037a5e95299b6be61b64882063bf3a8d6
size 66013

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:aa22afe652bae97bbe9e3504610f520e6fd7337f2757f79c39e9e0f6115902fe
size 61461
oid sha256:def295811ae2872a5c882de15ced9613e6699d52d07a7263f2bee4f1cbaabbe8
size 61093

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bbb5c63809d556bcc60b11b9c23940e26bfac377ed4a5a0d97971e060365c6f3
size 61346
oid sha256:f87e5c5ee46d0d722d468c20b7403393a34eda7c555fc331e5d936fab6bbc5f6
size 60981

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:17a15796338eaa5a8b7a5c7e5252fe2d9c392f2d0dd78ce9e0976dfd68fa6ad5
size 55975
oid sha256:e9721797718883f2130ba5a90037f1edf8d813a02b5b8329fd7c677a517b6657
size 55601

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:562dc9be79006376346ab1b2635890615eecc381e82c15b16a9ebf1855741e24
size 12817
oid sha256:f9a601e883469969a5c585e44d2c3f5da53abf307a9334fa19c27f685d3c7731
size 12436

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2023b53d3a7099f55bc36a738506c6fab2910f3c83ca24a1647b6ba35c29f351
size 55807
oid sha256:ca1a7ecdceabde82b8283bba218211a7a86c33a01887a6b1d021cdd0460fdf47
size 55937

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:41c3b6a09bf3899a0a28ac6b9fc96b773687adeb40a4b11ab0f80dadc1139e1e
size 58176
oid sha256:2865975bc3f091eead3fdab2870622aa8d8336d2bd0bde7110249e14d1bf5527
size 58289

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:24389189d4955f584fb1ed4b390e6ec829622d457ee7f3205b0104f2bcd90bdd
size 50948
oid sha256:7f15f8c3e7b04e73ef0af6b013e8b817946016e81c4cc788f3c9fd1bc5e8667e
size 50836

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:971a027f6aaaa21b7d62af3f08b50eb7cf8369199076226ea92e1b4b30f74342
size 64234
oid sha256:f184247e1ed5f006dca11426d94498c12724475011b4509d7f8fd13dd95fe0f9
size 63882

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:67a08774600869ff76540d518c0d5f80c38f1f155a65af56374ccf362d5109d4
size 40618
oid sha256:8116875aca8d06c8450168555a8e591cb96b23aaa9f194f62456b6b369cfbc50
size 42699

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bc1246fbe273fafe61dfacfe4131aeb166a81a4c4befc35fbeb68cf85c0f355f
size 57070
oid sha256:68af7df886052c7db027225c978b8c10f5bf69beab65834add7456500f2d5cc0
size 59115

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f632403bc5aad7990c8f2a81eec9977db7bbf0fd8db33bbda61af5d25329ac7f
size 37776
oid sha256:168e8ccfc1be8927e7bab6526e71044786aefc5f8d6f5594b971e75926196481
size 39424

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:60df11189f82a42a51fddfcece2d0fdd88c55d06f2a1ee1e2069bae74e9c1378
size 36410
oid sha256:3e2fce3603a20cdda8ac969e15cbd0b636185f0ff63930d67795074e740cf807
size 38175

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4cff66b4102160aeeb3db4bb5df1fef1428b5fadc7a12a62170d2335f506ad3b
size 46662
oid sha256:79d359483e7bc03c3d5facf61bdc854711f685c1826fd909e8d599892eb28de3
size 48333

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f632403bc5aad7990c8f2a81eec9977db7bbf0fd8db33bbda61af5d25329ac7f
size 37776
oid sha256:168e8ccfc1be8927e7bab6526e71044786aefc5f8d6f5594b971e75926196481
size 39424

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:554d8d41ed47b34e71f6fff1689ee2c9488580d012d4ad2b867814399899c6e7
size 36812
oid sha256:e9be92dc8fbaebaa5c108754180eba18fdab8a31c5a239091b2779480bf89848
size 38620

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:620f0bc7825ebf1d0abcbc824c990162bf6a98afe9d3566b476c16dabaa17935
size 39106

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:036944c74e2a5150d54e9ad4d64fe6b624fe8e889e411c226816398c65110f55
size 39321
oid sha256:6cd19bb1be2581e0f1bb50624111bc13717a60778d5141f06857e1edaa34ab69
size 41325

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:24df22e86f0fe16ba9d3ce944105c0e2450bed08c8a9556f0d3da0cec32067b5
size 54642
oid sha256:79770d1b10c85dc12bf57f0a4cf5cb147aca1dc91841bf680349a4603b266310
size 56490

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ca39d5d1f2a24584a695f7e3741a82109870a41a289b72882b9cf476e0526de6
size 35948
oid sha256:33bda0d03e1f14113201df4187a0af99e5e415d2cf2cb0e7c24803d5685dbee8
size 37586

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4381d361278286530bbf89b79c56ae37edb722ec0a829ad20f98ebe1205aa1b9
size 33990
oid sha256:e7625469fb3ad71c44d84e3b0f55cb952f07c15a57117a5c5b369952c6dab089
size 35681

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:29863c9616f9ff6eedc59d9c8a78304e061f68448c51c217f8c43d7bb2b5bf69
size 43568
oid sha256:4c7bfeaa1a068be4ed2c21f659dedf996442ac4d0dbd27d8fa9c0d49944cc38f
size 45256

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ca39d5d1f2a24584a695f7e3741a82109870a41a289b72882b9cf476e0526de6
size 35948
oid sha256:33bda0d03e1f14113201df4187a0af99e5e415d2cf2cb0e7c24803d5685dbee8
size 37586

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dea918985f1cb9870d5da1e84ac2c7a43227f03aae4e4b7462bac5d6ba7343c2
size 34480
oid sha256:f65d83a0f0b106cd9738b94b99c1fe8ea75fcadb443377da65d8847e72adfd72
size 36169

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bd8ce7b96a775a029920f5274d4dbc7ed03eb34ed446299ba0043a57ee20c7eb
size 37978