Refactor users management (#6)
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
* Improve second factor removal by admin
This commit is contained in:
@ -94,15 +94,26 @@ pub async fn users_route(
|
||||
.is_some();
|
||||
user.admin = update.0.admin.is_some();
|
||||
|
||||
let factors_to_keep = update.0.two_factor.split(';').collect::<Vec<_>>();
|
||||
user.two_factor
|
||||
.retain(|f| factors_to_keep.contains(&f.id.0.as_str()));
|
||||
|
||||
let res = users
|
||||
.send(users_actor::UpdateUserRequest(user.clone()))
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Update the list of factors
|
||||
let factors_to_keep = update.0.two_factor.split(';').collect::<Vec<_>>();
|
||||
for factor in &user.two_factor {
|
||||
if !factors_to_keep.contains(&factor.id.0.as_str()) {
|
||||
logger.log(Action::AdminRemoveUserFactor(&user, factor));
|
||||
users
|
||||
.send(users_actor::Remove2FAFactor(
|
||||
user.uid.clone(),
|
||||
factor.id.clone(),
|
||||
))
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
// Update list of granted clients
|
||||
let granted_clients = match update.0.grant_type.as_str() {
|
||||
"all_clients" => GrantedClients::AllClients,
|
||||
|
Reference in New Issue
Block a user