fix: show device display names
This commit is contained in:
parent
325e373684
commit
b192fddf2f
5 changed files with 75 additions and 57 deletions
|
@ -329,15 +329,11 @@ impl Rooms {
|
|||
false
|
||||
} else if let member::MembershipState::Ban = current_membership {
|
||||
false
|
||||
} else if join_rules == join_rules::JoinRule::Invite
|
||||
&& (current_membership == member::MembershipState::Join
|
||||
|| current_membership == member::MembershipState::Invite)
|
||||
{
|
||||
true
|
||||
} else if join_rules == join_rules::JoinRule::Public {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
join_rules == join_rules::JoinRule::Invite
|
||||
&& (current_membership == member::MembershipState::Join
|
||||
|| current_membership == member::MembershipState::Invite)
|
||||
|| join_rules == join_rules::JoinRule::Public
|
||||
}
|
||||
} else if target_membership == member::MembershipState::Invite {
|
||||
if let Some(third_party_invite_json) = content.get("third_party_invite")
|
||||
|
@ -351,46 +347,35 @@ impl Rooms {
|
|||
)?;
|
||||
todo!("handle third party invites");
|
||||
}
|
||||
} else if sender_membership != member::MembershipState::Join {
|
||||
false
|
||||
} else if current_membership == member::MembershipState::Join
|
||||
} else if sender_membership != member::MembershipState::Join
|
||||
|| current_membership == member::MembershipState::Join
|
||||
|| current_membership == member::MembershipState::Ban
|
||||
{
|
||||
false
|
||||
} else if sender_power
|
||||
.filter(|&p| p >= &power_levels.invite)
|
||||
.is_some()
|
||||
{
|
||||
true
|
||||
} else {
|
||||
false
|
||||
sender_power
|
||||
.filter(|&p| p >= &power_levels.invite)
|
||||
.is_some()
|
||||
}
|
||||
} else if target_membership == member::MembershipState::Leave {
|
||||
if sender == target_user_id {
|
||||
current_membership == member::MembershipState::Join
|
||||
|| current_membership == member::MembershipState::Invite
|
||||
} else if sender_membership != member::MembershipState::Join {
|
||||
false
|
||||
} else if current_membership == member::MembershipState::Ban
|
||||
&& sender_power.filter(|&p| p < &power_levels.ban).is_some()
|
||||
} else if sender_membership != member::MembershipState::Join
|
||||
|| current_membership == member::MembershipState::Ban
|
||||
&& sender_power.filter(|&p| p < &power_levels.ban).is_some()
|
||||
{
|
||||
false
|
||||
} else if sender_power.filter(|&p| p >= &power_levels.kick).is_some()
|
||||
&& target_power < sender_power
|
||||
{
|
||||
true
|
||||
} else {
|
||||
false
|
||||
sender_power.filter(|&p| p >= &power_levels.kick).is_some()
|
||||
&& target_power < sender_power
|
||||
}
|
||||
} else if target_membership == member::MembershipState::Ban {
|
||||
if sender_membership != member::MembershipState::Join {
|
||||
false
|
||||
} else if sender_power.filter(|&p| p >= &power_levels.ban).is_some()
|
||||
&& target_power < sender_power
|
||||
{
|
||||
true
|
||||
} else {
|
||||
false
|
||||
sender_power.filter(|&p| p >= &power_levels.ban).is_some()
|
||||
&& target_power < sender_power
|
||||
}
|
||||
} else {
|
||||
false
|
||||
|
@ -668,16 +653,21 @@ impl Rooms {
|
|||
globals: &super::globals::Globals,
|
||||
) -> Result<()> {
|
||||
if let Some(room_id) = room_id {
|
||||
// New alias
|
||||
self.alias_roomid
|
||||
.insert(alias.alias(), &*room_id.to_string())?;
|
||||
let mut aliasid = room_id.to_string().as_bytes().to_vec();
|
||||
aliasid.extend_from_slice(&globals.next_count()?.to_be_bytes());
|
||||
self.aliasid_alias.insert(aliasid, &*alias.alias())?;
|
||||
} else {
|
||||
if let Some(room_id) = self.alias_roomid.remove(alias.alias())? {
|
||||
for key in self.aliasid_alias.scan_prefix(room_id).keys() {
|
||||
self.aliasid_alias.remove(key?)?;
|
||||
}
|
||||
// room_id=None means remove alias
|
||||
let room_id = self
|
||||
.alias_roomid
|
||||
.remove(alias.alias())?
|
||||
.ok_or(Error::BadRequest("Alias does not exist"))?;
|
||||
|
||||
for key in self.aliasid_alias.scan_prefix(room_id).keys() {
|
||||
self.aliasid_alias.remove(key?)?;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -361,14 +361,12 @@ impl Users {
|
|||
|
||||
self.userdeviceid_devicekeys.scan_prefix(key).map(|r| {
|
||||
let (key, value) = r?;
|
||||
Ok((
|
||||
utils::string_from_bytes(
|
||||
key.rsplit(|&b| b == 0xff)
|
||||
.next()
|
||||
.ok_or(Error::BadDatabase("userdeviceid is invalid"))?,
|
||||
)?,
|
||||
serde_json::from_slice(&*value)?,
|
||||
))
|
||||
let userdeviceid = utils::string_from_bytes(
|
||||
key.rsplit(|&b| b == 0xff)
|
||||
.next()
|
||||
.ok_or(Error::BadDatabase("userdeviceid is invalid"))?,
|
||||
)?;
|
||||
Ok((userdeviceid, serde_json::from_slice(&*value)?))
|
||||
})
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue