权限控制,组织管理开发

This commit is contained in:
lsy
2018-02-21 11:42:06 +08:00
parent 03435fdc7c
commit cea2138701
26 changed files with 199 additions and 187 deletions
+2 -2
View File
@@ -146,7 +146,7 @@ CREATE TABLE upms_permission (
`description` VARCHAR(200) DEFAULT NULL
COMMENT '权限描述',
`type` TINYINT(4) DEFAULT NULL
COMMENT '类型 1.视图授权2.角色授权3.个性授权',
COMMENT '类型 1.视图授权2.数据授权',
`permission_value` VARCHAR(50) DEFAULT NULL
COMMENT '权限值',
`uri` VARCHAR(100) DEFAULT NULL
@@ -181,7 +181,7 @@ CREATE TABLE upms_system (
`basepath` VARCHAR(100) DEFAULT NULL
COMMENT '根目录',
`status` TINYINT(4) DEFAULT NULL
COMMENT '状态 -1 黑名单 1 正常',
COMMENT '状态 0 黑名单 1 正常',
`name` VARCHAR(20) DEFAULT NULL
COMMENT '系统名称',
`route` VARCHAR(20) DEFAULT NULL
@@ -2,7 +2,7 @@ import request from '@/utils/request'
import service from '@/api/config/const'
import { paramToString, like, update } from '@/utils/param'
const baseUrl = '/upmsOrganization'
const baseUrl = '/upmsRole'
/**
* 添加
* @param pojo
@@ -33,8 +33,7 @@ export function getByCondition(pojo, pageNum, pageSize, orderBy) {
const data = {}
// 拼接查询条件
if (pojo) {
pojo.name == null ? '' : data.name = like(pojo.name)
pojo.pid == null ? '' : data.pid = pojo.pid
getCondition(data, pojo, ['name', 'description'])
}
pageNum == null ? '' : data.pageNum = pageNum
pageSize == null ? '' : data.pageSize = pageSize
@@ -6,6 +6,7 @@ import com.micro.fast.upms.pojo.UpmsOrganization;
import com.micro.fast.upms.service.UpmsOrganizationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.beans.factory.annotation.Autowired;
@@ -64,4 +65,10 @@ public class UpmsOrganizationController {
public ServerResponse deleteUpmsOrganization(@NotEmpty(message = BaseConst.BASEMSG_PREFIX+"请传入ids") @RequestParam("ids") ArrayList<Integer> ids){
return upmsOrganizationService.deleteByIds(ids);
}
@ApiOperation("根据用户id查询组织")
@GetMapping("/organization/{userId}")
public ServerResponse getOrganization(@PathVariable(value = "userId") Integer userId) {
return upmsOrganizationService.getOrganizationByUserId(userId);
}
}
@@ -5,6 +5,8 @@ import com.micro.fast.boot.starter.common.response.ServerResponse;
import com.micro.fast.upms.pojo.UpmsPermission;
import com.micro.fast.upms.service.UpmsPermissionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;
@@ -14,13 +16,12 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author lsy
*/
@Api("upmsPermission")
@Api(description = "权限管理")
@RestController
@RequestMapping("/upmsPermission")
public class UpmsPermissionController {
@@ -31,6 +32,7 @@ public class UpmsPermissionController {
@ApiOperation("添加信息")
@PostMapping
public ServerResponse addUpmsPermission(@Valid UpmsPermission upmsPermission) throws BindException {
upmsPermission.setCtime(System.currentTimeMillis());
return upmsPermissionService.add(upmsPermission);
}
@@ -42,6 +44,11 @@ public class UpmsPermissionController {
}
@ApiOperation("根据条件分页查询")
@ApiImplicitParams({
@ApiImplicitParam(name = "name",value = "权限名称",dataType = "string"),
@ApiImplicitParam(name = "systemId",value = "系统id",dataType = "integer"),
@ApiImplicitParam(name = "status",value = "权限状态",dataType = "string")
})
@GetMapping
public ServerResponse getUpmsPermissionByCondition(UpmsPermission upmsPermission,
@RequestParam(defaultValue = "1",required = false) int pageNum,
@@ -63,4 +70,10 @@ public class UpmsPermissionController {
public ServerResponse deleteUpmsPermission(@NotEmpty(message = BaseConst.BASEMSG_PREFIX+"请传入ids") @RequestParam("ids") ArrayList<Integer> ids){
return upmsPermissionService.deleteByIds(ids);
}
@ApiOperation("根据用户id,权限类型,增减权限查询权限")
@GetMapping("/permission")
public ServerResponse getPermissions(@RequestParam("userId") Integer userId,@RequestParam("type") Integer type,@RequestParam("pType") Integer pType) {
return upmsPermissionService.getPermissionsByUserIdandPTypeandType(userId, type, pType);
}
}
@@ -13,14 +13,14 @@ import org.springframework.validation.BindException;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.websocket.server.PathParam;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author lsy
*/
@Api("upmsRole")
@Api(description = "角色管理")
@RestController
@RequestMapping("/upmsRole")
public class UpmsRoleController {
@@ -31,6 +31,7 @@ public class UpmsRoleController {
@ApiOperation("添加信息")
@PostMapping
public ServerResponse addUpmsRole(@Valid UpmsRole upmsRole) throws BindException {
upmsRole.setCtime(System.currentTimeMillis());
return upmsRoleService.add(upmsRole);
}
@@ -63,4 +64,11 @@ public class UpmsRoleController {
public ServerResponse deleteUpmsRole(@NotEmpty(message = BaseConst.BASEMSG_PREFIX+"请传入ids") @RequestParam("ids") ArrayList<Integer> ids){
return upmsRoleService.deleteByIds(ids);
}
@ApiOperation("根据用户id查询角色")
@GetMapping("/userId/{userId}")
public ServerResponse getRolesByUserId(@PathVariable("userId") Integer userId){
return upmsRoleService.getRolesByUserId(userId);
}
}
@@ -8,6 +8,7 @@ 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 io.swagger.models.auth.In;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.beans.factory.annotation.Autowired;
@@ -94,6 +95,4 @@ public class UpmsUserController {
@NotEmpty(message = BaseConst.BASEMSG_PREFIX + "请传入id") @RequestParam("ids") ArrayList<Integer> ids) {
return upmsUserService.deleteByIds(ids);
}
}
@@ -2,6 +2,7 @@ package com.micro.fast.upms.dao;
import com.micro.fast.common.dao.SsmMapper;
import com.micro.fast.upms.pojo.UpmsOrganization;
import feign.Param;
import java.util.List;
@@ -29,4 +30,6 @@ public interface UpmsOrganizationMapper extends SsmMapper<UpmsOrganization,Integ
@Override
int deleteByPrimaryKeys(List<Integer> integers);
List<UpmsOrganization> selectJionWithUserId(@Param("userId") Integer userId);
}
@@ -1,7 +1,11 @@
package com.micro.fast.upms.dao;
import com.micro.fast.boot.starter.common.response.ServerResponse;
import com.micro.fast.common.dao.SsmMapper;
import com.micro.fast.upms.pojo.UpmsPermission;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UpmsPermissionMapper extends SsmMapper<UpmsPermission,Integer> {
@Override
@@ -22,4 +26,11 @@ public interface UpmsPermissionMapper extends SsmMapper<UpmsPermission,Integer>
@Override
int updateByPrimaryKey(UpmsPermission record);
@Override
List<UpmsPermission> selectByCondition(UpmsPermission record);
@Override
int deleteByPrimaryKeys(List<Integer> integers);
List<UpmsPermission> selectByUserIdAndType(@Param("userId") Integer userId,@Param("pType") Integer pType,@Param("type") Integer type);
}
@@ -2,17 +2,34 @@ package com.micro.fast.upms.dao;
import com.micro.fast.common.dao.SsmMapper;
import com.micro.fast.upms.pojo.UpmsRole;
import feign.Param;
import javax.management.relation.Role;
import java.util.List;
public interface UpmsRoleMapper extends SsmMapper<UpmsRole,Integer> {
int deleteByPrimaryKey(Integer id);
@Override
int insert(UpmsRole record);
@Override
int insertSelective(UpmsRole record);
@Override
UpmsRole selectByPrimaryKey(Integer id);
@Override
int updateByPrimaryKeySelective(UpmsRole record);
@Override
int updateByPrimaryKey(UpmsRole record);
@Override
List<UpmsRole> selectByCondition(UpmsRole record);
@Override
int deleteByPrimaryKeys(List<Integer> integers);
List<Role> selectRoleJoinWithUserId(@Param("userId") Integer userId);
}
@@ -3,6 +3,8 @@ package com.micro.fast.upms.dao;
import com.micro.fast.common.dao.SsmMapper;
import com.micro.fast.upms.pojo.UpmsRolePermission;
import java.util.List;
public interface UpmsRolePermissionMapper extends SsmMapper<UpmsRolePermission,Integer> {
int deleteByPrimaryKey(Integer rolePermissionId);
@@ -15,4 +17,5 @@ public interface UpmsRolePermissionMapper extends SsmMapper<UpmsRolePermission,I
int updateByPrimaryKeySelective(UpmsRolePermission record);
int updateByPrimaryKey(UpmsRolePermission record);
}
@@ -1,8 +1,9 @@
package com.micro.fast.upms.dao;
import com.micro.fast.common.dao.SsmMapper;
import com.micro.fast.upms.pojo.UpmsOrganization;
import com.micro.fast.upms.pojo.UpmsUser;
import feign.Param;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -54,4 +55,10 @@ public interface UpmsUserMapper extends SsmMapper<UpmsUser,Integer>{
* @return
*/
int countEmail(String email);
/**
* 根据组织id还有用户的其他信息查询
* @return
*/
List<UpmsUser> selectJoinWithOrgId(UpmsUser record, @Param("orgid") Integer orgid);
}
@@ -1,22 +1,36 @@
package com.micro.fast.upms.pojo;
import com.micro.fast.boot.starter.common.response.BaseConst;
import org.hibernate.validator.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
public class UpmsPermission implements Serializable {
private Integer id;
@NotNull(message = BaseConst.BASEMSG_PREFIX+"请选择系统id")
private Integer systemId;
private Integer pid;
@NotBlank(message = BaseConst.BASEMSG_PREFIX+"请输入权限名称")
private String name;
@NotBlank(message = BaseConst.BASEMSG_PREFIX+"请输入权限名称并尽可能详尽")
private String description;
/**
* 0 表示数据权限 1 表示视图权限
*/
@NotNull(message = BaseConst.BASEMSG_PREFIX+"请选择权限类型")
private Byte type;
@NotBlank(message = BaseConst.BASEMSG_PREFIX+"请选择权限值")
private String permissionValue;
@NotBlank(message = BaseConst.BASEMSG_PREFIX+"请输入权限路径")
private String uri;
private String icon;
@@ -1,12 +1,17 @@
package com.micro.fast.upms.pojo;
import com.micro.fast.boot.starter.common.response.BaseConst;
import org.hibernate.validator.constraints.NotBlank;
import java.io.Serializable;
public class UpmsRole implements Serializable {
private Integer id;
@NotBlank(message = BaseConst.BASEMSG_PREFIX+"请填写角色名称")
private String name;
@NotBlank(message = BaseConst.BASEMSG_PREFIX+"请填写角色描述")
private String description;
private Long ctime;
@@ -1,12 +1,15 @@
package com.micro.fast.upms.pojo;
import com.micro.fast.boot.starter.common.response.BaseConst;
import lombok.Data;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.List;
@Data
public class UpmsUser implements Serializable {
private Integer id;
@@ -42,132 +45,8 @@ public class UpmsUser implements Serializable {
private Long ctime;
private List<UpmsOrganization> organizations;
private static final long serialVersionUID = 1L;
public UpmsUser(Integer id, String username, String password, String salt, String realname, String avatar, String phone, String email, Byte sex, Byte locked, Long ctime) {
this.id = id;
this.username = username;
this.password = password;
this.salt = salt;
this.realname = realname;
this.avatar = avatar;
this.phone = phone;
this.email = email;
this.sex = sex;
this.locked = locked;
this.ctime = ctime;
}
public UpmsUser() {
super();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username == null ? null : username.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public String getSalt() {
return salt;
}
public void setSalt(String salt) {
this.salt = salt == null ? null : salt.trim();
}
public String getRealname() {
return realname;
}
public void setRealname(String realname) {
this.realname = realname == null ? null : realname.trim();
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar == null ? null : avatar.trim();
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone == null ? null : phone.trim();
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email == null ? null : email.trim();
}
public Byte getSex() {
return sex;
}
public void setSex(Byte sex) {
this.sex = sex;
}
public Byte getLocked() {
return locked;
}
public void setLocked(Byte locked) {
this.locked = locked;
}
public Long getCtime() {
return ctime;
}
public void setCtime(Long ctime) {
this.ctime = ctime;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", username=").append(username);
sb.append(", password=").append(password);
sb.append(", salt=").append(salt);
sb.append(", realname=").append(realname);
sb.append(", avatar=").append(avatar);
sb.append(", phone=").append(phone);
sb.append(", email=").append(email);
sb.append(", sex=").append(sex);
sb.append(", locked=").append(locked);
sb.append(", ctime=").append(ctime);
sb.append("]");
return sb.toString();
}
}
@@ -1,60 +1,22 @@
package com.micro.fast.upms.pojo;
import com.micro.fast.boot.starter.common.response.BaseConst;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class UpmsUserOrganization implements Serializable {
private Integer userOrganizationId;
@NotNull(message = BaseConst.BASEMSG_PREFIX + "请输入用户的id")
private Integer userId;
@NotNull(message = BaseConst.BASEMSG_PREFIX + "请输入组织的id")
private Integer organizationId;
private static final long serialVersionUID = 1L;
public UpmsUserOrganization(Integer userOrganizationId, Integer userId, Integer organizationId) {
this.userOrganizationId = userOrganizationId;
this.userId = userId;
this.organizationId = organizationId;
}
public UpmsUserOrganization() {
super();
}
public Integer getUserOrganizationId() {
return userOrganizationId;
}
public void setUserOrganizationId(Integer userOrganizationId) {
this.userOrganizationId = userOrganizationId;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getOrganizationId() {
return organizationId;
}
public void setOrganizationId(Integer organizationId) {
this.organizationId = organizationId;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", userOrganizationId=").append(userOrganizationId);
sb.append(", userId=").append(userId);
sb.append(", organizationId=").append(organizationId);
sb.append("]");
return sb.toString();
}
}
@@ -1,10 +1,11 @@
package com.micro.fast.upms.service;
import com.micro.fast.boot.starter.common.response.ServerResponse;
import com.micro.fast.common.service.SsmService;
/**
* @author lsy
*/
public interface UpmsOrganizationService<T,ID> extends SsmService<T,ID>{
ServerResponse getOrganizationByUserId(Integer userId);
}
@@ -1,10 +1,11 @@
package com.micro.fast.upms.service;
import com.micro.fast.boot.starter.common.response.ServerResponse;
import com.micro.fast.common.service.SsmService;
/**
* @author lsy
*/
public interface UpmsPermissionService<T,ID> extends SsmService<T,ID>{
ServerResponse getPermissionsByUserIdandPTypeandType(Integer userId,Integer type,Integer pType);
}
@@ -1,10 +1,11 @@
package com.micro.fast.upms.service;
import com.micro.fast.boot.starter.common.response.ServerResponse;
import com.micro.fast.common.service.SsmService;
/**
* @author lsy
*/
public interface UpmsRoleService<T,ID> extends SsmService<T,ID>{
ServerResponse getRolesByUserId(Integer useId);
}
@@ -5,6 +5,7 @@ import com.micro.fast.common.service.impl.SsmServiceImpl;
import com.micro.fast.upms.dao.UpmsOrganizationMapper;
import com.micro.fast.upms.pojo.UpmsOrganization;
import com.micro.fast.upms.service.UpmsOrganizationService;
import org.apache.http.protocol.ResponseServer;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -99,4 +100,10 @@ implements UpmsOrganizationService<UpmsOrganization,Integer>,InitializingBean {
public void afterPropertiesSet() throws Exception {
super.setMapper(this.mapper);
}
@Override
public ServerResponse getOrganizationByUserId(Integer userId) {
List<UpmsOrganization> upmsOrganizations = mapper.selectJionWithUserId(userId);
return ServerResponse.successMsgData("根据用户查询组织成功",upmsOrganizations);
}
}
@@ -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.UpmsPermissionMapper;
import com.micro.fast.upms.pojo.UpmsPermission;
@@ -8,6 +9,8 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author lsy
*/
@@ -25,4 +28,10 @@ implements UpmsPermissionService<UpmsPermission,Integer>,InitializingBean {
public void afterPropertiesSet() throws Exception {
super.setMapper(this.mapper);
}
@Override
public ServerResponse getPermissionsByUserIdandPTypeandType(Integer userId, Integer type, Integer pType) {
List<UpmsPermission> upmsPermissions = mapper.selectByUserIdAndType(userId, pType, type);
return ServerResponse.successMsgData("查询权限成功",upmsPermissions);
}
}
@@ -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.UpmsRoleMapper;
import com.micro.fast.upms.pojo.UpmsRole;
@@ -8,6 +9,9 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.management.relation.Role;
import java.util.List;
/**
* @author lsy
*/
@@ -25,4 +29,10 @@ implements UpmsRoleService<UpmsRole,Integer>,InitializingBean {
public void afterPropertiesSet() throws Exception {
super.setMapper(this.mapper);
}
@Override
public ServerResponse getRolesByUserId(Integer useId) {
List<Role> roles = mapper.selectRoleJoinWithUserId(useId);
return ServerResponse.successMsgData("根据用户id查询角色成功",roles);
}
}
@@ -117,4 +117,9 @@
#{item}
</foreach>
</delete>
<!--根据userId查询组织-->
<select id="selectJionWithUserId" resultType="com.micro.fast.upms.pojo.UpmsOrganization">
select <include refid="Base_Column_List"/> FROM upms_user_organization WHERE id IN
(SELECT user_organization_id WHERE use_id = #{userId})
</select>
</mapper>
@@ -92,4 +92,28 @@
orders = #{orders,jdbcType=BIGINT}
where id = #{id,jdbcType=INTEGER}
</update>
<!--自定义-->
<select id="selectByCondition" resultType="com.micro.fast.upms.pojo.UpmsRole">
SELECT <include refid="Base_Column_List"/> FROM upms_role
<where>
<if test="name != null">
and NAME like #{name}
</if>
<if test="description != null">
and description like #{description}
</if>
</where>
</select>
<delete id="deleteByPrimaryKeys">
DELETE FROM upms_role WHERE
id IN <foreach collection="list" separator="," open="(" item="item" close=")">
#{item}
</foreach>
</delete>
<select id="selectRoleJoinWithUserId" resultType="javax.management.relation.Role">
SELECT <include refid="Base_Column_List"/> FROM upms_role WHERE
id IN (SELECT upms_user_role.user_role_id WHERE user_id = #{userId})
</select>
</mapper>
@@ -70,4 +70,6 @@
permission_id = #{permissionId,jdbcType=INTEGER}
where role_permission_id = #{rolePermissionId,jdbcType=INTEGER}
</update>
</mapper>
@@ -197,6 +197,30 @@
</if>
</where>
</select>
<select id="selectJoinWithOrgId" resultType="com.micro.fast.upms.pojo.UpmsUser">
SELECT <include refid="Base_Column_List"/> FROM upms_user
<where>
<if test="orgid != null">
and id IN (SELECT user_id FROM upms_user_organization WHERE organization_id = #{orgid})
</if>
<if test="username != null">
and username like "%"#{username}"%"
</if>
<if test="realname != null">
and realname like "%"#{realname}"%"
</if>
<if test="phone != null">
and phone like "%"#{phone}"%"
</if>
<if test="email != null">
and email like "%"#{email}"%"
</if>
<if test="sex != null">
and sex = #{sex}
</if>
</where>
</select>
<delete id="deleteByPrimaryKeys" parameterType="java.util.List">
delete from upms_user
where id IN
@@ -70,4 +70,5 @@
role_id = #{roleId,jdbcType=INTEGER}
where user_role_id = #{userRoleId,jdbcType=INTEGER}
</update>
</mapper>