fix: ensure server ID is fanned out with role ranks update
fix: ensure original order is correctly sorted on edit route
This commit is contained in:
@@ -166,7 +166,7 @@ pub enum EventV1 {
|
||||
ServerRoleDelete { id: String, role_id: String },
|
||||
|
||||
/// Server roles ranks updated
|
||||
ServerRoleRanksUpdate { ranks: Vec<String> },
|
||||
ServerRoleRanksUpdate { id: String, ranks: Vec<String> },
|
||||
|
||||
/// Update existing user
|
||||
UserUpdate {
|
||||
|
||||
@@ -228,6 +228,13 @@ impl Server {
|
||||
}
|
||||
}
|
||||
|
||||
/// Ordered roles list
|
||||
pub fn ordered_roles(&self) -> Vec<(String, Role)> {
|
||||
let mut ordered_roles = self.roles.clone().into_iter().collect::<Vec<_>>();
|
||||
ordered_roles.sort_by(|(_, role_a), (_, role_b)| role_a.rank.cmp(&role_b.rank));
|
||||
ordered_roles
|
||||
}
|
||||
|
||||
/// Set role permission on a server
|
||||
pub async fn set_role_permission(
|
||||
&mut self,
|
||||
@@ -275,9 +282,12 @@ impl Server {
|
||||
.await?;
|
||||
|
||||
// Publish bulk update event
|
||||
EventV1::ServerRoleRanksUpdate { ranks: new_order }
|
||||
.p(self.id.clone())
|
||||
.await;
|
||||
EventV1::ServerRoleRanksUpdate {
|
||||
id: self.id.clone(),
|
||||
ranks: new_order,
|
||||
}
|
||||
.p(self.id.clone())
|
||||
.await;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user