@@ -21,7 +21,7 @@ use std::collections::{HashMap, HashSet};
2121use crate :: {
2222 rbac:: {
2323 self ,
24- map:: { read_user_groups, roles, write_user_groups } ,
24+ map:: { read_user_groups, roles} ,
2525 role:: model:: DefaultPrivilege ,
2626 user,
2727 utils:: to_prism_user,
@@ -116,14 +116,11 @@ pub async fn post_user(
116116 return Err ( RBACError :: RoleValidationError ) ;
117117 } else {
118118 let mut non_existent_roles = Vec :: new ( ) ;
119- user_roles
120- . iter ( )
121- . map ( |r| {
122- if !roles ( ) . contains_key ( r) {
123- non_existent_roles. push ( r. clone ( ) ) ;
124- }
125- } )
126- . for_each ( drop) ;
119+ for role in & user_roles {
120+ if !roles ( ) . contains_key ( role) {
121+ non_existent_roles. push ( role. clone ( ) ) ;
122+ }
123+ }
127124 if !non_existent_roles. is_empty ( ) {
128125 return Err ( RBACError :: RolesDoNotExist ( non_existent_roles) ) ;
129126 }
@@ -244,24 +241,6 @@ pub async fn delete_user(username: web::Path<String>) -> Result<impl Responder,
244241 // delete from parseable.json first
245242 let mut metadata = get_metadata ( ) . await ?;
246243 metadata. users . retain ( |user| user. username ( ) != username) ;
247-
248- // Remove user from all groups
249- let user_groups = Users . get_user_groups ( & username) ;
250- {
251- let mut groups = write_user_groups ( ) ;
252- for group_name in & user_groups {
253- if let Some ( group) = groups. get_mut ( group_name) {
254- group. remove_users ( HashSet :: from_iter ( [ username. clone ( ) ] ) ) ?;
255- }
256- }
257- }
258-
259- // Update metadata with modified groups
260- for group in metadata. user_groups . iter_mut ( ) {
261- if user_groups. contains ( & group. name ) {
262- group. users . retain ( |u| u != & username) ;
263- }
264- }
265244 put_metadata ( & metadata) . await ?;
266245
267246 // update in mem table
@@ -284,11 +263,11 @@ pub async fn add_roles_to_user(
284263 let mut non_existent_roles = Vec :: new ( ) ;
285264
286265 // check if the role exists
287- roles_to_add. iter ( ) . for_each ( |r| {
288- if roles ( ) . get ( r ) . is_none ( ) {
289- non_existent_roles. push ( r . clone ( ) ) ;
266+ for role in & roles_to_add {
267+ if ! roles ( ) . contains_key ( role ) {
268+ non_existent_roles. push ( role . clone ( ) ) ;
290269 }
291- } ) ;
270+ }
292271
293272 if !non_existent_roles. is_empty ( ) {
294273 return Err ( RBACError :: RolesDoNotExist ( non_existent_roles) ) ;
@@ -329,11 +308,11 @@ pub async fn remove_roles_from_user(
329308 let mut non_existent_roles = Vec :: new ( ) ;
330309
331310 // check if the role exists
332- roles_to_remove. iter ( ) . for_each ( |r| {
333- if roles ( ) . get ( r ) . is_none ( ) {
334- non_existent_roles. push ( r . clone ( ) ) ;
311+ for role in & roles_to_remove {
312+ if ! roles ( ) . contains_key ( role ) {
313+ non_existent_roles. push ( role . clone ( ) ) ;
335314 }
336- } ) ;
315+ }
337316
338317 if !non_existent_roles. is_empty ( ) {
339318 return Err ( RBACError :: RolesDoNotExist ( non_existent_roles) ) ;
0 commit comments