组和角色优化,增加角色动态任务,删除resumeTime和suspendTime
This commit is contained in:
@@ -18,8 +18,6 @@
|
||||
package org.dromara.maxkey.persistence.service;
|
||||
|
||||
import java.sql.Types;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -35,13 +33,10 @@ import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
|
||||
@Repository
|
||||
public class GroupsService extends JpaService<Groups>{
|
||||
|
||||
static final Logger _logger = LoggerFactory.getLogger(GroupsService.class);
|
||||
@JsonIgnore
|
||||
|
||||
@Autowired
|
||||
GroupMemberService groupMemberService;
|
||||
|
||||
@@ -77,26 +72,6 @@ public class GroupsService extends JpaService<Groups>{
|
||||
|
||||
public void refreshDynamicGroups(Groups dynamicGroup){
|
||||
if(dynamicGroup.getCategory().equals(Roles.Category.DYNAMIC)) {
|
||||
boolean isDynamicTimeSupport = false;
|
||||
boolean isBetweenEffectiveTime = false;
|
||||
if(StringUtils.isNotBlank(dynamicGroup.getResumeTime())
|
||||
&&StringUtils.isNotBlank(dynamicGroup.getSuspendTime())
|
||||
&&!dynamicGroup.getSuspendTime().equals("00:00")) {
|
||||
LocalTime currentTime = LocalDateTime.now().toLocalTime();
|
||||
LocalTime resumeTime = LocalTime.parse(dynamicGroup.getResumeTime());
|
||||
LocalTime suspendTime = LocalTime.parse(dynamicGroup.getSuspendTime());
|
||||
|
||||
_logger.info("currentTime: {} , resumeTime : {} , suspendTime: {}"
|
||||
, currentTime
|
||||
, resumeTime
|
||||
, suspendTime);
|
||||
isDynamicTimeSupport = true;
|
||||
|
||||
if(resumeTime.isBefore(currentTime) && currentTime.isBefore(suspendTime)) {
|
||||
isBetweenEffectiveTime = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(StringUtils.isNotBlank(dynamicGroup.getOrgIdsList())) {
|
||||
String []orgIds = dynamicGroup.getOrgIdsList().split(",");
|
||||
@@ -120,23 +95,15 @@ public class GroupsService extends JpaService<Groups>{
|
||||
_logger.info("filters include SQL Injection Attack Risk.");
|
||||
return;
|
||||
}
|
||||
filters = filters.replace("&", " AND ");
|
||||
filters = filters.replace("|", " OR ");
|
||||
//replace & with AND, | with OR
|
||||
filters = filters.replace("&", " AND ").replace("|", " OR ");
|
||||
|
||||
dynamicGroup.setFilters(filters);
|
||||
}
|
||||
|
||||
if(isDynamicTimeSupport) {
|
||||
if(isBetweenEffectiveTime) {
|
||||
groupMemberService.deleteDynamicMember(dynamicGroup);
|
||||
groupMemberService.addDynamicMember(dynamicGroup);
|
||||
}else {
|
||||
groupMemberService.deleteDynamicMember(dynamicGroup);
|
||||
}
|
||||
}else{
|
||||
groupMemberService.deleteDynamicMember(dynamicGroup);
|
||||
groupMemberService.addDynamicMember(dynamicGroup);
|
||||
}
|
||||
|
||||
groupMemberService.deleteDynamicMember(dynamicGroup);
|
||||
groupMemberService.addDynamicMember(dynamicGroup);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,8 +20,6 @@
|
||||
package org.dromara.maxkey.persistence.service;
|
||||
|
||||
import java.sql.Types;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -36,13 +34,10 @@ import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
|
||||
@Repository
|
||||
public class RolesService extends JpaService<Roles> {
|
||||
static final Logger _logger = LoggerFactory.getLogger(RolesService.class);
|
||||
|
||||
@JsonIgnore
|
||||
@Autowired
|
||||
RoleMemberService roleMemberService;
|
||||
|
||||
@@ -75,24 +70,6 @@ public class RolesService extends JpaService<Roles> {
|
||||
|
||||
public void refreshDynamicRoles(Roles dynamicRole){
|
||||
if(dynamicRole.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")) {
|
||||
LocalTime currentTime = LocalDateTime.now().toLocalTime();
|
||||
LocalTime resumeTime = LocalTime.parse(dynamicRole.getResumeTime());
|
||||
LocalTime suspendTime = LocalTime.parse(dynamicRole.getSuspendTime());
|
||||
|
||||
_logger.info("currentTime: {} , resumeTime : {} , suspendTime: {}" ,
|
||||
currentTime , resumeTime , suspendTime);
|
||||
isDynamicTimeSupport = true;
|
||||
|
||||
if(resumeTime.isBefore(currentTime) && currentTime.isBefore(suspendTime)) {
|
||||
isBetweenEffectiveTime = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(StringUtils.isNotBlank(dynamicRole.getOrgIdsList())) {
|
||||
String []orgIds = dynamicRole.getOrgIdsList().split(",");
|
||||
@@ -117,24 +94,16 @@ public class RolesService extends JpaService<Roles> {
|
||||
_logger.info("filters include SQL Injection Attack Risk.");
|
||||
return;
|
||||
}
|
||||
filters = filters.replace("&", " AND ");
|
||||
filters = filters.replaceAll("\\|", " OR ");
|
||||
//replace & with AND, | with OR
|
||||
filters = filters.replace("&", " AND ").replace("\\|", " OR ");
|
||||
|
||||
_logger.debug("set filters {}" , filters);
|
||||
dynamicRole.setFilters(filters);
|
||||
}
|
||||
|
||||
if(isDynamicTimeSupport) {
|
||||
if(isBetweenEffectiveTime) {
|
||||
roleMemberService.deleteDynamicRoleMember(dynamicRole);
|
||||
roleMemberService.addDynamicRoleMember(dynamicRole);
|
||||
}else {
|
||||
roleMemberService.deleteDynamicRoleMember(dynamicRole);
|
||||
}
|
||||
}else{
|
||||
roleMemberService.deleteDynamicRoleMember(dynamicRole);
|
||||
roleMemberService.addDynamicRoleMember(dynamicRole);
|
||||
}
|
||||
|
||||
roleMemberService.deleteDynamicRoleMember(dynamicRole);
|
||||
roleMemberService.addDynamicRoleMember(dynamicRole);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user