Package com.bytedesk.core.rbac.user
Class UserService
java.lang.Object
com.bytedesk.core.rbac.user.UserService
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AuthServiceprivate final BytedeskEventPublisherprivate final BytedeskPropertiesprivate jakarta.persistence.EntityManagerprivate final org.modelmapper.ModelMapperprivate final OrganizationRepositoryprivate final org.springframework.security.crypto.bcrypt.BCryptPasswordEncoderprivate final RoleRestServiceprivate final TokenRestServiceprivate final UidUtilsprivate final UserRepository -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddRole(UserEntity user, String roleName) addRoleAdmin(UserEntity user) addRoleAgent(UserEntity user) addRoleDeptAdmin(UserEntity user) addRoleSuper(UserEntity user) addRoleUser(UserEntity user) adminChangePassword(UserRequest request) changeEmail(UserRequest request) changeMobile(UserRequest request) changePassword(UserRequest request) createUserFromMember(UserRequest request) voiddelete(UserEntity user) ensureCurrentOrganization(UserEntity user, String orgUid) 确保 user 的 currentOrganization 指向 orgUid。existsByEmailAndPlatform(String email, String platform) existsByMobileAndPlatform(String mobile, String platform) existsByUsernameAndMobileAndPlatform(String username, String mobile, String platform) existsByUsernameAndPlatform(String username, String platform) findByEmailAndPlatform(String email, String platform) findByMobileAndPlatform(String mobile, String platform) findByUsernameAndPlatform(String username, String platform) getSuper()voidregister(UserRequest request) removeRole(UserEntity user, String roleName) removeRoleAdmin(UserEntity user) removeRoleAgent(UserEntity user) removeRoleSuper(UserEntity user) save(UserEntity user) update(UserRequest request) updateUserFromMember(UserEntity user, MemberRequest request) updateUserRoles(UserEntity user, Set<String> roleUids) 更新用户在“当前组织(currentOrganization)”下的角色列表。
-
Field Details
-
userRepository
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
roleRestService
-
bytedeskProperties
-
passwordEncoder
private final org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder passwordEncoder -
uidUtils
-
entityManager
private jakarta.persistence.EntityManager entityManager -
organizationRepository
-
bytedeskEventPublisher
-
authService
-
tokenRestService
-
-
Constructor Details
-
UserService
public UserService()
-
-
Method Details
-
register
@Transactional @CacheEvict(value="user:exists",key="#request.username + \'-\' + #request.platform",condition="#request.username != null") @CacheEvict(value="user:exists",key="#request.mobile + \'-\' + #request.platform",condition="#request.mobile != null") @CacheEvict(value="user:exists",key="#request.email + \'-\' + #request.platform",condition="#request.email != null") public UserResponse register(UserRequest request) -
update
-
changePassword
-
adminChangePassword
-
changeEmail
-
changeMobile
-
createUserFromMember
-
ensureCurrentOrganization
确保 user 的 currentOrganization 指向 orgUid。 updateUserRoles 依赖 currentOrganization 来写入“组织维度”的角色关联。 -
updateUserFromMember
-
updateUserRoles
更新用户在“当前组织(currentOrganization)”下的角色列表。 - 忽略空值 - 将废弃的 member 角色 uid 归一为 user 角色 uid - 强制确保包含 ROLE_USER -
addRoleAgent
-
removeRoleAgent
-
addRoleUser
-
addRoleAdmin
-
removeRoleAdmin
-
addRoleDeptAdmin
-
removeRoleDeptAdmin
-
addRoleWorkgroupAdmin
-
removeRoleWorkgroupAdmin
-
addRoleSuper
-
removeRoleSuper
-
addRole
-
removeRole
-
findByEmailAndPlatform
@Cacheable(value="user", key="#email + \'-\' + #platform", unless="#result == null") public Optional<UserEntity> findByEmailAndPlatform(String email, String platform) -
findByMobileAndPlatform
@Cacheable(value="user", key="#mobile + \'-\' + #platform", unless="#result == null") public Optional<UserEntity> findByMobileAndPlatform(String mobile, String platform) -
findByUsernameAndPlatform
@Cacheable(value="user", key="#username + \'-\' + #platform", unless="#result == null") public Optional<UserEntity> findByUsernameAndPlatform(String username, String platform) -
findByUid
-
getSuper
-
existsByUsernameAndPlatform
-
existsByMobileAndPlatform
-
existsByEmailAndPlatform
-
existsByUsernameAndMobileAndPlatform
-
existsBySuperUser
-
save
@Transactional @Caching(put={@CachePut(value="user",key="#user.username + \'-\' + #user.platform",unless="#user.username == null"),@CachePut(value="user",key="#user.mobile + \'-\' + #user.platform",unless="#user.mobile == null"),@CachePut(value="user",key="#user.email + \'-\' + #user.platform",unless="#user.email == null"),@CachePut(value="user",key="#user.uid",unless="#user.uid == null")},evict={@CacheEvict(value="user:exists",key="#user.username + \'-\' + #user.platform",condition="#user.username != null"),@CacheEvict(value="user:exists",key="#user.mobile + \'-\' + #user.platform",condition="#user.mobile != null"),@CacheEvict(value="user:exists",key="#user.email + \'-\' + #user.platform",condition="#user.email != null")}) public UserEntity save(@NonNull UserEntity user) -
delete
@CacheEvict(value="user",key="#user.username + \'-\' + #user.platform") @CacheEvict(value="user",key="#user.mobile + \'-\' + #user.platform") @CacheEvict(value="user",key="#user.email + \'-\' + #user.platform") @CacheEvict(value="user",key="#user.uid") @CacheEvict(value="user:exists",key="#user.username + \'-\' + #user.platform") @CacheEvict(value="user:exists",key="#user.mobile + \'-\' + #user.platform") @CacheEvict(value="user:exists",key="#user.email + \'-\' + #user.platform") public void delete(@NonNull UserEntity user) -
logout
-
createNickname
-