pull/3/head
wzw 2 months ago
parent d66b7dc9b6
commit a926c43ed5

@ -16,13 +16,17 @@ public class CrossInterceptor extends OncePerRequestFilter {
@Override @Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
// 判断请求头中是否包含"Access-Control-Request-Method",并且请求方法为"OPTIONS"
if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())) { if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())) {
// CORS "pre-flight" request // CORS "pre-flight" request
// 添加允许跨域请求的响应头
response.addHeader("Access-Control-Allow-Origin", "*"); response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE"); response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
response.addHeader("Access-Control-Allow-Headers", "X-Requested-With,Content-Type"); response.addHeader("Access-Control-Allow-Headers", "X-Requested-With,Content-Type");
response.addHeader("Access-Control-Max-Age", "1800");//30 min response.addHeader("Access-Control-Max-Age", "1800");//30 min
} }
// 继续执行过滤器链
filterChain.doFilter(request, response); filterChain.doFilter(request, response);
} }
} }

@ -16,25 +16,19 @@ import java.util.concurrent.atomic.AtomicInteger;
*/ */
public class RetryLimitHashedCredentialsMatcher extends HashedCredentialsMatcher { public class RetryLimitHashedCredentialsMatcher extends HashedCredentialsMatcher {
//密码重试缓存
private Cache<String, AtomicInteger> passwordRetryCache; private Cache<String, AtomicInteger> passwordRetryCache;
//构造函数传入CacheManager
public RetryLimitHashedCredentialsMatcher(CacheManager cacheManager) { public RetryLimitHashedCredentialsMatcher(CacheManager cacheManager) {
passwordRetryCache = cacheManager.getCache("passwordRetryCache"); passwordRetryCache = cacheManager.getCache("passwordRetryCache");
} }
//重写doCredentialsMatch方法实现密码重试限制
@Override @Override
public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) { public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) {
//获取用户名
String username = (String)token.getPrincipal(); String username = (String)token.getPrincipal();
//retry count + 1
// AtomicInteger retryCount = passwordRetryCache.get(username);
// if(retryCount == null) {
// retryCount = new AtomicInteger(0);
// passwordRetryCache.put(username, retryCount);
// }
// if(retryCount.incrementAndGet() > 5) {
// //if retry count > 5 throw
// throw new ExcessiveAttemptsException();
// }
boolean matches = super.doCredentialsMatch(token, info); boolean matches = super.doCredentialsMatch(token, info);
if(matches) { if(matches) {

@ -9,33 +9,21 @@ import org.apache.ibatis.annotations.Update;
import java.util.List; import java.util.List;
/**
* Created by Jeng on 2016/1/22.
*/
public interface UserMapper { public interface UserMapper {
public static final String UserMapperNameSpace = "com.xmomen.module.account.mapper.UserMapper."; public static final String UserMapperNameSpace = "com.xmomen.module.account.mapper.UserMapper.";
// 根据用户名查询用户角色列表
@Select("select r.* from sys_roles r left join sys_users_roles ur on ur.role_id = r.id left join sys_users u on u.id=ur.user_id where u.username = #{username}") @Select("select r.* from sys_roles r left join sys_users_roles ur on ur.role_id = r.id left join sys_users u on u.id=ur.user_id where u.username = #{username}")
@ResultType(SysRoles.class) @ResultType(SysRoles.class)
public List<SysRoles> getRoleList(String username); public List<SysRoles> getRoleList(String username);
/** // 根据用户名查询用户权限列表
*
* @param username
* @return
*/
@Select("select p.* from sys_permissions p left join `sys_roles_permissions` rp on rp.`PERMISSION_ID`=p.`ID` left join sys_roles r on rp.`ROLE_ID`=r.`ID` left join sys_users_roles ur on ur.role_id = r.id left join sys_users u on u.id=ur.user_id where u.username = #{username}") @Select("select p.* from sys_permissions p left join `sys_roles_permissions` rp on rp.`PERMISSION_ID`=p.`ID` left join sys_roles r on rp.`ROLE_ID`=r.`ID` left join sys_users_roles ur on ur.role_id = r.id left join sys_users u on u.id=ur.user_id where u.username = #{username}")
@ResultType(SysPermissions.class) @ResultType(SysPermissions.class)
public List<SysPermissions> getPermissionList(String username); public List<SysPermissions> getPermissionList(String username);
/** // 修改用户密码
*
* @param username
* @param currentPassword
* @param password
*/
@Update("UPDATE sys_users SET PASSWORD = #{password},SALT=#{salt} WHERE username = #{username} AND PASSWORD=#{currentPassword}") @Update("UPDATE sys_users SET PASSWORD = #{password},SALT=#{salt} WHERE username = #{username} AND PASSWORD=#{currentPassword}")
public void resetPassword(@Param(value = "username") String username, public void resetPassword(@Param(value = "username") String username,
@Param(value = "currentPassword") String currentPassword, @Param(value = "currentPassword") String currentPassword,

@ -12,41 +12,28 @@ import lombok.Data;
*/ */
public @Data class CreateUser implements Serializable { public @Data class CreateUser implements Serializable {
// 用户名
private String username; private String username;
// 邮箱
private String email; private String email;
// 密码
private String password; private String password;
/** // 真实姓名
*
*/
private String realname; private String realname;
// 年龄
/**
*
*/
private Integer age; private Integer age;
/** // 性别 1-男 2-女
* 1-2
*/
private Integer sex; private Integer sex;
// QQ
/**
* QQ
*/
private String qq; private String qq;
// 手机号
/**
*
*/
private String phoneNumber; private String phoneNumber;
//办公室电话
/**
*
*/
private String officeTel; private String officeTel;
// 是否锁定
private Boolean locked = Boolean.FALSE; private Boolean locked = Boolean.FALSE;
// 组织ID
private Integer organizationId; private Integer organizationId;
// 用户组ID列表
private List<Integer> userGroupIds; private List<Integer> userGroupIds;
} }

@ -9,17 +9,31 @@ import lombok.Data;
* Created by Jeng on 2016/1/28. * Created by Jeng on 2016/1/28.
*/ */
public @Data class User implements Serializable { public @Data class User implements Serializable {
//用户ID
private Integer id; private Integer id;
//用户名
private String username; private String username;
//真实姓名
private String realName; private String realName;
//电话号码
private String phoneNumber; private String phoneNumber;
//性别
private String sex; private String sex;
//年龄
private Integer age; private Integer age;
//QQ号
private String qq; private String qq;
//办公电话
private String officeTel; private String officeTel;
//是否锁定
private Integer locked; private Integer locked;
//邮箱
private String email; private String email;
private String organization;//组织 //组织
private String organization;
//组织ID
private Integer organizationId; private Integer organizationId;
//用户组
private List<UserGroup> userGroups; private List<UserGroup> userGroups;
} }

@ -4,7 +4,11 @@ import java.io.Serializable;
import lombok.Data; import lombok.Data;
// 用户组实体类
public @Data class UserGroup implements Serializable{ public @Data class UserGroup implements Serializable{
// 用户组名称
private String userGorup; private String userGorup;
// 用户组ID
private Integer userGroupId; private Integer userGroupId;
} }

@ -25,6 +25,7 @@ public class MemberRealm extends AuthorizingRealm {
MemberService memberService; MemberService memberService;
//设置MemberService
public void setMemberService(MemberService memberService) { public void setMemberService(MemberService memberService) {
this.memberService = memberService; this.memberService = memberService;
} }
@ -56,31 +57,40 @@ public class MemberRealm extends AuthorizingRealm {
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
String phoneNumber = (String)token.getPrincipal(); String phoneNumber = (String)token.getPrincipal();
if(StringUtils.trimToNull(phoneNumber) == null){ if(StringUtils.trimToNull(phoneNumber) == null){
throw new IncorrectCredentialsException();//账号或密码错误 //账号或密码错误
throw new IncorrectCredentialsException();
} }
CdMember query = new CdMember(); CdMember query = new CdMember();
query.setPhoneNumber(phoneNumber); query.setPhoneNumber(phoneNumber);
CdMember member = memberService.findMember(query); CdMember member = memberService.findMember(query);
if(member == null) { if(member == null) {
throw new UnknownAccountException();//没找到帐号 //没找到帐号
throw new UnknownAccountException();
} }
SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo( SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(
phoneNumber, //用户名 //用户名
member.getPassword(), //密码 phoneNumber,
ByteSource.Util.bytes(AppConstants.PC_PASSWORD_SALT),//salt=phoneNumber //密码
getName() //realm name member.getPassword(),
//salt=phoneNumber
ByteSource.Util.bytes(AppConstants.PC_PASSWORD_SALT),
//realm name
getName()
); );
return authenticationInfo; return authenticationInfo;
} }
//清除所有授权信息
public void clearAllCachedAuthorizationInfo() { public void clearAllCachedAuthorizationInfo() {
getAuthorizationCache().clear(); getAuthorizationCache().clear();
} }
//清除所有认证信息
public void clearAllCachedAuthenticationInfo() { public void clearAllCachedAuthenticationInfo() {
getAuthenticationCache().clear(); getAuthenticationCache().clear();
} }
//清除所有缓存信息
public void clearAllCache() { public void clearAllCache() {
clearAllCachedAuthenticationInfo(); clearAllCachedAuthenticationInfo();
clearAllCachedAuthorizationInfo(); clearAllCachedAuthorizationInfo();

@ -25,29 +25,39 @@ import java.util.Set;
*/ */
public class UserRealm extends AuthorizingRealm { public class UserRealm extends AuthorizingRealm {
// 注入UserService
private UserService userService; private UserService userService;
// 设置UserService
public void setUserService(UserService userService) { public void setUserService(UserService userService) {
this.userService = userService; this.userService = userService;
} }
// 获取用户的授权信息
@Override @Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
// 获取用户名
String username = (String)principals.getPrimaryPrincipal(); String username = (String)principals.getPrimaryPrincipal();
// 获取用户的角色
Set<String> roles = userService.findRoles(username); Set<String> roles = userService.findRoles(username);
// 获取用户的权限
Set<String> realmNames = principals.getRealmNames(); Set<String> realmNames = principals.getRealmNames();
for(String realmName: realmNames) { for(String realmName: realmNames) {
if(realmName.contains("UserRealm")) { if(realmName.contains("UserRealm")) {
roles.add("user"); roles.add("user");
} }
} }
// 创建SimpleAuthorizationInfo对象
SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo(); SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
// 设置用户的角色
authorizationInfo.setRoles(roles); authorizationInfo.setRoles(roles);
// 设置用户的权限
authorizationInfo.setStringPermissions(userService.findPermissions(username)); authorizationInfo.setStringPermissions(userService.findPermissions(username));
return authorizationInfo; return authorizationInfo;
} }
// 判断是否支持该类型的token
@Override @Override
public boolean supports(AuthenticationToken token) { public boolean supports(AuthenticationToken token) {
if(token instanceof SysUserToken) { if(token instanceof SysUserToken) {
@ -56,22 +66,28 @@ public class UserRealm extends AuthorizingRealm {
return false; return false;
} }
// 获取用户的认证信息
@Override @Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
// 获取用户名
String username = (String)token.getPrincipal(); String username = (String)token.getPrincipal();
// 根据用户名获取用户信息
SysUsers user = userService.findByUsername(username); SysUsers user = userService.findByUsername(username);
// 如果用户不存在抛出UnknownAccountException异常
if(user == null) { if(user == null) {
throw new UnknownAccountException();//没找到帐号 throw new UnknownAccountException();//没找到帐号
} }
// 如果用户被锁定抛出LockedAccountException异常
if(Boolean.TRUE.equals(user.getLocked())) { if(Boolean.TRUE.equals(user.getLocked())) {
throw new LockedAccountException(); //帐号锁定 throw new LockedAccountException(); //帐号锁定
} }
//交给AuthenticatingRealm使用CredentialsMatcher进行密码匹配如果觉得人家的不好可以自定义实现 //交给AuthenticatingRealm使用CredentialsMatcher进行密码匹配如果觉得人家的不好可以自定义实现
// 创建SimpleAuthenticationInfo对象
SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo( SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(
username, //用户名 username, //用户名
user.getPassword(), //密码 user.getPassword(), //密码
@ -81,29 +97,35 @@ public class UserRealm extends AuthorizingRealm {
return authenticationInfo; return authenticationInfo;
} }
// 清除用户的授权信息
@Override @Override
public void clearCachedAuthorizationInfo(PrincipalCollection principals) { public void clearCachedAuthorizationInfo(PrincipalCollection principals) {
super.clearCachedAuthorizationInfo(principals); super.clearCachedAuthorizationInfo(principals);
} }
// 清除用户的认证信息
@Override @Override
public void clearCachedAuthenticationInfo(PrincipalCollection principals) { public void clearCachedAuthenticationInfo(PrincipalCollection principals) {
super.clearCachedAuthenticationInfo(principals); super.clearCachedAuthenticationInfo(principals);
} }
// 清除用户的缓存信息
@Override @Override
public void clearCache(PrincipalCollection principals) { public void clearCache(PrincipalCollection principals) {
super.clearCache(principals); super.clearCache(principals);
} }
// 清除所有用户的授权信息
public void clearAllCachedAuthorizationInfo() { public void clearAllCachedAuthorizationInfo() {
getAuthorizationCache().clear(); getAuthorizationCache().clear();
} }
// 清除所有用户的认证信息
public void clearAllCachedAuthenticationInfo() { public void clearAllCachedAuthenticationInfo() {
getAuthenticationCache().clear(); getAuthenticationCache().clear();
} }
// 清除所有用户的缓存信息
public void clearAllCache() { public void clearAllCache() {
clearAllCachedAuthenticationInfo(); clearAllCachedAuthenticationInfo();
clearAllCachedAuthorizationInfo(); clearAllCachedAuthorizationInfo();

@ -12,26 +12,34 @@ import org.apache.shiro.util.ByteSource;
*/ */
public class PasswordHelper { public class PasswordHelper {
// 随机数生成器
private RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator(); private RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator();
// 加密算法
private String algorithmName = "md5"; private String algorithmName = "md5";
// 加密次数
private int hashIterations = 2; private int hashIterations = 2;
// 设置随机数生成器
public void setRandomNumberGenerator(RandomNumberGenerator randomNumberGenerator) { public void setRandomNumberGenerator(RandomNumberGenerator randomNumberGenerator) {
this.randomNumberGenerator = randomNumberGenerator; this.randomNumberGenerator = randomNumberGenerator;
} }
// 设置加密算法
public void setAlgorithmName(String algorithmName) { public void setAlgorithmName(String algorithmName) {
this.algorithmName = algorithmName; this.algorithmName = algorithmName;
} }
// 设置加密次数
public void setHashIterations(int hashIterations) { public void setHashIterations(int hashIterations) {
this.hashIterations = hashIterations; this.hashIterations = hashIterations;
} }
// 生成随机盐
public String getSalt(){ public String getSalt(){
return randomNumberGenerator.nextBytes().toHex(); return randomNumberGenerator.nextBytes().toHex();
} }
// 加密密码
public String encryptPassword(String password, String salt) { public String encryptPassword(String password, String salt) {
return new SimpleHash( return new SimpleHash(
algorithmName, algorithmName,

@ -9,16 +9,10 @@ import com.xmomen.module.user.entity.SysPermissions;
* <p>Version: 1.0 * <p>Version: 1.0
*/ */
public interface PermissionService { public interface PermissionService {
/** //创建权限
*
* @param permission
* @return
*/
public SysPermissions createPermission(SysPermissions permission); public SysPermissions createPermission(SysPermissions permission);
/**
* //删除权限
* @param permissionId
*/
public void deletePermission(Long permissionId); public void deletePermission(Long permissionId);
} }

@ -21,6 +21,7 @@ public class PermissionServiceImpl implements PermissionService {
@Override @Override
@Transactional @Transactional
public SysPermissions createPermission(SysPermissions permission) { public SysPermissions createPermission(SysPermissions permission) {
// 保存权限信息
permission = mybatisDao.saveByModel(permission); permission = mybatisDao.saveByModel(permission);
return permission; return permission;
} }
@ -28,6 +29,7 @@ public class PermissionServiceImpl implements PermissionService {
@Override @Override
@Transactional @Transactional
public void deletePermission(Long permissionId) { public void deletePermission(Long permissionId) {
// 根据权限ID删除权限信息
mybatisDao.deleteByPrimaryKey(SysPermissions.class, permissionId); mybatisDao.deleteByPrimaryKey(SysPermissions.class, permissionId);
} }
} }

@ -14,78 +14,61 @@ import java.util.List;
*/ */
public interface RoleService { public interface RoleService {
/** // 根据角色ID查询用户
* ID // @param roleId 角色ID
* @param roleId // @param chose 是否选择
* @param pageSize // @param pageSize 每页大小
* @param pageNum // @param pageNum 当前页码
* @return // @return 用户组关系分页对象
*/
public Page<UserGroupRelation> findUsersByRoles(String roleId, boolean chose, Integer pageSize, Integer pageNum); public Page<UserGroupRelation> findUsersByRoles(String roleId, boolean chose, Integer pageSize, Integer pageNum);
/** // 查询用户角色
* // @param keyValue 查询关键字
* @param keyValue // @param pageSize 每页大小
* @param pageSize // @param pageNum 当前页码
* @param pageNum // @return 角色分页对象
* @return
*/
public Page<SysRoles> findRoles(String keyValue, Integer pageSize, Integer pageNum); public Page<SysRoles> findRoles(String keyValue, Integer pageSize, Integer pageNum);
/** // 获取角色
* // @param roleId 角色ID
* @param roleId // @return 角色对象
*/
public SysRoles getRole(Integer roleId); public SysRoles getRole(Integer roleId);
/** // 获取角色
* // @param sysRoles 角色对象
* @param sysRoles
*/
public void updateRole(SysRoles sysRoles); public void updateRole(SysRoles sysRoles);
/** // 更新用户组信息并添加用户
* // @param sysRoles 角色对象
* @param sysRoles // @param userIdList 用户ID列表
* @param userIdList
*/
public void updateRole(SysRoles sysRoles, List<Integer> userIdList); public void updateRole(SysRoles sysRoles, List<Integer> userIdList);
/** // 创建角色
* // @param role 角色对象
* @param role // @return 角色对象
* @return
*/
public SysRoles createRole(SysRoles role); public SysRoles createRole(SysRoles role);
/** // 删除角色
* // @param roleId 角色ID
* @param roleId
*/
public void deleteRole(Integer roleId); public void deleteRole(Integer roleId);
/** // 根据角色查询权限
* // @param roleId 角色ID
* @param roleId // @param chose 是否选择
* @param chose // @param pageSize 每页大小
* @param pageSize // @param pageNum 当前页码
* @param pageNum // @return 角色权限关系分页对象
* @return
*/
public Page<GroupPermissionRelation> findPermissionByRoles(String roleId, boolean chose, Integer pageSize, Integer pageNum); public Page<GroupPermissionRelation> findPermissionByRoles(String roleId, boolean chose, Integer pageSize, Integer pageNum);
/** // 添加角色-权限之间关系
* - // @param roleId 角色ID
* @param roleId // @param permissionIds 权限ID列表
* @param permissionIds
*/
public void correlationPermissions(Integer roleId, Integer... permissionIds); public void correlationPermissions(Integer roleId, Integer... permissionIds);
/** // 移除角色-权限之间关系
* - // @param roleId 角色ID
* @param roleId //@param permissionIds 权限ID列表
* @param permissionIds
*/
public void unCorrelationPermissions(Integer roleId, Integer... permissionIds); public void unCorrelationPermissions(Integer roleId, Integer... permissionIds);
} }

@ -34,14 +34,7 @@ public class RoleServiceImpl implements RoleService {
@Autowired @Autowired
UserService userService; UserService userService;
/** //根据角色ID查询用户
* ID
*
* @param roleId
* @param pageSize
* @param pageNum
* @return
*/
@Override @Override
public Page<UserGroupRelation> findUsersByRoles(String roleId, boolean chose, Integer pageSize, Integer pageNum) { public Page<UserGroupRelation> findUsersByRoles(String roleId, boolean chose, Integer pageSize, Integer pageNum) {
Map map = new HashMap(); Map map = new HashMap();
@ -61,32 +54,19 @@ public class RoleServiceImpl implements RoleService {
return mybatisDao.selectPageByExample(sysRolesExample, pageSize, pageNum); return mybatisDao.selectPageByExample(sysRolesExample, pageSize, pageNum);
} }
/** //获取角色
*
*
* @param roleId
*/
@Override @Override
public SysRoles getRole(Integer roleId) { public SysRoles getRole(Integer roleId) {
return mybatisDao.selectByPrimaryKey(SysRoles.class, roleId); return mybatisDao.selectByPrimaryKey(SysRoles.class, roleId);
} }
/** // 更新角色
*
*
* @param sysRoles
*/
@Override @Override
public void updateRole(SysRoles sysRoles) { public void updateRole(SysRoles sysRoles) {
mybatisDao.update(sysRoles); mybatisDao.update(sysRoles);
} }
/** // 更新用户组信息并添加用户
*
*
* @param sysRoles
* @param userIdList
*/
@Override @Override
@Transactional @Transactional
public void updateRole(SysRoles sysRoles, List<Integer> userIdList) { public void updateRole(SysRoles sysRoles, List<Integer> userIdList) {
@ -114,11 +94,7 @@ public class RoleServiceImpl implements RoleService {
return (Page<GroupPermissionRelation>) mybatisDao.selectPage(UserMapper.UserMapperNameSpace + "findPermissionByRole", map, pageSize, pageNum); return (Page<GroupPermissionRelation>) mybatisDao.selectPage(UserMapper.UserMapperNameSpace + "findPermissionByRole", map, pageSize, pageNum);
} }
/** // 添加角色-权限之间关系
* -
* @param roleId
* @param permissionIds
*/
public void correlationPermissions(Integer roleId, Integer... permissionIds) { public void correlationPermissions(Integer roleId, Integer... permissionIds) {
for(Integer permissionId : permissionIds){ for(Integer permissionId : permissionIds){
SysRolesPermissions sysRolesPermissionsKey = new SysRolesPermissions(); SysRolesPermissions sysRolesPermissionsKey = new SysRolesPermissions();
@ -128,11 +104,7 @@ public class RoleServiceImpl implements RoleService {
} }
} }
/** //移除角色-权限之间关系
* -
* @param roleId
* @param permissionIds
*/
public void unCorrelationPermissions(Integer roleId, Integer... permissionIds) { public void unCorrelationPermissions(Integer roleId, Integer... permissionIds) {
SysRolesPermissionsExample sysRolesPermissionsExample = new SysRolesPermissionsExample(); SysRolesPermissionsExample sysRolesPermissionsExample = new SysRolesPermissionsExample();
sysRolesPermissionsExample.createCriteria() sysRolesPermissionsExample.createCriteria()

@ -13,66 +13,49 @@ import com.xmomen.module.user.entity.SysUsers;
*/ */
public interface UserService { public interface UserService {
/** // 创建用户
* // @param user
* @param user
*/
public SysUsers createUser(CreateUser user); public SysUsers createUser(CreateUser user);
/** // 更新用户
* // @param updateUserVo
* @param updateUserVo
*/
public void updateUser(UpdateUserVo updateUserVo); public void updateUser(UpdateUserVo updateUserVo);
/** // 修改密码
* // @param userId
* @param userId // @param newPassword
* @param newPassword
*/
public void changePassword(Integer userId, String newPassword); public void changePassword(Integer userId, String newPassword);
/** //修改密码
* // @param currentPassword
* @param currentPassword // @param newPassword
* @param newPassword
*/
public void changePassword(String username, String currentPassword, String newPassword); public void changePassword(String username, String currentPassword, String newPassword);
/** // 添加用户-角色关系
* - // @param userId
* @param userId // @param roleIds
* @param roleIds
*/
public void correlationRoles(Integer userId, Integer... roleIds); public void correlationRoles(Integer userId, Integer... roleIds);
/** // 移除用户-角色关系
* - // @param userId
* @param userId // @param roleIds
* @param roleIds
*/
public void uncorrelationRoles(Integer userId, Integer... roleIds); public void uncorrelationRoles(Integer userId, Integer... roleIds);
/** // 根据用户名查找用户
* // @param username
* @param username // @return
* @return
*/
public SysUsers findByUsername(String username); public SysUsers findByUsername(String username);
/** // 根据用户名查找其角色
* // @param username
* @param username // @return
* @return
*/
public Set<String> findRoles(String username); public Set<String> findRoles(String username);
/** // 根据用户名查找其权限
* // @param username
* @param username // @return
* @return
*/
public Set<String> findPermissions(String username); public Set<String> findPermissions(String username);
} }

@ -34,6 +34,7 @@ public class UserServiceImpl implements UserService {
private PasswordHelper passwordHelper; private PasswordHelper passwordHelper;
//设置密码帮助类
public void setPasswordHelper(PasswordHelper passwordHelper) { public void setPasswordHelper(PasswordHelper passwordHelper) {
this.passwordHelper = passwordHelper; this.passwordHelper = passwordHelper;
} }
@ -44,11 +45,8 @@ public class UserServiceImpl implements UserService {
@Autowired(required = false) @Autowired(required = false)
UserMapper userMapper; UserMapper userMapper;
/** // 创建用户
* // @param user
*
* @param user
*/
@Transactional @Transactional
public SysUsers createUser(CreateUser user) { public SysUsers createUser(CreateUser user) {
//加密密码 //加密密码
@ -68,12 +66,14 @@ public class UserServiceImpl implements UserService {
sysUsers.setPassword(newPassword); sysUsers.setPassword(newPassword);
sysUsers.setLocked(user.getLocked() ? 1 : 0); sysUsers.setLocked(user.getLocked() ? 1 : 0);
sysUsers = mybatisDao.saveByModel(sysUsers); sysUsers = mybatisDao.saveByModel(sysUsers);
//保存用户角色关系
for (int userGroupId : user.getUserGroupIds()) { for (int userGroupId : user.getUserGroupIds()) {
SysUsersRoles userRoles = new SysUsersRoles(); SysUsersRoles userRoles = new SysUsersRoles();
userRoles.setRoleId(userGroupId); userRoles.setRoleId(userGroupId);
userRoles.setUserId(sysUsers.getId()); userRoles.setUserId(sysUsers.getId());
mybatisDao.save(userRoles); mybatisDao.save(userRoles);
} }
//保存用户组织关系
SysUserOrganization userOrganization = new SysUserOrganization(); SysUserOrganization userOrganization = new SysUserOrganization();
userOrganization.setOrganizationId(user.getOrganizationId()); userOrganization.setOrganizationId(user.getOrganizationId());
userOrganization.setUserId(sysUsers.getId()); userOrganization.setUserId(sysUsers.getId());
@ -81,11 +81,8 @@ public class UserServiceImpl implements UserService {
return sysUsers; return sysUsers;
} }
/** // 更新用户
* // @param updateUserVo
*
* @param updateUserVo
*/
@Transactional @Transactional
@Override @Override
public void updateUser(UpdateUserVo updateUserVo) { public void updateUser(UpdateUserVo updateUserVo) {
@ -120,12 +117,9 @@ public class UserServiceImpl implements UserService {
mybatisDao.save(sysUsers); mybatisDao.save(sysUsers);
} }
/** // 修改密码
* // @param userId
* // @param newPassword
* @param userId
* @param newPassword
*/
@Transactional @Transactional
public void changePassword(Integer userId, String newPassword) { public void changePassword(Integer userId, String newPassword) {
SysUsers user = mybatisDao.selectByPrimaryKey(SysUsers.class, userId); SysUsers user = mybatisDao.selectByPrimaryKey(SysUsers.class, userId);
@ -150,12 +144,9 @@ public class UserServiceImpl implements UserService {
userMapper.resetPassword(username, currentRealPwd, newCurrentRealPwd, newSalt); userMapper.resetPassword(username, currentRealPwd, newCurrentRealPwd, newSalt);
} }
/** // 添加用户-角色关系
* - // @param userId
* // @param roleIds
* @param userId
* @param roleIds
*/
@Transactional @Transactional
public void correlationRoles(Integer userId, Integer... roleIds) { public void correlationRoles(Integer userId, Integer... roleIds) {
for (int i = 0; i < roleIds.length; i++) { for (int i = 0; i < roleIds.length; i++) {
@ -168,12 +159,9 @@ public class UserServiceImpl implements UserService {
} }
/** // 移除用户-角色关系
* - // @param userId
* // @param roleIds
* @param userId
* @param roleIds
*/
public void uncorrelationRoles(Integer userId, Integer... roleIds) { public void uncorrelationRoles(Integer userId, Integer... roleIds) {
SysUsersRolesExample sysUsersRolesExample = new SysUsersRolesExample(); SysUsersRolesExample sysUsersRolesExample = new SysUsersRolesExample();
sysUsersRolesExample.createCriteria() sysUsersRolesExample.createCriteria()
@ -182,12 +170,9 @@ public class UserServiceImpl implements UserService {
mybatisDao.deleteByExample(sysUsersRolesExample); mybatisDao.deleteByExample(sysUsersRolesExample);
} }
/** // 根据用户名查找用户
* // @param username
* // @return
* @param username
* @return
*/
public SysUsers findByUsername(String username) { public SysUsers findByUsername(String username) {
SysUsersExample sysUsersExample = new SysUsersExample(); SysUsersExample sysUsersExample = new SysUsersExample();
sysUsersExample.createCriteria().andUsernameEqualTo(username); sysUsersExample.createCriteria().andUsernameEqualTo(username);
@ -197,12 +182,9 @@ public class UserServiceImpl implements UserService {
return userses.size() > 0 ? userses.get(0) : null; return userses.size() > 0 ? userses.get(0) : null;
} }
/** // 根据用户名查找其角色
* // @param username
* // @return
* @param username
* @return
*/
public Set<String> findRoles(String username) { public Set<String> findRoles(String username) {
List<SysRoles> sysRolesList = userMapper.getRoleList(username); List<SysRoles> sysRolesList = userMapper.getRoleList(username);
Set<String> roles = new HashSet(); Set<String> roles = new HashSet();
@ -212,12 +194,9 @@ public class UserServiceImpl implements UserService {
return roles; return roles;
} }
/** // 根据用户名查找其权限
* // @param username
* // @return
* @param username
* @return
*/
public Set<String> findPermissions(String username) { public Set<String> findPermissions(String username) {
List<SysPermissions> sysPermissionsList = userMapper.getPermissionList(username); List<SysPermissions> sysPermissionsList = userMapper.getPermissionList(username);
Set<String> permissions = new HashSet(); Set<String> permissions = new HashSet();

@ -19,95 +19,93 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.*; import java.util.*;
/**
* Created by Jeng on 2016/1/5.
*/
@RestController @RestController
public class PermissionController { public class PermissionController {
// 注入UserService
@Autowired @Autowired
UserService userService; UserService userService;
// 注入PermissionService
@Autowired @Autowired
PermissionService permissionService; PermissionService permissionService;
// 注入RoleService
@Autowired @Autowired
RoleService roleService; RoleService roleService;
// 注入MybatisDao
@Autowired @Autowired
MybatisDao mybatisDao; MybatisDao mybatisDao;
/** // 权限权限
*
* @return
*/
@RequestMapping(value = "/user/permissions", method = RequestMethod.GET) @RequestMapping(value = "/user/permissions", method = RequestMethod.GET)
public Map getPermission(){ public Map getPermission(){
// 获取当前用户名
String username = (String) SecurityUtils.getSubject().getPrincipal(); String username = (String) SecurityUtils.getSubject().getPrincipal();
// 获取当前用户的角色
Set<String> roles = userService.findRoles(username); Set<String> roles = userService.findRoles(username);
// 获取当前用户的权限
Set<String> permissions = userService.findPermissions(username); Set<String> permissions = userService.findPermissions(username);
// 将角色和权限放入Map中
Map rolesMap = new HashMap(); Map rolesMap = new HashMap();
rolesMap.put("roles", roles); rolesMap.put("roles", roles);
rolesMap.put("permissions", permissions); rolesMap.put("permissions", permissions);
return rolesMap; return rolesMap;
} }
/** // 权限列表
*
* @param limit
* @param offset
* @param keyword
* @return
*/
@RequestMapping(value = "/permission", method = RequestMethod.GET) @RequestMapping(value = "/permission", method = RequestMethod.GET)
@Log(actionName = "查看权限列表") @Log(actionName = "查看权限列表")
public Page<SysPermissions> getPermissionList(@RequestParam(value = "limit") Integer limit, public Page<SysPermissions> getPermissionList(@RequestParam(value = "limit") Integer limit,
@RequestParam(value = "offset") Integer offset, @RequestParam(value = "offset") Integer offset,
@RequestParam(value = "keyword", required = false) String keyword){ @RequestParam(value = "keyword", required = false) String keyword){
// 创建权限示例
SysPermissionsExample sysPermissionsExample = new SysPermissionsExample(); SysPermissionsExample sysPermissionsExample = new SysPermissionsExample();
// 添加权限名称模糊查询条件
sysPermissionsExample.createCriteria() sysPermissionsExample.createCriteria()
.andPermissionLike("%" + StringUtils.trimToEmpty(keyword) + "%"); .andPermissionLike("%" + StringUtils.trimToEmpty(keyword) + "%");
// 添加权限描述模糊查询条件
sysPermissionsExample.or() sysPermissionsExample.or()
.andDescriptionLike("%" + StringUtils.trimToEmpty(keyword) + "%"); .andDescriptionLike("%" + StringUtils.trimToEmpty(keyword) + "%");
// 根据示例查询权限列表
return mybatisDao.selectPageByExample(sysPermissionsExample, limit, offset); return mybatisDao.selectPageByExample(sysPermissionsExample, limit, offset);
} }
/** // 权限资源
*
* @param id
*/
@RequestMapping(value = "/permission/{id}", method = RequestMethod.GET) @RequestMapping(value = "/permission/{id}", method = RequestMethod.GET)
@Log(actionName = "查询单个权限") @Log(actionName = "查询单个权限")
public SysPermissions getPermission(@PathVariable(value = "id") Integer id){ public SysPermissions getPermission(@PathVariable(value = "id") Integer id){
// 根据id查询权限
return mybatisDao.selectByPrimaryKey(SysPermissions.class, id); return mybatisDao.selectByPrimaryKey(SysPermissions.class, id);
} }
/** // 新增权限
*
* @param createPermissionVo
* @param bindingResult
* @return
*/
@RequestMapping(value = "/permission", method = RequestMethod.POST) @RequestMapping(value = "/permission", method = RequestMethod.POST)
@Log(actionName = "新增权限资源") @Log(actionName = "新增权限资源")
public SysPermissions createPermission(@RequestBody @Valid CreatePermissionVo createPermissionVo, BindingResult bindingResult) throws ArgumentValidException { public SysPermissions createPermission(@RequestBody @Valid CreatePermissionVo createPermissionVo, BindingResult bindingResult) throws ArgumentValidException {
// 验证参数
if(bindingResult != null && bindingResult.hasErrors()){ if(bindingResult != null && bindingResult.hasErrors()){
throw new ArgumentValidException(bindingResult); throw new ArgumentValidException(bindingResult);
} }
// 创建权限对象
SysPermissions sysPermissions = new SysPermissions(); SysPermissions sysPermissions = new SysPermissions();
// 设置权限描述
sysPermissions.setDescription(createPermissionVo.getDescription()); sysPermissions.setDescription(createPermissionVo.getDescription());
// 设置权限代码
sysPermissions.setPermission(createPermissionVo.getPermissionCode().toUpperCase()); sysPermissions.setPermission(createPermissionVo.getPermissionCode().toUpperCase());
// 设置权限是否可用
sysPermissions.setAvailable(createPermissionVo.getAvailable() != null && createPermissionVo.getAvailable() ? 1 : 0); sysPermissions.setAvailable(createPermissionVo.getAvailable() != null && createPermissionVo.getAvailable() ? 1 : 0);
// 调用权限服务创建权限
return permissionService.createPermission(sysPermissions); return permissionService.createPermission(sysPermissions);
} }
/** // 删除权限
*
* @param id
*/
@RequestMapping(value = "/permission/{id}", method = RequestMethod.DELETE) @RequestMapping(value = "/permission/{id}", method = RequestMethod.DELETE)
@Log(actionName = "删除权限资源") @Log(actionName = "删除权限资源")
public void deletePermission(@PathVariable(value = "id") Long id){ public void deletePermission(@PathVariable(value = "id") Long id){
// 根据id删除权限
mybatisDao.deleteByPrimaryKey(SysPermissions.class, id); mybatisDao.deleteByPrimaryKey(SysPermissions.class, id);
} }

@ -22,25 +22,23 @@ import com.xmomen.framework.mybatis.dao.MybatisDao;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
/**
* Created by Jeng on 2016/1/5.
*/
@RestController @RestController
public class UserController { public class UserController {
// 注入UserService
@Autowired @Autowired
UserService userService; UserService userService;
// 注入UserMapper
@Autowired @Autowired
UserMapper userMapper; UserMapper userMapper;
// 注入MybatisDao
@Autowired @Autowired
MybatisDao mybatisDao; MybatisDao mybatisDao;
/** // 用户列表
*
* @param id
*/
@RequestMapping(value = "/user", method = RequestMethod.GET) @RequestMapping(value = "/user", method = RequestMethod.GET)
@Log(actionName = "查询用户列表") @Log(actionName = "查询用户列表")
public Page<User> getUserList(@RequestParam(value = "limit") Integer limit, public Page<User> getUserList(@RequestParam(value = "limit") Integer limit,
@ -48,35 +46,32 @@ public class UserController {
@RequestParam(value = "id", required = false) Integer id, @RequestParam(value = "id", required = false) Integer id,
@RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "keyword", required = false) String keyword,
@RequestParam(value = "organizationId",required = false) Integer organizationId){ @RequestParam(value = "organizationId",required = false) Integer organizationId){
// 创建一个Map用于存储查询条件
Map<String, Object> map = new HashMap<String,Object>(); Map<String, Object> map = new HashMap<String,Object>();
map.put("id", id); map.put("id", id);
map.put("keyword", keyword); map.put("keyword", keyword);
map.put("organizationId", organizationId); map.put("organizationId", organizationId);
// 调用MybatisDao的selectPage方法查询用户列表
return (Page<User>) mybatisDao.selectPage(UserMapper.UserMapperNameSpace + "getUsers", map, limit, offset); return (Page<User>) mybatisDao.selectPage(UserMapper.UserMapperNameSpace + "getUsers", map, limit, offset);
} }
/** // 用户列表
*
* @param id
*/
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET) @RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
@Log(actionName = "查询用户") @Log(actionName = "查询用户")
public SysUsers getUserList(@PathVariable(value = "id") Integer id){ public SysUsers getUserList(@PathVariable(value = "id") Integer id){
// 调用MybatisDao的selectByPrimaryKey方法查询用户
return mybatisDao.selectByPrimaryKey(SysUsers.class, id); return mybatisDao.selectByPrimaryKey(SysUsers.class, id);
} }
/** // 新增用户
*
* @param createUser
* @param bindingResult
* @return
*/
@RequestMapping(value = "/user", method = RequestMethod.POST) @RequestMapping(value = "/user", method = RequestMethod.POST)
@Log(actionName = "新增用户") @Log(actionName = "新增用户")
public SysUsers createUser(@RequestBody @Valid CreateUserVo createUser, BindingResult bindingResult) throws ArgumentValidException { public SysUsers createUser(@RequestBody @Valid CreateUserVo createUser, BindingResult bindingResult) throws ArgumentValidException {
// 验证参数是否合法
if(bindingResult != null && bindingResult.hasErrors()){ if(bindingResult != null && bindingResult.hasErrors()){
throw new ArgumentValidException(bindingResult); throw new ArgumentValidException(bindingResult);
} }
// 创建一个CreateUser对象用于存储用户信息
CreateUser user = new CreateUser(); CreateUser user = new CreateUser();
user.setAge(createUser.getAge()); user.setAge(createUser.getAge());
user.setOfficeTel(createUser.getOfficeTel()); user.setOfficeTel(createUser.getOfficeTel());
@ -90,57 +85,49 @@ public class UserController {
user.setLocked(createUser.getLocked() != null && createUser.getLocked() == true ? true : false); user.setLocked(createUser.getLocked() != null && createUser.getLocked() == true ? true : false);
user.setOrganizationId(createUser.getOrganizationId()); user.setOrganizationId(createUser.getOrganizationId());
user.setUserGroupIds(createUser.getUserGroupIds()); user.setUserGroupIds(createUser.getUserGroupIds());
// 调用UserService的createUser方法新增用户
return userService.createUser(user); return userService.createUser(user);
} }
/** // 更新用户
*
* @param id
* @param updateUserVo
* @param bindingResult
* @throws ArgumentValidException
*/
@RequestMapping(value = "/user/{id}", method = RequestMethod.PUT) @RequestMapping(value = "/user/{id}", method = RequestMethod.PUT)
@Log(actionName = "更新用户") @Log(actionName = "更新用户")
public void updateUser(@PathVariable(value = "id") Integer id, public void updateUser(@PathVariable(value = "id") Integer id,
@RequestBody @Valid UpdateUserVo updateUserVo, BindingResult bindingResult) throws ArgumentValidException { @RequestBody @Valid UpdateUserVo updateUserVo, BindingResult bindingResult) throws ArgumentValidException {
// 验证参数是否合法
if(bindingResult != null && bindingResult.hasErrors()){ if(bindingResult != null && bindingResult.hasErrors()){
throw new ArgumentValidException(bindingResult); throw new ArgumentValidException(bindingResult);
} }
// 调用UserService的updateUser方法更新用户
userService.updateUser(updateUserVo); userService.updateUser(updateUserVo);
} }
/** // 删除用户
*
* @param id
*/
@RequestMapping(value = "/user/{id}", method = RequestMethod.DELETE) @RequestMapping(value = "/user/{id}", method = RequestMethod.DELETE)
@Log(actionName = "删除用户") @Log(actionName = "删除用户")
public void deleteUser(@PathVariable(value = "id") Long id){ public void deleteUser(@PathVariable(value = "id") Long id){
// 调用MybatisDao的deleteByPrimaryKey方法删除用户
mybatisDao.deleteByPrimaryKey(SysUsers.class, id); mybatisDao.deleteByPrimaryKey(SysUsers.class, id);
} }
/** // 锁定用户
*
* @param id
*/
@RequestMapping(value = "/user/{id}/locked", method = RequestMethod.PUT) @RequestMapping(value = "/user/{id}/locked", method = RequestMethod.PUT)
@Log(actionName = "修改用户信息") @Log(actionName = "修改用户信息")
public void lockedUser(@PathVariable(value = "id") Integer id, public void lockedUser(@PathVariable(value = "id") Integer id,
@RequestParam(value = "locked") Boolean locked){ @RequestParam(value = "locked") Boolean locked){
// 创建一个SysUsers对象用于存储用户信息
SysUsers sysUsers = new SysUsers(); SysUsers sysUsers = new SysUsers();
sysUsers.setLocked(locked ? 1 : 0); sysUsers.setLocked(locked ? 1 : 0);
sysUsers.setId(id); sysUsers.setId(id);
// 调用MybatisDao的update方法更新用户信息
mybatisDao.update(sysUsers); mybatisDao.update(sysUsers);
} }
/** // 重置密码
*
* @param id
*/
@RequestMapping(value = "/user/{id}/resetPassword", method = RequestMethod.PUT) @RequestMapping(value = "/user/{id}/resetPassword", method = RequestMethod.PUT)
@Log(actionName = "重置密码") @Log(actionName = "重置密码")
public void resetPassword(@PathVariable(value = "id") Integer id){ public void resetPassword(@PathVariable(value = "id") Integer id){
// 调用UserService的changePassword方法重置密码
userService.changePassword(id, "123456"); userService.changePassword(id, "123456");
} }

@ -17,9 +17,6 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
/**
* Created by Jeng on 2016/1/5.
*/
@RestController @RestController
public class UserGroupController { public class UserGroupController {
@ -28,44 +25,35 @@ public class UserGroupController {
@Autowired @Autowired
UserService userService; UserService userService;
/** // 查询用户组列表
*
* @param limit
* @param offset
* @param keyword
* @return
*/
@RequestMapping(value = "/group", method = RequestMethod.GET) @RequestMapping(value = "/group", method = RequestMethod.GET)
@Log(actionName = "查询用户组列表") @Log(actionName = "查询用户组列表")
public Page<SysRoles> getUserList(@RequestParam(value = "limit") Integer limit, public Page<SysRoles> getUserList(@RequestParam(value = "limit") Integer limit,
@RequestParam(value = "offset") Integer offset, @RequestParam(value = "offset") Integer offset,
@RequestParam(value = "keyword", required = false) String keyword){ @RequestParam(value = "keyword", required = false) String keyword){
// 去除关键字两端的空格
keyword = StringUtils.trimToEmpty(keyword); keyword = StringUtils.trimToEmpty(keyword);
// 根据关键字查询用户组列表
return roleService.findRoles("%" + keyword + "%", limit, offset); return roleService.findRoles("%" + keyword + "%", limit, offset);
} }
/** // 查询用户组
*
* @param id
*/
@RequestMapping(value = "/group/{id}", method = RequestMethod.GET) @RequestMapping(value = "/group/{id}", method = RequestMethod.GET)
@Log(actionName = "查询用户组") @Log(actionName = "查询用户组")
public SysRoles getUserList(@PathVariable(value = "id") Integer id){ public SysRoles getUserList(@PathVariable(value = "id") Integer id){
// 根据id查询用户组
return roleService.getRole(id); return roleService.getRole(id);
} }
/** // 新增用户组
*
* @param createUserGroup
* @param bindingResult
* @throws ArgumentValidException
*/
@RequestMapping(value = "/group", method = RequestMethod.POST) @RequestMapping(value = "/group", method = RequestMethod.POST)
@Log(actionName = "新增用户组") @Log(actionName = "新增用户组")
public void createUser(@RequestBody @Valid CreateUserGroup createUserGroup, BindingResult bindingResult) throws ArgumentValidException { public void createUser(@RequestBody @Valid CreateUserGroup createUserGroup, BindingResult bindingResult) throws ArgumentValidException {
// 验证参数是否合法
if(bindingResult != null && bindingResult.hasErrors()){ if(bindingResult != null && bindingResult.hasErrors()){
throw new ArgumentValidException(bindingResult); throw new ArgumentValidException(bindingResult);
} }
// 创建用户组
SysRoles sysRoles = new SysRoles(); SysRoles sysRoles = new SysRoles();
sysRoles.setRole(createUserGroup.getUserGroup()); sysRoles.setRole(createUserGroup.getUserGroup());
sysRoles.setDescription(createUserGroup.getDescription()); sysRoles.setDescription(createUserGroup.getDescription());
@ -73,27 +61,24 @@ public class UserGroupController {
roleService.createRole(sysRoles); roleService.createRole(sysRoles);
} }
/** // 删除用户组
*
* @param id
*/
@RequestMapping(value = "/group/{id}", method = RequestMethod.DELETE) @RequestMapping(value = "/group/{id}", method = RequestMethod.DELETE)
@Log(actionName = "删除用户组") @Log(actionName = "删除用户组")
public void deleteUser(@PathVariable(value = "id") Integer id){ public void deleteUser(@PathVariable(value = "id") Integer id){
// 根据id删除用户组
roleService.deleteRole(id); roleService.deleteRole(id);
} }
/** // 修改用户组
*
* @param id
*/
@RequestMapping(value = "/group/{id}", method = RequestMethod.PUT) @RequestMapping(value = "/group/{id}", method = RequestMethod.PUT)
@Log(actionName = "修改用户组") @Log(actionName = "修改用户组")
public void updateUserGroup(@PathVariable(value = "id") Integer id, public void updateUserGroup(@PathVariable(value = "id") Integer id,
@RequestBody @Valid UpdateUserGroup updateUserGroup, BindingResult bindingResult) throws ArgumentValidException { @RequestBody @Valid UpdateUserGroup updateUserGroup, BindingResult bindingResult) throws ArgumentValidException {
// 验证参数是否合法
if(bindingResult != null && bindingResult.hasErrors()){ if(bindingResult != null && bindingResult.hasErrors()){
throw new ArgumentValidException(bindingResult); throw new ArgumentValidException(bindingResult);
} }
// 修改用户组
SysRoles sysRoles = new SysRoles(); SysRoles sysRoles = new SysRoles();
sysRoles.setId(id); sysRoles.setId(id);
sysRoles.setDescription(updateUserGroup.getDescription()); sysRoles.setDescription(updateUserGroup.getDescription());
@ -107,13 +92,7 @@ public class UserGroupController {
} }
} }
/** // 查询用户组用户
*
* @param groupId
* @param limit
* @param offset
* @return
*/
@RequestMapping(value = "/group/{groupId}/user") @RequestMapping(value = "/group/{groupId}/user")
@Log(actionName = "查询用户组下属用户") @Log(actionName = "查询用户组下属用户")
public Page<UserGroupRelation> findUsersByGroup(@PathVariable(value = "groupId") String groupId, public Page<UserGroupRelation> findUsersByGroup(@PathVariable(value = "groupId") String groupId,
@ -123,15 +102,12 @@ public class UserGroupController {
if(unChose == null){ if(unChose == null){
unChose = false; unChose = false;
} }
// 如果未选择则默认为false
return roleService.findUsersByRoles(groupId, unChose, limit, offset); return roleService.findUsersByRoles(groupId, unChose, limit, offset);
} }
/** // 根据用户组id查询用户列表
* // 绑定用户
* @param groupId
* @param chose
* @param userId
*/
@Log(actionName = "修改用户组下属用户关系") @Log(actionName = "修改用户组下属用户关系")
@RequestMapping(value = "/group/{groupId}/user", method = RequestMethod.PUT) @RequestMapping(value = "/group/{groupId}/user", method = RequestMethod.PUT)
public void findUsersByGroup(@PathVariable(value = "groupId") Integer groupId, public void findUsersByGroup(@PathVariable(value = "groupId") Integer groupId,
@ -144,13 +120,8 @@ public class UserGroupController {
} }
} }
/** // 如果选择,则绑定用户
* // 查询用户组权限
* @param groupId
* @param limit
* @param offset
* @return
*/
@Log(actionName = "查询用户组所属权限") @Log(actionName = "查询用户组所属权限")
@RequestMapping(value = "/group/{groupId}/permissions") @RequestMapping(value = "/group/{groupId}/permissions")
public Page<GroupPermissionRelation> findPermissionByGroup(@PathVariable(value = "groupId") String groupId, public Page<GroupPermissionRelation> findPermissionByGroup(@PathVariable(value = "groupId") String groupId,
@ -163,12 +134,7 @@ public class UserGroupController {
return roleService.findPermissionByRoles(groupId, unChose, limit, offset); return roleService.findPermissionByRoles(groupId, unChose, limit, offset);
} }
/** // 绑定权限
*
* @param groupId
* @param chose
* @param permissionId
*/
@Log(actionName = "修改用户组所属权限") @Log(actionName = "修改用户组所属权限")
@RequestMapping(value = "/group/{groupId}/permissions", method = RequestMethod.PUT) @RequestMapping(value = "/group/{groupId}/permissions", method = RequestMethod.PUT)
public void correlationPermission(@PathVariable(value = "groupId") Integer groupId, public void correlationPermission(@PathVariable(value = "groupId") Integer groupId,

@ -5,17 +5,18 @@ import org.hibernate.validator.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
/**
* Created by Jeng on 2016/3/18.
*/
public class CreatePermissionVo implements Serializable { public class CreatePermissionVo implements Serializable {
// 权限编码
@NotBlank @NotBlank
@NotNull @NotNull
private String permissionCode; private String permissionCode;
// 描述
@NotBlank @NotBlank
@NotNull @NotNull
private String description; private String description;
// 是否可用
private Boolean available; private Boolean available;
public String getPermissionCode() { public String getPermissionCode() {

@ -5,15 +5,15 @@ import org.hibernate.validator.constraints.NotEmpty;
import java.io.Serializable; import java.io.Serializable;
/**
* Created by Jeng on 2016/2/1.
*/
public class CreateUserGroup implements Serializable { public class CreateUserGroup implements Serializable {
// 用户组名称,不能为空
@NotBlank @NotBlank
private String userGroup; private String userGroup;
// 描述,不能为空
@NotEmpty @NotEmpty
private String description; private String description;
// 是否可用
private Boolean available; private Boolean available;
public String getUserGroup() { public String getUserGroup() {

@ -7,31 +7,38 @@ import lombok.Data;
import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.NotBlank;
/**
* Created by Jeng on 2016/1/7.
*/
public @Data class CreateUserVo implements Serializable { public @Data class CreateUserVo implements Serializable {
// 用户名
@NotBlank @NotBlank
private String username; private String username;
// 密码
@NotBlank @NotBlank
private String password; private String password;
// 邮箱
private String email; private String email;
// 真实姓名
@NotBlank @NotBlank
private String realName; private String realName;
// 手机号码
@NotBlank @NotBlank
private String phoneNumber; private String phoneNumber;
// 年龄
private Integer age; private Integer age;
// QQ号码
private String qq; private String qq;
// 办公电话
private String officeTel; private String officeTel;
// 是否锁定
private Boolean locked; private Boolean locked;
/** // 性别
* 1-2
*/
private Integer sex; private Integer sex;
// 组织ID
private Integer organizationId; private Integer organizationId;
// 用户组ID列表
private List<Integer> userGroupIds; private List<Integer> userGroupIds;
} }

@ -2,44 +2,54 @@ package com.xmomen.module.account.web.controller.vo;
import java.io.Serializable; import java.io.Serializable;
/**
* Created by Jeng on 2016/2/1.
*/
public class GroupPermissionRelation implements Serializable { public class GroupPermissionRelation implements Serializable {
// 组ID
private String groupId; private String groupId;
// 权限编码
private String permissionCode; private String permissionCode;
// 权限描述
private String permissionDescription; private String permissionDescription;
// 权限ID
private String permissionId; private String permissionId;
// 获取组ID
public String getGroupId() { public String getGroupId() {
return groupId; return groupId;
} }
// 设置组ID
public void setGroupId(String groupId) { public void setGroupId(String groupId) {
this.groupId = groupId; this.groupId = groupId;
} }
// 获取权限编码
public String getPermissionCode() { public String getPermissionCode() {
return permissionCode; return permissionCode;
} }
// 设置权限编码
public void setPermissionCode(String permissionCode) { public void setPermissionCode(String permissionCode) {
this.permissionCode = permissionCode; this.permissionCode = permissionCode;
} }
// 获取权限描述
public String getPermissionDescription() { public String getPermissionDescription() {
return permissionDescription; return permissionDescription;
} }
// 设置权限描述
public void setPermissionDescription(String permissionDescription) { public void setPermissionDescription(String permissionDescription) {
this.permissionDescription = permissionDescription; this.permissionDescription = permissionDescription;
} }
// 获取权限ID
public String getPermissionId() { public String getPermissionId() {
return permissionId; return permissionId;
} }
// 设置权限ID
public void setPermissionId(String permissionId) { public void setPermissionId(String permissionId) {
this.permissionId = permissionId; this.permissionId = permissionId;
} }

@ -5,36 +5,43 @@ import org.hibernate.validator.constraints.Length;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
/**
* Created by Jeng on 2016/2/1.
*/
public class UpdateUserGroup implements Serializable { public class UpdateUserGroup implements Serializable {
// 用户组描述
@Length(min = 0, max = 100) @Length(min = 0, max = 100)
private String description; private String description;
// 用户ID列表
private List<Integer> userIdList; private List<Integer> userIdList;
// 是否可用
private Boolean available; private Boolean available;
// 获取用户ID列表
public List<Integer> getUserIdList() { public List<Integer> getUserIdList() {
return userIdList; return userIdList;
} }
// 设置用户ID列表
public void setUserIdList(List<Integer> userIdList) { public void setUserIdList(List<Integer> userIdList) {
this.userIdList = userIdList; this.userIdList = userIdList;
} }
// 获取用户组描述
public String getDescription() { public String getDescription() {
return description; return description;
} }
// 设置用户组描述
public void setDescription(String description) { public void setDescription(String description) {
this.description = description; this.description = description;
} }
// 获取是否可用
public Boolean getAvailable() { public Boolean getAvailable() {
return available; return available;
} }
// 设置是否可用
public void setAvailable(Boolean available) { public void setAvailable(Boolean available) {
this.available = available; this.available = available;
} }

@ -9,31 +9,35 @@ import lombok.Data;
import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.NotBlank;
/**
* Created by Jeng on 2016/1/7.
*/
public @Data class UpdateUserVo implements Serializable { public @Data class UpdateUserVo implements Serializable {
// 用户ID
@NotNull @NotNull
private Integer id; private Integer id;
// 用户名
@NotBlank @NotBlank
private String username; private String username;
// 邮箱
private String email; private String email;
// 真实姓名
@NotBlank @NotBlank
private String realName; private String realName;
// 电话号码
@NotNull @NotNull
private String phoneNumber; private String phoneNumber;
// 年龄
private Integer age; private Integer age;
// QQ号
private String qq; private String qq;
// 办公电话
private String officeTel; private String officeTel;
private Boolean locked; private Boolean locked;
/** // 是否锁定 1-男2女
* 1-2
*/
private Integer sex; private Integer sex;
// 组织ID
private Integer organizationId; private Integer organizationId;
// 用户组ID列表
private List<Integer> userGroupIds; private List<Integer> userGroupIds;
} }

@ -2,35 +2,42 @@ package com.xmomen.module.account.web.controller.vo;
import java.io.Serializable; import java.io.Serializable;
/**
* Created by Jeng on 2016/2/1.
*/
public class UserGroupRelation implements Serializable { public class UserGroupRelation implements Serializable {
// 用户名
private String username; private String username;
// 邮箱
private String email; private String email;
// 用户ID
private String userId; private String userId;
// 获取用户名
public String getUsername() { public String getUsername() {
return username; return username;
} }
// 设置用户名
public void setUsername(String username) { public void setUsername(String username) {
this.username = username; this.username = username;
} }
// 获取邮箱
public String getEmail() { public String getEmail() {
return email; return email;
} }
// 设置邮箱
public void setEmail(String email) { public void setEmail(String email) {
this.email = email; this.email = email;
} }
// 获取用户ID
public String getUserId() { public String getUserId() {
return userId; return userId;
} }
// 设置用户ID
public void setUserId(String userId) { public void setUserId(String userId) {
this.userId = userId; this.userId = userId;
} }

Loading…
Cancel
Save