mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
fix: Code cleanup
This commit is contained in:
@@ -354,14 +354,21 @@ async fn user_can_publish_room(
|
|||||||
.await?;
|
.await?;
|
||||||
let create_content = create_event.get_content::<RoomCreateEventContent>()?;
|
let create_content = create_event.get_content::<RoomCreateEventContent>()?;
|
||||||
let room_version = &RoomVersion::new(&create_content.room_version)?;
|
let room_version = &RoomVersion::new(&create_content.room_version)?;
|
||||||
|
|
||||||
|
// for >=v12, check for room creators instead
|
||||||
if room_version.explicitly_privilege_room_creators {
|
if room_version.explicitly_privilege_room_creators {
|
||||||
return Ok([
|
let user_is_creator = create_content
|
||||||
vec![create_event.sender().to_owned()],
|
.additional_creators
|
||||||
create_content.additional_creators.unwrap_or_default(),
|
.unwrap_or_default()
|
||||||
]
|
.iter()
|
||||||
.concat()
|
.map(|id| id.as_ref())
|
||||||
.contains(&user_id.to_owned()));
|
.chain(std::iter::once(create_event.sender()))
|
||||||
|
.any(|creator| creator == user_id);
|
||||||
|
|
||||||
|
return Ok(user_is_creator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// otherwise check if they can send a room history visibility state event
|
||||||
let power_levels_event = services
|
let power_levels_event = services
|
||||||
.rooms
|
.rooms
|
||||||
.state_accessor
|
.state_accessor
|
||||||
|
|||||||
Reference in New Issue
Block a user