权限管理接口开发

This commit is contained in:
winLsy
2018-03-24 14:34:20 +08:00
parent af5b48637a
commit bddd819a6e
11 changed files with 83 additions and 7 deletions
@@ -7,6 +7,8 @@ import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import java.util.concurrent.atomic.AtomicInteger;
/**
* 网关web配置类
* @author lsy
@@ -37,7 +37,7 @@ public interface UpmsRoleMapper extends SsmMapper<UpmsRole,Integer> {
* @param userId 根据用户id查询已拥有的角色
* @return
*/
List<Role> selectRoleJoinWithUserId(@Param("userId") Integer userId);
List<UpmsRole> selectRoleJoinWithUserId(@Param("userId") Integer userId);
/**
* 根据角色名称查询用户未拥有的角色
@@ -45,6 +45,6 @@ public interface UpmsRoleMapper extends SsmMapper<UpmsRole,Integer> {
* @param roleName 角色的名称
* @return
*/
List<Role> selectRolesUserNotHaveByConditionPage(@Param("userId") Integer userId, @Param("roleName") String roleName);
List<UpmsRole> selectRolesUserNotHaveByConditionPage(@Param("userId") Integer userId, @Param("roleName") String roleName);
}
@@ -2,6 +2,7 @@ package com.micro.fast.upms.dao;
import com.micro.fast.common.dao.SsmMapper;
import com.micro.fast.upms.pojo.UpmsSystem;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -30,4 +31,12 @@ public interface UpmsSystemMapper extends SsmMapper<UpmsSystem,Integer> {
@Override
int deleteByPrimaryKeys(List<Integer> ids);
/**
* 查询某个系统的状态,必要时对系统进行关闭
* @param id 系统的id
* @return
*/
@Select("select status from upms_system where id = #{id}")
int selectSystemStatus(Integer id);
}
@@ -136,12 +136,12 @@
</foreach>
</delete>
<select id="selectRoleJoinWithUserId" resultType="javax.management.relation.Role">
<select id="selectRoleJoinWithUserId" resultType="com.micro.fast.upms.pojo.UpmsRole">
SELECT <include refid="Base_Column_List"/> FROM upms_role WHERE
id IN (SELECT role_id from upms_user_role WHERE user_id = #{userId})
</select>
<select id="selectRolesUserNotHaveByConditionPage" resultType="javax.management.relation.Role">
<select id="selectRolesUserNotHaveByConditionPage" resultType="com.micro.fast.upms.pojo.UpmsRole">
SELECT <include refid="Base_Column_List" /> FROM upms_role WHERE id not in (select role_id from upms_user_role WHERE upms_user_role.user_id = #{userId})
<if test="roleName !=null">
and name like #{roleName}
@@ -1,5 +1,6 @@
package com.micro.fast.upms.service;
import com.micro.fast.boot.starter.common.response.ServerResponse;
import com.micro.fast.common.service.SsmService;
/**
@@ -7,5 +8,10 @@ import com.micro.fast.common.service.SsmService;
* @author lsy
*/
public interface UpmsSystemService<T,ID> extends SsmService<T,ID>{
/**
* 查询系统的状态
* @param id
* @return
*/
ServerResponse getSystemStatus(Integer id);
}
@@ -38,4 +38,13 @@ public interface UpmsUserService<T,ID> extends SsmService<T,ID> {
*/
ServerResponse getUsersByOrgId(UpmsUser upmsUser, Integer orgId, int pageNum, int pageSize, String order_by);
/**
* 根据权限的类型获取所有的权限
* @param userId 用户的id
* @param type 权限的类型
* @return
*/
ServerResponse getAllPermissionByType(Integer userId,Integer type);
}
@@ -34,14 +34,14 @@ implements UpmsRoleService<UpmsRole,Integer>,InitializingBean {
@Override
public ServerResponse getRolesByUserId(Integer useId) {
List<Role> roles = mapper.selectRoleJoinWithUserId(useId);
List<UpmsRole> roles = mapper.selectRoleJoinWithUserId(useId);
return ServerResponse.successMsgData("根据用户id查询角色成功",roles);
}
@Override
public ServerResponse selectRolesUserNotHaveByConditionPage(Integer userId, String roleName, int pageSize, int pageNum) {
PageHelper.startPage(pageNum,pageSize,"ctime_desc");
List<Role> roles = mapper.selectRolesUserNotHaveByConditionPage(userId, roleName);
List<UpmsRole> roles = mapper.selectRolesUserNotHaveByConditionPage(userId, roleName);
PageInfo pageInfo = new PageInfo(roles);
return ServerResponse.successData(pageInfo);
}
@@ -1,5 +1,6 @@
package com.micro.fast.upms.service.impl;
import com.micro.fast.boot.starter.common.response.ServerResponse;
import com.micro.fast.common.service.impl.SsmServiceImpl;
import com.micro.fast.upms.dao.UpmsSystemMapper;
import com.micro.fast.upms.pojo.UpmsSystem;
@@ -25,4 +26,10 @@ implements UpmsSystemService<UpmsSystem,Integer>,InitializingBean {
public void afterPropertiesSet() throws Exception {
super.setMapper(this.mapper);
}
@Override
public ServerResponse getSystemStatus(Integer id) {
int systemStatus = mapper.selectSystemStatus(id);
return ServerResponse.successMsgData("获取系统状态成功",systemStatus);
}
}
@@ -9,7 +9,11 @@ import com.micro.fast.boot.starter.common.response.BaseConst.SystemResponse;
import com.micro.fast.boot.starter.common.response.BaseConst.UserResponse;
import com.micro.fast.boot.starter.common.response.ServerResponse;
import com.micro.fast.common.service.impl.SsmServiceImpl;
import com.micro.fast.upms.dao.UpmsPermissionMapper;
import com.micro.fast.upms.dao.UpmsRoleMapper;
import com.micro.fast.upms.dao.UpmsUserMapper;
import com.micro.fast.upms.pojo.UpmsPermission;
import com.micro.fast.upms.pojo.UpmsRole;
import com.micro.fast.upms.pojo.UpmsUser;
import com.micro.fast.upms.service.UpmsUserService;
import org.springframework.beans.factory.InitializingBean;
@@ -17,7 +21,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import javax.management.relation.Role;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* @author lsy
@@ -33,6 +40,12 @@ public class UpmsUserServiceImpl extends SsmServiceImpl<UpmsUser,Integer,UpmsUs
@Autowired
private PasswordEncoder passwordEncoder;
@Autowired
private UpmsRoleMapper upmsRoleMapper;
@Autowired
private UpmsPermissionMapper upmsPermissionMapper;
@Override
public ServerResponse<UpmsUser> register(UpmsUser upmsUser, String repeatPassword){
ServerResponse checkUsername = checkUsername(upmsUser.getUsername());
@@ -96,6 +109,18 @@ public class UpmsUserServiceImpl extends SsmServiceImpl<UpmsUser,Integer,UpmsUs
return ServerResponse.successMsgData("根据组织查询用户成功",pageInfo);
}
@Override
public ServerResponse getAllPermissionByType(Integer userId, Integer type) {
// 查询用户所有的角色
List<UpmsRole> roles = upmsRoleMapper.selectRoleJoinWithUserId(userId);
Set<UpmsPermission> permissions = new HashSet<>(16);
roles.forEach((role) -> {
List<UpmsPermission> upmsPermissions = upmsPermissionMapper.selectByRoleIdAndType(role.getId(), type);
permissions.addAll(upmsPermissions);
});
return ServerResponse.successData(permissions);
}
@Override
public void afterPropertiesSet() throws Exception {
super.setMapper(this.upmsUserMapper);
@@ -13,6 +13,7 @@ import org.springframework.validation.BindException;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
/**
@@ -67,4 +68,11 @@ public class UpmsSystemController {
@NotEmpty(message = BaseConst.BASEMSG_PREFIX+"请传入id") @RequestParam("ids") ArrayList<Integer> ids){
return upmsSystemService.deleteByIds(ids);
}
@ApiOperation("根据id查询系统的状态")
@GetMapping("/getSystemIdBySystemId")
public ServerResponse getSystemIdBySystemId(
@NotNull(message = BaseConst.BASEMSG_PREFIX + "请传入系统的id") @RequestParam("systemId") Integer systemId){
return upmsSystemService.getSystemStatus(systemId);
}
}
@@ -8,11 +8,13 @@ import com.micro.fast.upms.pojo.UpmsUser;
import com.micro.fast.upms.service.UpmsUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Param;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
@@ -104,4 +106,12 @@ public class UpmsUserController {
@RequestParam(value = "organizationId",required = false) Integer orgId ) {
return upmsUserService.getUsersByOrgId(upmsUser, orgId, pageNum, pageSize, orderBy);
}
@ApiOperation("根据权限的类型和用户的id查询除用户的所有的权限")
@GetMapping("/allPermissionByType")
public ServerResponse getAllPermissionByRolesAndPermissionType(@RequestParam("pType") @NotNull Integer pType,
@RequestParam("userId") @NotNull Integer userId){
return upmsUserService.getAllPermissionByType(userId,pType);
}
}