3030import datart .core .common .Application ;
3131import datart .core .common .UUIDGenerator ;
3232import datart .core .entity .Organization ;
33+ import datart .core .entity .Role ;
3334import datart .core .entity .User ;
3435import datart .core .entity .ext .UserBaseInfo ;
3536import datart .core .mappers .ext .OrganizationMapperExt ;
3940import datart .security .util .SecurityUtils ;
4041import datart .server .base .dto .OrganizationBaseInfo ;
4142import datart .server .base .dto .UserProfile ;
42- import datart .server .base .params .ChangeUserPasswordParam ;
43- import datart .server .base .params .UserAddParam ;
44- import datart .server .base .params .UserRegisterParam ;
45- import datart .server .base .params .UserResetPasswordParam ;
43+ import datart .server .base .params .*;
4644import datart .server .service .*;
4745import lombok .extern .slf4j .Slf4j ;
4846import org .apache .commons .codec .digest .DigestUtils ;
6159import java .time .LocalDate ;
6260import java .util .Date ;
6361import java .util .List ;
62+ import java .util .Set ;
6463import java .util .stream .Collectors ;
6564
6665import static datart .core .common .Application .getProperty ;
@@ -378,6 +377,9 @@ public boolean addUserToOrg(UserAddParam userAddParam, String orgId) throws Mess
378377 BeanUtils .copyProperties (userAddParam , userRegisterParam );
379378 register (userRegisterParam , false );
380379 User user = this .userMapper .selectByUsername (userAddParam .getUsername ());
380+ user .setName (userAddParam .getName ());
381+ user .setDescription (userAddParam .getDescription ());
382+ this .userMapper .updateByPrimaryKeySelective (user );
381383 orgService .addUserToOrg (user .getId (), orgId );
382384 roleService .updateRolesForUser (user .getId (), orgId , userAddParam .getRoleIds ());
383385 return true ;
@@ -392,6 +394,34 @@ public boolean deleteUserFromOrg(String orgId, String userId) {
392394 return true ;
393395 }
394396
397+ @ Override
398+ public boolean updateUserFromOrg (UserUpdateByIdParam userUpdateParam , String orgId ) {
399+ securityManager .requireOrgOwner (orgId );
400+ User user = retrieve (userUpdateParam .getId ());
401+ if (!user .getEmail ().equals (userUpdateParam .getEmail ()) && !checkEmail (userUpdateParam .getEmail ())) {
402+ log .error ("The email({}) has been registered" , userUpdateParam .getEmail ());
403+ Exceptions .tr (ParamException .class , "error.param.occupied" , "resource.user.email" );
404+ }
405+ if (StringUtils .isBlank (userUpdateParam .getPassword ())) {
406+ userUpdateParam .setPassword (user .getPassword ());
407+ } else if (!userUpdateParam .getPassword ().equals (user .getPassword ())){
408+ userUpdateParam .setPassword (BCrypt .hashpw (userUpdateParam .getPassword (), BCrypt .gensalt ()));
409+ }
410+ roleService .updateRolesForUser (user .getId (), orgId , userUpdateParam .getRoleIds ());
411+ return update (userUpdateParam );
412+ }
413+
414+ @ Override
415+ public UserUpdateByIdParam selectUserById (String userId , String orgId ) {
416+ securityManager .requireOrgOwner (orgId );
417+ UserUpdateByIdParam res = new UserUpdateByIdParam ();
418+ User user = this .userMapper .selectByPrimaryKey (userId );
419+ BeanUtils .copyProperties (user , res );
420+ Set <String > roleIds = roleService .listUserRoles (orgId , userId ).stream ().map (Role ::getId ).collect (Collectors .toSet ());
421+ res .setRoleIds (roleIds );
422+ return res ;
423+ }
424+
395425 @ Override
396426 public void requirePermission (User entity , int permission ) {
397427
0 commit comments