This commit is contained in:
MaxKey
2023-08-19 19:01:24 +08:00
parent 6d11ee4e9c
commit b57707aaa4
111 changed files with 1920 additions and 1417 deletions

View File

@@ -22,6 +22,8 @@ package org.dromara.maxkey.persistence.mapper;
import java.util.List;
import org.dromara.maxkey.entity.GroupMember;
import org.dromara.maxkey.entity.Groups;
import org.dromara.maxkey.entity.RoleMember;
import org.dromara.maxkey.entity.Roles;
import org.dromara.maxkey.entity.UserInfo;
@@ -32,20 +34,20 @@ import org.dromara.mybatis.jpa.IJpaMapper;
*
*/
public interface RoleMemberMapper extends IJpaMapper<RoleMember> {
public interface GroupMemberMapper extends IJpaMapper<GroupMember> {
public List<RoleMember> memberInRole(RoleMember entity);
public List<RoleMember> memberNotInRole(RoleMember entity);
public List<GroupMember> memberIn(GroupMember entity);
public List<GroupMember> memberNotIn(GroupMember entity);
public List<Roles> rolesNoMember(RoleMember entity);
public List<Groups> noMember(GroupMember entity);
public int addDynamicRoleMember(Roles dynamicRole);
public int addDynamicMember(Groups dynamicRole);
public int deleteDynamicRoleMember(Roles dynamicRole);
public int deleteDynamicMember(Groups dynamicRole);
public int deleteByRoleId(String roleId);
public int deleteByGroupId(String groupId);
public List<UserInfo> queryMemberByRoleId(String roleId);
public List<UserInfo> queryMemberByGroupId(String groupId);

View File

@@ -22,7 +22,7 @@ package org.dromara.maxkey.persistence.mapper;
import java.util.List;
import org.dromara.maxkey.entity.RolePermissions;
import org.dromara.maxkey.entity.GroupPermissions;
import org.dromara.mybatis.jpa.IJpaMapper;
/**
@@ -30,12 +30,12 @@ import org.dromara.mybatis.jpa.IJpaMapper;
*
*/
public interface RolePermissionsMapper extends IJpaMapper<RolePermissions> {
public interface GroupPermissionsMapper extends IJpaMapper<GroupPermissions> {
public List<RolePermissions>appsInRole(RolePermissions entity);
public List<GroupPermissions>appsInGroup(GroupPermissions entity);
public List<RolePermissions> appsNotInRole(RolePermissions entity);
public List<GroupPermissions> appsNotInGroup(GroupPermissions entity);
}

View File

@@ -22,7 +22,7 @@ package org.dromara.maxkey.persistence.mapper;
import java.util.List;
import org.dromara.maxkey.entity.RolePrivileges;
import org.dromara.maxkey.entity.GroupPrivileges;
import org.dromara.mybatis.jpa.IJpaMapper;
/**
@@ -30,12 +30,12 @@ import org.dromara.mybatis.jpa.IJpaMapper;
*
*/
public interface RolePrivilegesMapper extends IJpaMapper<RolePrivileges> {
public interface GroupPrivilegesMapper extends IJpaMapper<GroupPrivileges> {
public int insertRolePrivileges(List<RolePrivileges> rolePermissionsList);
public int insertGroupPrivileges(List<GroupPrivileges> groupPrivilegesList);
public int deleteRolePrivileges(List<RolePrivileges> rolePermissionsList);
public int deleteGroupPrivileges(List<GroupPrivileges> groupPrivilegesList);
public List<RolePrivileges> queryRolePrivileges(RolePrivileges rolePermissions);
public List<GroupPrivileges> queryGroupPrivileges(GroupPrivileges groupPrivileges);
}

View File

@@ -22,7 +22,7 @@ package org.dromara.maxkey.persistence.mapper;
import java.util.List;
import org.dromara.maxkey.entity.Roles;
import org.dromara.maxkey.entity.Groups;
import org.dromara.mybatis.jpa.IJpaMapper;
/**
@@ -30,9 +30,9 @@ import org.dromara.mybatis.jpa.IJpaMapper;
*
*/
public interface RolesMapper extends IJpaMapper<Roles> {
public interface GroupsMapper extends IJpaMapper<Groups> {
public List<Roles> queryDynamicRoles(Roles groups);
public List<Groups> queryDynamic(Groups groups);
public List<Roles> queryRolesByUserId(String userId);
public List<Groups> queryByUserId(String userId);
}

View File

@@ -19,10 +19,10 @@ package org.dromara.maxkey.persistence.service;
import java.util.List;
import org.dromara.maxkey.entity.RoleMember;
import org.dromara.maxkey.entity.Roles;
import org.dromara.maxkey.entity.GroupMember;
import org.dromara.maxkey.entity.Groups;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.persistence.mapper.RoleMemberMapper;
import org.dromara.maxkey.persistence.mapper.GroupMemberMapper;
import org.dromara.mybatis.jpa.JpaService;
import org.dromara.mybatis.jpa.entity.JpaPageResults;
import org.slf4j.Logger;
@@ -30,46 +30,46 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;
@Repository
public class RoleMemberService extends JpaService<RoleMember>{
final static Logger _logger = LoggerFactory.getLogger(RoleMemberService.class);
public class GroupMemberService extends JpaService<GroupMember>{
final static Logger _logger = LoggerFactory.getLogger(GroupMemberService.class);
public RoleMemberService() {
super(RoleMemberMapper.class);
public GroupMemberService() {
super(GroupMemberMapper.class);
}
/* (non-Javadoc)
* @see com.connsec.db.service.BaseService#getMapper()
*/
@Override
public RoleMemberMapper getMapper() {
return (RoleMemberMapper)super.getMapper();
public GroupMemberMapper getMapper() {
return (GroupMemberMapper)super.getMapper();
}
public int addDynamicRoleMember(Roles dynamicGroup) {
return getMapper().addDynamicRoleMember(dynamicGroup);
public int addDynamicMember(Groups dynamicGroup) {
return getMapper().addDynamicMember(dynamicGroup);
}
public int deleteDynamicRoleMember(Roles dynamicGroup) {
return getMapper().deleteDynamicRoleMember(dynamicGroup);
public int deleteDynamicMember(Groups dynamicGroup) {
return getMapper().deleteDynamicMember(dynamicGroup);
}
public int deleteByRoleId(String groupId) {
return getMapper().deleteByRoleId(groupId);
public int deleteByGroupId(String groupId) {
return getMapper().deleteByGroupId(groupId);
}
public List<UserInfo> queryMemberByRoleId(String groupId){
return getMapper().queryMemberByRoleId(groupId);
public List<UserInfo> queryMemberByGroupId(String groupId){
return getMapper().queryMemberByGroupId(groupId);
}
public JpaPageResults<Roles> rolesNoMember(RoleMember entity) {
public JpaPageResults<Groups> noMember(GroupMember entity) {
entity.setPageResultSelectUUID(entity.generateId());
entity.setStartRow(calculateStartRow(entity.getPageNumber() ,entity.getPageSize()));
entity.setPageable(true);
List<Roles> resultslist = null;
List<Groups> resultslist = null;
try {
resultslist = getMapper().rolesNoMember(entity);
resultslist = getMapper().noMember(entity);
} catch (Exception e) {
_logger.error("queryPageResults Exception " , e);
}
@@ -83,7 +83,7 @@ public class RoleMemberService extends JpaService<RoleMember>{
totalCount = parseCount(getMapper().fetchPageResults(entity));
}
return new JpaPageResults<Roles>(entity.getPageNumber(),entity.getPageSize(),totalPage,totalCount,resultslist);
return new JpaPageResults<Groups>(entity.getPageNumber(),entity.getPageSize(),totalPage,totalCount,resultslist);
}
}

View File

@@ -17,16 +17,16 @@
package org.dromara.maxkey.persistence.service;
import org.dromara.maxkey.entity.RolePermissions;
import org.dromara.maxkey.persistence.mapper.RolePermissionsMapper;
import org.dromara.maxkey.entity.GroupPermissions;
import org.dromara.maxkey.persistence.mapper.GroupPermissionsMapper;
import org.dromara.mybatis.jpa.JpaService;
import org.springframework.stereotype.Repository;
@Repository
public class RolePermissionssService extends JpaService<RolePermissions>{
public class GroupPermissionssService extends JpaService<GroupPermissions>{
public RolePermissionssService() {
super(RolePermissionsMapper.class);
public GroupPermissionssService() {
super(GroupPermissionsMapper.class);
}
@@ -35,8 +35,8 @@ public class RolePermissionssService extends JpaService<RolePermissions>{
* @see com.connsec.db.service.BaseService#getMapper()
*/
@Override
public RolePermissionsMapper getMapper() {
return (RolePermissionsMapper)super.getMapper();
public GroupPermissionsMapper getMapper() {
return (GroupPermissionsMapper)super.getMapper();
}
}

View File

@@ -19,40 +19,40 @@ package org.dromara.maxkey.persistence.service;
import java.util.List;
import org.dromara.maxkey.entity.RolePrivileges;
import org.dromara.maxkey.persistence.mapper.RolePrivilegesMapper;
import org.dromara.maxkey.entity.GroupPrivileges;
import org.dromara.maxkey.persistence.mapper.GroupPrivilegesMapper;
import org.dromara.mybatis.jpa.JpaService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;
@Repository
public class RolePrivilegesService extends JpaService<RolePrivileges>{
final static Logger _logger = LoggerFactory.getLogger(RolePrivilegesService.class);
public class GroupPrivilegesService extends JpaService<GroupPrivileges>{
final static Logger _logger = LoggerFactory.getLogger(GroupPrivilegesService.class);
public RolePrivilegesService() {
super(RolePrivilegesMapper.class);
public GroupPrivilegesService() {
super(GroupPrivilegesMapper.class);
}
/* (non-Javadoc)
* @see com.connsec.db.service.BaseService#getMapper()
*/
@Override
public RolePrivilegesMapper getMapper() {
return (RolePrivilegesMapper)super.getMapper();
public GroupPrivilegesMapper getMapper() {
return (GroupPrivilegesMapper)super.getMapper();
}
public boolean insertRolePrivileges(List<RolePrivileges> rolePermissionsList) {
return getMapper().insertRolePrivileges(rolePermissionsList)>0;
public boolean insertGroupPrivileges(List<GroupPrivileges> rolePermissionsList) {
return getMapper().insertGroupPrivileges(rolePermissionsList)>0;
};
public boolean deleteRolePrivileges(List<RolePrivileges> rolePermissionsList) {
return getMapper().deleteRolePrivileges(rolePermissionsList)>=0;
public boolean deleteGroupPrivileges(List<GroupPrivileges> rolePermissionsList) {
return getMapper().deleteGroupPrivileges(rolePermissionsList)>=0;
}
public List<RolePrivileges> queryRolePrivileges(RolePrivileges rolePermissions){
return getMapper().queryRolePrivileges(rolePermissions);
public List<GroupPrivileges> queryGroupPrivileges(GroupPrivileges rolePermissions){
return getMapper().queryGroupPrivileges(rolePermissions);
}
}

View File

@@ -24,9 +24,10 @@ import java.time.LocalTime;
import java.util.List;
import org.dromara.maxkey.constants.ConstsStatus;
import org.dromara.maxkey.entity.Groups;
import org.dromara.maxkey.entity.Institutions;
import org.dromara.maxkey.entity.Roles;
import org.dromara.maxkey.persistence.mapper.RolesMapper;
import org.dromara.maxkey.persistence.mapper.GroupsMapper;
import org.dromara.maxkey.util.StringUtils;
import org.dromara.mybatis.jpa.JpaService;
import org.slf4j.Logger;
@@ -37,57 +38,57 @@ import org.springframework.stereotype.Repository;
import com.fasterxml.jackson.annotation.JsonIgnore;
@Repository
public class RolesService extends JpaService<Roles> implements Serializable {
public class GroupsService extends JpaService<Groups> implements Serializable {
/**
*
*/
private static final long serialVersionUID = -4156671926199393550L;
final static Logger _logger = LoggerFactory.getLogger(RolesService.class);
final static Logger _logger = LoggerFactory.getLogger(GroupsService.class);
@JsonIgnore
@Autowired
RoleMemberService roleMemberService;
GroupMemberService service;
@Autowired
InstitutionsService institutionsService;
public RolesService() {
super(RolesMapper.class);
public GroupsService() {
super(GroupsMapper.class);
}
/* (non-Javadoc)
* @see com.connsec.db.service.BaseService#getMapper()
*/
@Override
public RolesMapper getMapper() {
return (RolesMapper)super.getMapper();
public GroupsMapper getMapper() {
return (GroupsMapper)super.getMapper();
}
public List<Roles> queryDynamicRoles(Roles groups){
return this.getMapper().queryDynamicRoles(groups);
public List<Groups> queryDynamicRoles(Groups groups){
return this.getMapper().queryDynamic(groups);
}
public boolean deleteById(String groupId) {
this.remove(groupId);
roleMemberService.deleteByRoleId(groupId);
service.deleteByGroupId(groupId);
return true;
}
public List<Roles> queryRolesByUserId(String userId){
return this.getMapper().queryRolesByUserId(userId);
public List<Groups> queryByUserId(String userId){
return this.getMapper().queryByUserId(userId);
}
public void refreshDynamicRoles(Roles dynamicRole){
if(dynamicRole.getCategory().equals(Roles.Category.DYNAMIC)) {
public void refreshDynamicRoles(Groups dynamicGroup){
if(dynamicGroup.getCategory().equals(Roles.Category.DYNAMIC)) {
boolean isDynamicTimeSupport = false;
boolean isBetweenEffectiveTime = false;
if(StringUtils.isNotBlank(dynamicRole.getResumeTime())
&&StringUtils.isNotBlank(dynamicRole.getSuspendTime())
&&!dynamicRole.getSuspendTime().equals("00:00")) {
if(StringUtils.isNotBlank(dynamicGroup.getResumeTime())
&&StringUtils.isNotBlank(dynamicGroup.getSuspendTime())
&&!dynamicGroup.getSuspendTime().equals("00:00")) {
LocalTime currentTime = LocalDateTime.now().toLocalTime();
LocalTime resumeTime = LocalTime.parse(dynamicRole.getResumeTime());
LocalTime suspendTime = LocalTime.parse(dynamicRole.getSuspendTime());
LocalTime resumeTime = LocalTime.parse(dynamicGroup.getResumeTime());
LocalTime suspendTime = LocalTime.parse(dynamicGroup.getSuspendTime());
_logger.info("currentTime: " + currentTime
+ " , resumeTime : " + resumeTime
@@ -100,8 +101,8 @@ public class RolesService extends JpaService<Roles> implements Serializable {
}
if(StringUtils.isNotBlank(dynamicRole.getOrgIdsList())) {
String []orgIds = dynamicRole.getOrgIdsList().split(",");
if(StringUtils.isNotBlank(dynamicGroup.getOrgIdsList())) {
String []orgIds = dynamicGroup.getOrgIdsList().split(",");
StringBuffer orgIdFilters = new StringBuffer();
for(String orgId : orgIds) {
if(StringUtils.isNotBlank(orgId)) {
@@ -112,11 +113,11 @@ public class RolesService extends JpaService<Roles> implements Serializable {
}
}
if(orgIdFilters.length() > 0) {
dynamicRole.setOrgIdsList(orgIdFilters.toString());
dynamicGroup.setOrgIdsList(orgIdFilters.toString());
}
}
String filters = dynamicRole.getFilters();
String filters = dynamicGroup.getFilters();
if(StringUtils.isNotBlank(filters)) {
if(StringUtils.filtersSQLInjection(filters.toLowerCase())) {
_logger.info("filters include SQL Injection Attack Risk.");
@@ -125,19 +126,19 @@ public class RolesService extends JpaService<Roles> implements Serializable {
filters = filters.replace("&", " AND ");
filters = filters.replace("|", " OR ");
dynamicRole.setFilters(filters);
dynamicGroup.setFilters(filters);
}
if(isDynamicTimeSupport) {
if(isBetweenEffectiveTime) {
roleMemberService.deleteDynamicRoleMember(dynamicRole);
roleMemberService.addDynamicRoleMember(dynamicRole);
service.deleteDynamicMember(dynamicGroup);
service.addDynamicMember(dynamicGroup);
}else {
roleMemberService.deleteDynamicRoleMember(dynamicRole);
service.deleteDynamicMember(dynamicGroup);
}
}else{
roleMemberService.deleteDynamicRoleMember(dynamicRole);
roleMemberService.addDynamicRoleMember(dynamicRole);
service.deleteDynamicMember(dynamicGroup);
service.addDynamicMember(dynamicGroup);
}
}
}
@@ -146,12 +147,12 @@ public class RolesService extends JpaService<Roles> implements Serializable {
List<Institutions> instList =
institutionsService.find("where status = ? ", new Object[]{ConstsStatus.ACTIVE}, new int[]{Types.INTEGER});
for(Institutions inst : instList) {
Roles role = new Roles();
role.setInstId(inst.getId());
List<Roles> rolesList = queryDynamicRoles(role);
for(Roles r : rolesList) {
_logger.debug("role " + rolesList);
refreshDynamicRoles(r);
Groups group = new Groups();
group.setInstId(inst.getId());
List<Groups> groupsList = queryDynamicRoles(group);
for(Groups g : groupsList) {
_logger.debug("role {}" , g);
refreshDynamicRoles(g);
}
}
}

View File

@@ -23,8 +23,8 @@ import org.dromara.maxkey.entity.HistorySystemLogs;
import org.dromara.maxkey.entity.Organizations;
import org.dromara.maxkey.entity.Resources;
import org.dromara.maxkey.entity.RoleMember;
import org.dromara.maxkey.entity.RolePermissions;
import org.dromara.maxkey.entity.RolePrivileges;
import org.dromara.maxkey.entity.GroupPermissions;
import org.dromara.maxkey.entity.GroupPrivileges;
import org.dromara.maxkey.entity.Roles;
import org.dromara.maxkey.entity.SocialsProvider;
import org.dromara.maxkey.entity.Synchronizers;
@@ -68,16 +68,16 @@ public class HistorySystemLogsService extends JpaService<HistorySystemLogs>{
message = buildMsg((Roles)entity);
}else if(entity instanceof RoleMember) {
message = buildMsg((RoleMember)entity);
}else if(entity instanceof RolePermissions) {
message = buildMsg((RolePermissions)entity);
}else if(entity instanceof GroupPermissions) {
message = buildMsg((GroupPermissions)entity);
}else if(entity instanceof Resources) {
message = buildMsg((Resources)entity);
}else if(entity instanceof Synchronizers) {
message = buildMsg((Synchronizers)entity);
}else if(entity instanceof SocialsProvider) {
message = buildMsg((SocialsProvider)entity);
}else if(entity instanceof RolePrivileges) {
message = buildMsg((RolePrivileges)entity);
}else if(entity instanceof GroupPrivileges) {
message = buildMsg((GroupPrivileges)entity);
}else if(entity instanceof String) {
message = entity.toString();
}
@@ -157,18 +157,18 @@ public class HistorySystemLogsService extends JpaService<HistorySystemLogs>{
.toString();
}
public String buildMsg(RolePermissions permission) {
public String buildMsg(GroupPermissions permission) {
return new StringBuilder()
.append(permission.getRoleName())
.append(permission.getGroupName())
.append("[")
.append(permission.getAppName())
.append("]")
.toString();
}
public String buildMsg(RolePrivileges privilege) {
public String buildMsg(GroupPrivileges privilege) {
return new StringBuilder()
.append(privilege.getRoleId())
.append(privilege.getGroupId())
.append("[")
.append(privilege.getResourceId())
.append("]")

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.maxkey.persistence.mapper.RoleMemberMapper">
<mapper namespace="org.dromara.maxkey.persistence.mapper.GroupMemberMapper">
<sql id="where_statement">
<if test="id != null and id != ''">
@@ -11,12 +11,12 @@
</if>
</sql>
<select id="memberInRole" parameterType="RoleMember" resultType="RoleMember">
<select id="memberIn" parameterType="GroupMember" resultType="GroupMember">
select distinct
rm.id as id,
r.id as roleid,
r.rolename,
r.category category,
gm.id as id,
g.id as groupid,
g.groupname,
g.category category,
u.username,
u.usertype,
u.windowsaccount,
@@ -46,22 +46,22 @@
u.jobtitle,
u.joblevel,
rm.createddate,
gm.createddate,
u.status
from
mxk_userinfo u,
mxk_roles r,
mxk_role_member rm
mxk_groups g,
mxk_group_member gm
where u.instid = #{instId}
and r.instid = #{instId}
and rm.instid = #{instId}
<if test="roleId != null and roleId != ''">
and rm.roleid = #{roleId}
and r.id = #{roleId}
and g.instid = #{instId}
and gm.instid = #{instId}
<if test="groupId != null and groupId != ''">
and gm.groupid = #{groupId}
and g.id = #{groupId}
</if>
<if test="roleName != null and roleName != ''">
and r.rolename = #{roleName}
<if test="groupName != null and groupName != ''">
and g.groupname = #{groupName}
</if>
<if test="username != null and username != ''">
and u.username = #{username}
@@ -69,13 +69,13 @@
<if test="displayName != null and displayName != ''">
and u.displayname like '%${displayName}%'
</if>
and rm.type in( 'USER','USER-DYNAMIC')
and rm.roleid = r.id
and rm.memberid = u.id
and gm.type in( 'USER','USER-DYNAMIC')
and gm.groupid = g.id
and gm.memberid = u.id
</select>
<select id="memberNotInRole" parameterType="RoleMember" resultType="RoleMember">
<select id="memberNotIn" parameterType="GroupMember" resultType="GroupMember">
select distinct
u.id,
u.username,
@@ -119,17 +119,17 @@
where
u.id not in(
select rm.memberid
from mxk_roles r,mxk_role_member rm
from mxk_groups g,mxk_group_member gm
where 1 = 1
<if test="roleId != null and roleId != ''">
and rm.roleid = #{roleId}
and r.id = #{roleId}
<if test="groupId != null and groupId != ''">
and gm.groupid = #{groupId}
and g.id = #{groupId}
</if>
<if test="roleName != null and roleName != ''">
and r.rolename = #{roleName}
<if test="groupName != null and groupName != ''">
and g.groupname = #{groupName}
</if>
and rm.type in( 'USER','USER-DYNAMIC')
and rm.roleid = r.id
and gm.type in( 'USER','USER-DYNAMIC')
and gm.groupid = g.id
)
<if test="username != null and username != ''">
and u.username = #{username}
@@ -139,71 +139,71 @@
</if>
</select>
<select id="rolesNoMember" parameterType="RoleMember" resultType="Roles">
<select id="noMember" parameterType="GroupMember" resultType="Groups">
select distinct
r.*
g.*
from
mxk_roles r
mxk_groups g
where
r.id not in(
g.id not in(
select
rm.roleid
from mxk_role_member rm,mxk_userinfo u
where rm.memberid = u.id
gm.groupid
from mxk_group_member gm,mxk_userinfo u
where gm.memberid = u.id
<if test="username != null and username != ''">
and u.username = #{username}
</if>
<if test="memberId != null and memberId != ''">
and rm.memberid = #{memberid}
and gm.memberid = #{memberid}
</if>
)
<if test="roleName != null and roleName != ''">
and r.rolename = #{roleName}
<if test="groupName != null and groupName != ''">
and g.groupname = #{groupName}
</if>
</select>
<!-- ROLE_MEMBER ROLE Member-->
<select id="roleMemberInRole" parameterType="RoleMember" resultType="Roles">
<select id="groupMemberInGroup" parameterType="GroupMember" resultType="Groups">
select distinct
ig.*
from
mxk_roles ir,
mxk_roles r,
mxk_role_member rm
mxk_groups ig,
mxk_groups g,
mxk_group_member gm
where
1 = 1
and rm.roleid = g.id
and rm.memberid = ig.id
and rm.type = 'ROLE'
<if test="roleId != null and roleId != ''">
and rm.roleid = #{roleId}
and r.id = #{roleId}
and gm.groupid = g.id
and gm.memberid = ig.id
and gm.type = 'ROLE'
<if test="groupId != null and groupId != ''">
and gm.groupid = #{groupId}
and g.id = #{groupId}
</if>
<if test="roleName != null and roleName != ''">
and r.rolename = #{roleName}
<if test="groupName != null and groupName != ''">
and g.groupname = #{groupName}
</if>
</select>
<update id="addDynamicRoleMember" parameterType="Roles" >
insert into mxk_role_member(
<update id="addDynamicGroupMember" parameterType="Groups" >
insert into mxk_group_member(
id,
roleid,
groupid,
memberid,
type,
instid
)
select
concat('${id}_',u.id) id,
'${id}' roleid,
'${id}' groupid,
u.id memberid,
'USER-DYNAMIC' type,
'${instId}' instid
from mxk_userinfo u
where not exists(
select 1 from mxk_role_member rm
where rm.roleid=#{id}
and rm.memberid=u.id
and rm.type='USER-DYNAMIC'
select 1 from mxk_group_member gm
where gm.groupid=#{id}
and gm.memberid=u.id
and gm.type='USER-DYNAMIC'
)
<if test="filters != null and filters != ''">
and (${filters})
@@ -213,15 +213,15 @@
</if>
</update>
<delete id="deleteDynamicRoleMember" parameterType="Roles" >
delete from mxk_role_member rm
<delete id="deleteDynamicGroupMember" parameterType="Groups" >
delete from mxk_group_member gm
where type = 'user-dynamic'
and rm.roleid=#{id}
and gm.groupid=#{id}
and not exists(
select 1
from mxk_userinfo u
where 1 = 1
and u.id=rm.memberid
and u.id=gm.memberid
<if test="filters != null and filters != ''">
and (${filters})
</if>
@@ -231,10 +231,10 @@
)
</delete>
<select id="queryMemberByRoleId" parameterType="string" resultType="UserInfo">
<select id="queryMemberByGroupId" parameterType="string" resultType="UserInfo">
select distinct
r.roleId,
r.roleName,
g.groupId,
g.groupName,
u.id,
u.username,
u.usertype,
@@ -264,24 +264,24 @@
u.department,
u.jobtitle,
u.joblevel,
rm.createddate,
gm.createddate,
u.status
from
mxk_userinfo u,
mxk_roles r,
mxk_role_member rm
mxk_groups g,
mxk_group_member gm
where 1 = 1
and rm.roleid = #{value}
and gm.groupid = #{value}
and g.id = #{value}
and rm.type in( 'USER','USER-DYNAMIC')
and rm.roleid = r.id
and rm.memberid = u.id
and gm.type in( 'USER','USER-DYNAMIC')
and gm.groupid = g.id
and gm.memberid = u.id
</select>
<delete id="deleteByRoleId" parameterType="string" >
delete from mxk_role_member rm
where rm.roleid = #{value} and roleId != 'ROLE_ALL_USER'
<delete id="deleteByGroupId" parameterType="string" >
delete from mxk_group_member gm
where gm.groupid = #{value} and groupId != 'ROLE_ALL_USER'
</delete>
</mapper>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.maxkey.persistence.mapper.RolePermissionsMapper" >
<mapper namespace="org.dromara.maxkey.persistence.mapper.GroupPermissionsMapper" >
<sql id="where_statement">
<if test="id != null and id != ''">
@@ -18,11 +18,11 @@
</sql>
<!-- AppGroup -->
<select id="appsInRole" parameterType="RolePermissions" resultType="RolePermissions">
<select id="appsInGroup" parameterType="GroupPermissions" resultType="GroupPermissions">
select
p.id,
p.roleid,
r.rolename,
p.groupid,
r.groupname,
apps.id appid,
apps.appname,
apps.icon,
@@ -34,22 +34,22 @@
apps.vendorurl
from
mxk_apps apps,
mxk_role_permissions p,
mxk_roles r
mxk_group_permissions p,
mxk_groups r
where
apps.instid = #{instId}
and p.instid = #{instId}
and r.instid = #{instId}
and p.appid = apps.id
and p.roleid = r.id
<if test="roleId != null and roleId != ''">
and p.roleid = #{roleId}
and r.id = #{roleId}
and p.groupid = r.id
<if test="groupId != null and groupId != ''">
and p.groupid = #{groupId}
and r.id = #{groupId}
</if>
<include refid="where_statement"/>
</select>
<select id="appsNotInRole" parameterType="RolePermissions" resultType="RolePermissions">
<select id="appsNotInGroup" parameterType="GroupPermissions" resultType="GroupPermissions">
select
*
from
@@ -60,9 +60,9 @@
select
appid
from
mxk_role_permissions
mxk_group_permissions
where
roleid = #{roleId}
groupid = #{groupId}
)
<include refid="where_statement"/>
</select>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.maxkey.persistence.mapper.RolePrivilegesMapper">
<mapper namespace="org.dromara.maxkey.persistence.mapper.GroupPrivilegesMapper">
<sql id="where_statement">
<if test="id != null and id != ''">
@@ -11,18 +11,18 @@
</if>
</sql>
<select id="queryRolePrivileges" parameterType="RolePrivileges" resultType="RolePrivileges">
<select id="queryGroupPrivileges" parameterType="GroupPrivileges" resultType="GroupPrivileges">
select
*
from
mxk_role_privileges
mxk_group_privileges
where instid = #{instId}
and status = 1
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="roleId != null and roleId != ''">
and roleid = #{roleId}
<if test="groupId != null and groupId != ''">
and groupid = #{groupId}
</if>
<if test="appId != null and appId != ''">
and appid = #{appId}
@@ -30,8 +30,8 @@
</select>
<update id="deleteRolePrivileges" parameterType="java.util.List">
update mxk_role_privileges
<update id="deleteGroupPrivileges" parameterType="java.util.List">
update mxk_group_privileges
set status = 9
where 1 = 1 and
<foreach item="item" collection="list" open="(" separator="or" close=")">
@@ -39,11 +39,11 @@
</foreach>
</update>
<insert id="insertRolePrivileges" parameterType="java.util.List">
insert into mxk_role_privileges ( id,appid,roleid,resourceid,status,instid)
<insert id="insertGroupPrivileges" parameterType="java.util.List">
insert into mxk_role_privileges ( id,appid,groupid,resourceid,status,instid)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id},#{item.appId},#{item.roleId},#{item.resourceId},#{item.status},#{item.instId})
(#{item.id},#{item.appId},#{item.groupId},#{item.resourceId},#{item.status},#{item.instId})
</foreach>
</insert>

View File

@@ -1,53 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.maxkey.persistence.mapper.RolesMapper">
<mapper namespace="org.dromara.maxkey.persistence.mapper.GroupsMapper">
<sql id="where_statement">
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="roleName != null and roleName != ''">
and rolename like '%${roleName}%'
<if test="groupName != null and groupName != ''">
and groupname like '%${groupName}%'
</if>
</sql>
<select id="fetchPageResults" parameterType="Roles" resultType="Roles">
<select id="fetchPageResults" parameterType="Groups" resultType="Groups">
select
*
from
mxk_roles
mxk_groups
where instid = #{instId}
<include refid="where_statement"/>
</select>
<select id="queryDynamicRoles" parameterType="Roles" resultType="Roles">
<select id="queryDynamicRoles" parameterType="Groups" resultType="Groups">
select
*
from
mxk_roles
mxk_groups
where instid = #{instId}
and category = 'dynamic'
<include refid="where_statement"/>
</select>
<update id="logisticDelete" parameterType="Roles" >
update mxk_roles set
<update id="logisticDelete" parameterType="Groups" >
update mxk_groups set
status = '2'
where instid = #{instId}
<if test="id != null">
and id = #{id}
</if>
<if test="roleName != roleName">
and rolename = #{roleName}
<if test="groupName != groupName">
and groupname = #{groupName}
</if>
</update>
<update id="logisticBatchDelete" parameterType="java.util.List">
update mxk_roles
update mxk_groups
set status='2'
where instid = #{instId}
and id in
@@ -59,19 +59,19 @@
<select id="queryRolesByUserId" parameterType="string" resultType="Roles">
select distinct
r.*
g.*
from
mxk_userinfo u,
mxk_roles r,
mxk_role_member rm
mxk_groups g,
mxk_group_member gm
where u.instid = #{instId}
and r.instid = #{instId}
and rm.instid = #{instId}
and rm.memberid = #{value}
and g.instid = #{instId}
and gm.instid = #{instId}
and gm.memberid = #{value}
and u.id = #{value}
and rm.type in( 'USER','USER-DYNAMIC')
and rm.groupid = r.id
and rm.memberid = u.id
and gm.type in( 'USER','USER-DYNAMIC')
and gm.groupid = g.id
and gm.memberid = u.id
</select>