大量代码调整和优化

This commit is contained in:
shimingxy
2024-07-22 16:24:58 +08:00
parent 32b0f69c50
commit 363703f21e
288 changed files with 5873 additions and 1156 deletions

View File

@@ -20,7 +20,7 @@ import java.util.Date;
import org.dromara.maxkey.authn.session.Session;
import org.dromara.maxkey.authn.session.SessionManager;
import org.dromara.maxkey.entity.HistoryLogin;
import org.dromara.maxkey.entity.history.HistoryLogin;
import org.dromara.maxkey.schedule.ScheduleAdapter;
import org.dromara.maxkey.util.DateUtils;
import org.quartz.Job;

View File

@@ -20,12 +20,12 @@ import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.GroupPermissions;
import org.dromara.maxkey.entity.Access;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.apps.Apps;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.persistence.service.GroupPermissionssService;
import org.dromara.maxkey.persistence.service.AccessService;
import org.dromara.maxkey.web.WebContext;
import org.dromara.mybatis.jpa.entity.JpaPageResults;
import org.slf4j.Logger;
@@ -41,12 +41,12 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value={"/access/permissions"})
public class GroupPermissionsController {
static final Logger logger = LoggerFactory.getLogger(GroupPermissionsController.class);
@RequestMapping(value={"/access/access"})
public class AccessController {
static final Logger logger = LoggerFactory.getLogger(AccessController.class);
@Autowired
GroupPermissionssService groupPermissionssService;
AccessService accessService;
@Autowired
HistorySystemLogsService systemLog;
@@ -54,44 +54,44 @@ public class GroupPermissionsController {
@RequestMapping(value = { "/appsInGroup" })
@ResponseBody
public ResponseEntity<?> appsInRole(
@ModelAttribute GroupPermissions groupPermission,
@ModelAttribute Access groupPermission,
@CurrentUser UserInfo currentUser) {
JpaPageResults<GroupPermissions> groupPermissions;
JpaPageResults<Access> groupPermissions;
groupPermission.setInstId(currentUser.getInstId());
groupPermissions= groupPermissionssService.fetchPageResults("appsInGroup",groupPermission);
groupPermissions= accessService.fetchPageResults("appsInGroup",groupPermission);
if(groupPermissions!=null&&groupPermissions.getRows()!=null){
for (Apps app : groupPermissions.getRows()){
app.transIconBase64();
}
}
return new Message<JpaPageResults<GroupPermissions>>(Message.FAIL,groupPermissions).buildResponse();
return new Message<JpaPageResults<Access>>(Message.FAIL,groupPermissions).buildResponse();
}
@RequestMapping(value = { "/appsNotInGroup" })
@ResponseBody
public ResponseEntity<?> appsNotInRole(
@ModelAttribute GroupPermissions groupPermission,
@ModelAttribute Access groupPermission,
@CurrentUser UserInfo currentUser) {
JpaPageResults<GroupPermissions> groupPermissions;
JpaPageResults<Access> groupPermissions;
groupPermission.setInstId(currentUser.getInstId());
groupPermissions= groupPermissionssService.fetchPageResults("appsNotInGroup",groupPermission);
groupPermissions= accessService.fetchPageResults("appsNotInGroup",groupPermission);
if(groupPermissions!=null&&groupPermissions.getRows()!=null){
for (Apps app : groupPermissions.getRows()){
app.transIconBase64();
}
}
return new Message<JpaPageResults<GroupPermissions>>(Message.FAIL,groupPermissions).buildResponse();
return new Message<JpaPageResults<Access>>(Message.FAIL,groupPermissions).buildResponse();
}
@RequestMapping(value = {"/add"})
@ResponseBody
public ResponseEntity<?> insertPermission(
@RequestBody GroupPermissions groupPermission,
@RequestBody Access groupPermission,
@CurrentUser UserInfo currentUser) {
if (groupPermission == null || groupPermission.getGroupId() == null) {
return new Message<GroupPermissions>(Message.FAIL).buildResponse();
return new Message<Access>(Message.FAIL).buildResponse();
}
String roleId = groupPermission.getGroupId();
@@ -101,27 +101,27 @@ public class GroupPermissionsController {
String[] arrAppIds = appIds.split(",");
for (int i = 0; i < arrAppIds.length; i++) {
if(StringUtils.isNotBlank(arrAppIds[i])) {
GroupPermissions newgroupPermissions =
new GroupPermissions(roleId, arrAppIds[i],currentUser.getInstId());
Access newgroupPermissions =
new Access(roleId, arrAppIds[i],currentUser.getInstId());
newgroupPermissions.setId(WebContext.genId());
result = groupPermissionssService.insert(newgroupPermissions);
result = accessService.insert(newgroupPermissions);
}
}
if(result) {
return new Message<GroupPermissions>(Message.SUCCESS).buildResponse();
return new Message<Access>(Message.SUCCESS).buildResponse();
}
}
return new Message<GroupPermissions>(Message.FAIL).buildResponse();
return new Message<Access>(Message.FAIL).buildResponse();
}
@ResponseBody
@RequestMapping(value={"/delete"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> delete(@RequestParam("ids") List<String> ids,@CurrentUser UserInfo currentUser) {
logger.debug("-delete ids : {}" , ids);
if (groupPermissionssService.deleteBatch(ids)) {
return new Message<GroupPermissions>(Message.SUCCESS).buildResponse();
if (accessService.deleteBatch(ids)) {
return new Message<Access>(Message.SUCCESS).buildResponse();
} else {
return new Message<GroupPermissions>(Message.FAIL).buildResponse();
return new Message<Access>(Message.FAIL).buildResponse();
}
}

View File

@@ -21,9 +21,9 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.authn.session.SessionManager;
import org.dromara.maxkey.entity.HistoryLogin;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.history.HistoryLogin;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.HistoryLoginService;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.util.DateUtils;

View File

@@ -24,8 +24,8 @@ import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.constants.ConstsProtocols;
import org.dromara.maxkey.crypto.ReciprocalUtils;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.apps.Apps;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.mybatis.jpa.entity.JpaPageResults;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -23,8 +23,8 @@ import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.constants.ConstsProtocols;
import org.dromara.maxkey.crypto.ReciprocalUtils;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.apps.AppsCasDetails;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.AppsCasDetailsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -23,9 +23,9 @@ import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.constants.ConstsProtocols;
import org.dromara.maxkey.crypto.ReciprocalUtils;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.apps.Apps;
import org.dromara.maxkey.entity.apps.AppsExtendApiDetails;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;

View File

@@ -23,8 +23,8 @@ import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.constants.ConstsProtocols;
import org.dromara.maxkey.crypto.ReciprocalUtils;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.apps.AppsFormBasedDetails;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.AppsFormBasedDetailsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -23,8 +23,8 @@ import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.constants.ConstsProtocols;
import org.dromara.maxkey.crypto.ReciprocalUtils;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.apps.AppsJwtDetails;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.AppsJwtDetailsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -25,10 +25,10 @@ import org.dromara.maxkey.authz.oauth2.provider.client.JdbcClientDetailsService;
import org.dromara.maxkey.constants.ConstsProtocols;
import org.dromara.maxkey.crypto.ReciprocalUtils;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.apps.Apps;
import org.dromara.maxkey.entity.apps.AppsOAuth20Details;
import org.dromara.maxkey.entity.apps.oauth2.provider.client.BaseClientDetails;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -38,8 +38,8 @@ import org.dromara.maxkey.crypto.cert.X509CertUtils;
import org.dromara.maxkey.crypto.keystore.KeyStoreLoader;
import org.dromara.maxkey.crypto.keystore.KeyStoreUtil;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.apps.AppsSAML20Details;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.AppsSaml20DetailsService;
import org.opensaml.common.xml.SAMLConstants;
import org.opensaml.saml2.metadata.EntityDescriptor;

View File

@@ -23,9 +23,9 @@ import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.constants.ConstsProtocols;
import org.dromara.maxkey.crypto.ReciprocalUtils;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.apps.AppsJwtDetails;
import org.dromara.maxkey.entity.apps.AppsTokenBasedDetails;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.AppsTokenBasedDetailsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -22,7 +22,7 @@ import java.util.List;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.AccountsStrategy;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.AccountsService;
import org.dromara.maxkey.persistence.service.AccountsStrategyService;
import org.dromara.mybatis.jpa.entity.JpaPageResults;

View File

@@ -21,8 +21,8 @@ import java.util.List;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.apps.AppsAdapters;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.AppsAdaptersService;
import org.dromara.mybatis.jpa.entity.JpaPageResults;
import org.slf4j.Logger;

View File

@@ -20,10 +20,10 @@ package org.dromara.maxkey.web.config.contorller;
import org.apache.commons.lang3.StringUtils;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.crypto.password.PasswordReciprocal;
import org.dromara.maxkey.entity.EmailSenders;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.persistence.service.EmailSendersService;
import org.dromara.maxkey.entity.cnf.CnfEmailSenders;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.CnfEmailSendersService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,43 +36,43 @@ import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value={"/config/emailsenders"})
public class EmailSendersController {
static final Logger logger = LoggerFactory.getLogger(EmailSendersController.class);
public class CnfEmailSendersController {
static final Logger logger = LoggerFactory.getLogger(CnfEmailSendersController.class);
@Autowired
private EmailSendersService emailSendersService;
private CnfEmailSendersService emailSendersService;
@RequestMapping(value={"/get"})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
EmailSenders emailSenders = emailSendersService.get(currentUser.getInstId());
CnfEmailSenders emailSenders = emailSendersService.get(currentUser.getInstId());
if(emailSenders != null && StringUtils.isNotBlank(emailSenders.getCredentials())) {
emailSenders.setCredentials(PasswordReciprocal.getInstance().decoder(emailSenders.getCredentials()));
}else {
emailSenders =new EmailSenders();
emailSenders =new CnfEmailSenders();
emailSenders.setProtocol("smtp");
emailSenders.setEncoding("utf-8");
}
return new Message<EmailSenders>(emailSenders).buildResponse();
return new Message<CnfEmailSenders>(emailSenders).buildResponse();
}
@RequestMapping(value={"/update"})
@ResponseBody
public ResponseEntity<?> update( @RequestBody EmailSenders emailSenders,@CurrentUser UserInfo currentUser,BindingResult result) {
public ResponseEntity<?> update( @RequestBody CnfEmailSenders emailSenders,@CurrentUser UserInfo currentUser,BindingResult result) {
logger.debug("update emailSenders : {}" , emailSenders);
emailSenders.setInstId(currentUser.getInstId());
emailSenders.setCredentials(PasswordReciprocal.getInstance().encode(emailSenders.getCredentials()));
if(StringUtils.isBlank(emailSenders.getId())) {
emailSenders.setId(emailSenders.getInstId());
if(emailSendersService.insert(emailSenders)) {
return new Message<EmailSenders>(Message.SUCCESS).buildResponse();
return new Message<CnfEmailSenders>(Message.SUCCESS).buildResponse();
}else {
return new Message<EmailSenders>(Message.ERROR).buildResponse();
return new Message<CnfEmailSenders>(Message.ERROR).buildResponse();
}
}else {
if(emailSendersService.update(emailSenders)) {
return new Message<EmailSenders>(Message.SUCCESS).buildResponse();
return new Message<CnfEmailSenders>(Message.SUCCESS).buildResponse();
}else {
return new Message<EmailSenders>(Message.ERROR).buildResponse();
return new Message<CnfEmailSenders>(Message.ERROR).buildResponse();
}
}

View File

@@ -20,12 +20,12 @@ package org.dromara.maxkey.web.config.contorller;
import org.apache.commons.lang3.StringUtils;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.crypto.password.PasswordReciprocal;
import org.dromara.maxkey.entity.LdapContext;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.cnf.CnfLdapContext;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.ldap.ActiveDirectoryUtils;
import org.dromara.maxkey.ldap.LdapUtils;
import org.dromara.maxkey.persistence.service.LdapContextService;
import org.dromara.maxkey.persistence.service.CnfLdapContextService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,24 +39,24 @@ import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value={"/config/ldapcontext"})
public class LdapContextController {
static final Logger logger = LoggerFactory.getLogger(LdapContextController.class);
public class CnfLdapContextController {
static final Logger logger = LoggerFactory.getLogger(CnfLdapContextController.class);
@Autowired
private LdapContextService ldapContextService;
private CnfLdapContextService ldapContextService;
@RequestMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
LdapContext ldapContext = ldapContextService.get(currentUser.getInstId());
CnfLdapContext ldapContext = ldapContextService.get(currentUser.getInstId());
if(ldapContext != null && StringUtils.isNoneBlank(ldapContext.getCredentials())) {
ldapContext.setCredentials(PasswordReciprocal.getInstance().decoder(ldapContext.getCredentials()));
}
return new Message<LdapContext>(ldapContext).buildResponse();
return new Message<CnfLdapContext>(ldapContext).buildResponse();
}
@RequestMapping(value={"/update"})
@ResponseBody
public ResponseEntity<?> update( @RequestBody LdapContext ldapContext,@CurrentUser UserInfo currentUser,BindingResult result) {
public ResponseEntity<?> update( @RequestBody CnfLdapContext ldapContext,@CurrentUser UserInfo currentUser,BindingResult result) {
logger.debug("update ldapContext : {}" ,ldapContext);
ldapContext.setCredentials(PasswordReciprocal.getInstance().encode(ldapContext.getCredentials()));
ldapContext.setInstId(currentUser.getInstId());
@@ -68,16 +68,16 @@ public class LdapContextController {
updateResult = ldapContextService.update(ldapContext);
}
if(updateResult) {
return new Message<LdapContext>(Message.SUCCESS).buildResponse();
return new Message<CnfLdapContext>(Message.SUCCESS).buildResponse();
} else {
return new Message<LdapContext>(Message.FAIL).buildResponse();
return new Message<CnfLdapContext>(Message.FAIL).buildResponse();
}
}
@RequestMapping(value={"/test"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> test(@CurrentUser UserInfo currentUser){
LdapContext ldapContext = ldapContextService.get(currentUser.getInstId());
CnfLdapContext ldapContext = ldapContextService.get(currentUser.getInstId());
if(ldapContext != null && StringUtils.isNoneBlank(ldapContext.getCredentials())) {
ldapContext.setCredentials(PasswordReciprocal.getInstance().decoder(ldapContext.getCredentials()));
}
@@ -106,9 +106,9 @@ public class LdapContextController {
if(ldapUtils.openConnection() != null) {
ldapUtils.close();
return new Message<LdapContext>(Message.SUCCESS).buildResponse();
return new Message<CnfLdapContext>(Message.SUCCESS).buildResponse();
}else {
return new Message<LdapContext>(Message.FAIL).buildResponse();
return new Message<CnfLdapContext>(Message.FAIL).buildResponse();
}
}
}

View File

@@ -20,9 +20,9 @@ package org.dromara.maxkey.web.config.contorller;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.PasswordPolicy;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.persistence.service.PasswordPolicyService;
import org.dromara.maxkey.entity.cnf.CnfPasswordPolicy;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.CnfPasswordPolicyService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,31 +38,31 @@ import jakarta.validation.Valid;
@Controller
@RequestMapping(value={"/config/passwordpolicy"})
public class PasswordPolicyController {
static final Logger logger = LoggerFactory.getLogger(PasswordPolicyController.class);
public class CnfPasswordPolicyController {
static final Logger logger = LoggerFactory.getLogger(CnfPasswordPolicyController.class);
@Autowired
private PasswordPolicyService passwordPolicyService;
private CnfPasswordPolicyService passwordPolicyService;
@RequestMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
PasswordPolicy passwordPolicy = passwordPolicyService.get(currentUser.getInstId());
return new Message<PasswordPolicy>(passwordPolicy).buildResponse();
CnfPasswordPolicy passwordPolicy = passwordPolicyService.get(currentUser.getInstId());
return new Message<CnfPasswordPolicy>(passwordPolicy).buildResponse();
}
@RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(@Valid @RequestBody PasswordPolicy passwordPolicy,@CurrentUser UserInfo currentUser,BindingResult result) {
public ResponseEntity<?> update(@Valid @RequestBody CnfPasswordPolicy passwordPolicy,@CurrentUser UserInfo currentUser,BindingResult result) {
logger.debug("updateRole passwordPolicy : {}" ,passwordPolicy);
//Message message = this.validate(result, passwordPolicy);
if(passwordPolicyService.update(passwordPolicy)) {
return new Message<PasswordPolicy>(Message.SUCCESS).buildResponse();
return new Message<CnfPasswordPolicy>(Message.SUCCESS).buildResponse();
} else {
return new Message<PasswordPolicy>(Message.ERROR).buildResponse();
return new Message<CnfPasswordPolicy>(Message.ERROR).buildResponse();
}
}
public Message validate(BindingResult result,PasswordPolicy passwordPolicy) {
public Message validate(BindingResult result,CnfPasswordPolicy passwordPolicy) {
if (result.hasErrors()) {
return new Message(result);
}

View File

@@ -21,9 +21,9 @@ import org.apache.commons.lang3.StringUtils;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.crypto.password.PasswordReciprocal;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.SmsProvider;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.persistence.service.SmsProviderService;
import org.dromara.maxkey.entity.cnf.CnfSmsProvider;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.CnfSmsProviderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,24 +37,24 @@ import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value={"/config/smsprovider"})
public class SmsProviderController {
static final Logger logger = LoggerFactory.getLogger(SmsProviderController.class);
public class CnfSmsProviderController {
static final Logger logger = LoggerFactory.getLogger(CnfSmsProviderController.class);
@Autowired
private SmsProviderService smsProviderService;
private CnfSmsProviderService smsProviderService;
@RequestMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
SmsProvider smsProvider = smsProviderService.get(currentUser.getInstId());
CnfSmsProvider smsProvider = smsProviderService.get(currentUser.getInstId());
if(smsProvider != null && StringUtils.isNoneBlank(smsProvider.getId())) {
smsProvider.setAppSecret(PasswordReciprocal.getInstance().decoder(smsProvider.getAppSecret()));
}
return new Message<SmsProvider>(smsProvider).buildResponse();
return new Message<CnfSmsProvider>(smsProvider).buildResponse();
}
@RequestMapping(value={"/update"})
@ResponseBody
public ResponseEntity<?> update( @RequestBody SmsProvider smsProvider,@CurrentUser UserInfo currentUser,BindingResult result) {
public ResponseEntity<?> update( @RequestBody CnfSmsProvider smsProvider,@CurrentUser UserInfo currentUser,BindingResult result) {
logger.debug("update smsProvider : {}" ,smsProvider);
smsProvider.setAppSecret(PasswordReciprocal.getInstance().encode(smsProvider.getAppSecret()));
smsProvider.setInstId(currentUser.getInstId());
@@ -66,9 +66,9 @@ public class SmsProviderController {
updateResult = smsProviderService.update(smsProvider);
}
if(updateResult) {
return new Message<SmsProvider>(Message.SUCCESS).buildResponse();
return new Message<CnfSmsProvider>(Message.SUCCESS).buildResponse();
} else {
return new Message<SmsProvider>(Message.FAIL).buildResponse();
return new Message<CnfSmsProvider>(Message.FAIL).buildResponse();
}
}
}

View File

@@ -24,7 +24,7 @@ import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.crypto.password.PasswordReciprocal;
import org.dromara.maxkey.entity.Connectors;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.ConnectorsService;
import org.dromara.mybatis.jpa.entity.JpaPageResults;
import org.slf4j.Logger;

View File

@@ -20,7 +20,7 @@ package org.dromara.maxkey.web.config.contorller;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.Institutions;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.InstitutionsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -1,90 +0,0 @@
/*
* Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.dromara.maxkey.web.config.contorller;
import org.apache.commons.lang3.StringUtils;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.Localization;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.persistence.repository.LocalizationRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value={"/localization"})
public class LocalizationController {
static final Logger logger = LoggerFactory.getLogger(LocalizationController.class);
@Autowired
private LocalizationRepository localizationRepository;
/**
* 读取
* @return
*/
@RequestMapping(value={"/forward/{property}"})
public ModelAndView forward(@PathVariable("property") String property,@CurrentUser UserInfo currentUser){
Localization localization = localizationRepository.get(property,currentUser.getInstId());
if(localization == null ) {
localization = new Localization();
}
localization.setProperty(property);
localization.setInstId(currentUser.getInstId());
return new ModelAndView("localization/updateLocalization","model",localization);
}
/**
* 更新
* @param sysConfig
* @return
*/
@RequestMapping(value={"/update"})
@ResponseBody
public ResponseEntity<?> update(@ModelAttribute("localization") Localization localization,@CurrentUser UserInfo currentUser,BindingResult result) {
logger.debug("update localization : {}" ,localization);
localization.setInstId(currentUser.getInstId());
if(StringUtils.isBlank(localization.getId())){
localization.setId(localization.generateId());
if(localizationRepository.insert(localization)) {
return new Message<Localization>(Message.SUCCESS).buildResponse();
} else {
return new Message<Localization>(Message.FAIL).buildResponse();
}
}else {
if(localizationRepository.update(localization)) {
return new Message<Localization>(Message.SUCCESS).buildResponse();
} else {
return new Message<Localization>(Message.FAIL).buildResponse();
}
}
}
}

View File

@@ -23,7 +23,7 @@ import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.crypto.password.PasswordReciprocal;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.SocialsProvider;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.SocialsProviderService;
import org.dromara.mybatis.jpa.entity.JpaPageResults;
import org.slf4j.Logger;

View File

@@ -23,7 +23,7 @@ import org.dromara.maxkey.crypto.password.PasswordReciprocal;
import org.dromara.maxkey.entity.Connectors;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.Synchronizers;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.SynchronizersService;
import org.dromara.maxkey.synchronizer.ISynchronizerService;
import org.dromara.maxkey.util.StrUtils;

View File

@@ -1,18 +0,0 @@
/*
* Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.dromara.maxkey.web.config.contorller;

View File

@@ -27,7 +27,7 @@ import org.dromara.maxkey.crypto.password.PasswordReciprocal;
import org.dromara.maxkey.entity.Accounts;
import org.dromara.maxkey.entity.AccountsStrategy;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.AccountsService;
import org.dromara.maxkey.persistence.service.AccountsStrategyService;
import org.dromara.maxkey.persistence.service.AppsService;

View File

@@ -21,7 +21,7 @@ import java.util.HashMap;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.ReportService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -71,8 +71,6 @@ public class LoginEntryPoint {
model.put("inst", inst);
if(applicationConfig.getLoginConfig().isCaptcha()) {
model.put("captcha", "true");
}else {
model.put("captcha", inst.getCaptcha());
}
model.put("state", authTokenService.genRandomJwt());
return new Message<HashMap<String , Object>>(model).buildResponse();

View File

@@ -20,7 +20,7 @@ package org.dromara.maxkey.web.contorller;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.authn.session.SessionManager;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -20,16 +20,15 @@ package org.dromara.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.HistoryConnector;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.history.HistoryConnector;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.HistoryConnectorService;
import org.dromara.maxkey.util.DateUtils;
import org.dromara.mybatis.jpa.entity.JpaPageResults;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;

View File

@@ -20,9 +20,9 @@ package org.dromara.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.HistoryLoginApps;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.history.HistoryLoginApps;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.HistoryLoginAppsService;
import org.dromara.maxkey.util.DateUtils;
import org.dromara.mybatis.jpa.entity.JpaPageResults;

View File

@@ -20,9 +20,9 @@ package org.dromara.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.HistoryLogin;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.history.HistoryLogin;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.HistoryLoginService;
import org.dromara.maxkey.util.DateUtils;
import org.dromara.mybatis.jpa.entity.JpaPageResults;

View File

@@ -20,9 +20,9 @@ package org.dromara.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.HistorySynchronizer;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.history.HistorySynchronizer;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.HistorySynchronizerService;
import org.dromara.maxkey.util.DateUtils;
import org.dromara.mybatis.jpa.entity.JpaPageResults;

View File

@@ -20,9 +20,9 @@ package org.dromara.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.HistorySystemLogs;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.history.HistorySystemLogs;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.util.DateUtils;
import org.dromara.mybatis.jpa.entity.JpaPageResults;

View File

@@ -1,18 +0,0 @@
/*
* Copyright [2021] [MaxKey of copyright http://www.maxkey.top]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.dromara.maxkey.web.historys.contorller;

View File

@@ -22,9 +22,9 @@ import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.GroupMember;
import org.dromara.maxkey.entity.Groups;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.GroupMember;
import org.dromara.maxkey.entity.idm.Groups;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.persistence.service.GroupMemberService;
import org.dromara.maxkey.persistence.service.GroupsService;

View File

@@ -25,10 +25,10 @@ import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.constants.ConstsEntryType;
import org.dromara.maxkey.constants.ConstsAct;
import org.dromara.maxkey.constants.ConstsActResult;
import org.dromara.maxkey.entity.Groups;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.Roles;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.Groups;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.entity.permissions.Roles;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.persistence.service.GroupsService;
import org.dromara.mybatis.jpa.entity.JpaPageResults;

View File

@@ -33,8 +33,8 @@ import org.dromara.maxkey.constants.ConstsAct;
import org.dromara.maxkey.constants.ConstsActResult;
import org.dromara.maxkey.entity.ExcelImport;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.Organizations;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.Organizations;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.persistence.service.OrganizationsService;
import org.dromara.maxkey.util.ExcelUtils;

View File

@@ -41,7 +41,7 @@ import org.dromara.maxkey.constants.ConstsPasswordSetType;
import org.dromara.maxkey.entity.ChangePassword;
import org.dromara.maxkey.entity.ExcelImport;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.persistence.service.FileUploadService;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.persistence.service.UserInfoService;
@@ -74,7 +74,7 @@ import com.google.common.collect.Lists;
@Controller
@RequestMapping(value = { "/users" })
public class UserInfoController {
final static Logger logger = LoggerFactory.getLogger(UserInfoController.class);
static final Logger logger = LoggerFactory.getLogger(UserInfoController.class);
@Autowired
private UserInfoService userInfoService;

View File

@@ -21,10 +21,10 @@ import java.util.List;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.GroupPrivileges;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.entity.permissions.Permission;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.persistence.service.GroupPrivilegesService;
import org.dromara.maxkey.persistence.service.PermissionService;
import org.dromara.maxkey.util.StrUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,12 +39,12 @@ import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value={"/permissions/privileges"})
public class GroupPrivilegesController {
static final Logger logger = LoggerFactory.getLogger(GroupPrivilegesController.class);
@RequestMapping(value={"/permissions/permission"})
public class PermissionController {
static final Logger logger = LoggerFactory.getLogger(PermissionController.class);
@Autowired
GroupPrivilegesService groupPrivilegesService;
PermissionService permissionService;
@Autowired
HistorySystemLogsService systemLog;
@@ -52,27 +52,27 @@ public class GroupPrivilegesController {
@ResponseBody
@RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(
@RequestBody GroupPrivileges groupPrivileges,
@RequestBody Permission groupPrivileges,
@CurrentUser UserInfo currentUser) {
logger.debug("-update : {}" , groupPrivileges);
//have
GroupPrivileges queryGroupPrivileges =
new GroupPrivileges(
Permission queryGroupPrivileges =
new Permission(
groupPrivileges.getAppId(),
groupPrivileges.getGroupId(),
currentUser.getInstId());
List<GroupPrivileges> groupPrivilegesList = groupPrivilegesService.queryGroupPrivileges(queryGroupPrivileges);
List<Permission> groupPrivilegesList = permissionService.queryGroupPrivileges(queryGroupPrivileges);
HashMap<String,String >privilegeMap =new HashMap<String,String >();
for(GroupPrivileges rolePrivilege : groupPrivilegesList) {
for(Permission rolePrivilege : groupPrivilegesList) {
privilegeMap.put(rolePrivilege.getUniqueId(),rolePrivilege.getId());
}
//Maybe insert
ArrayList<GroupPrivileges> newGroupPrivilegesList =new ArrayList<GroupPrivileges>();
ArrayList<Permission> newGroupPrivilegesList =new ArrayList<Permission>();
List<String>resourceIds = StrUtils.string2List(groupPrivileges.getResourceId(), ",");
HashMap<String,String >newPrivilegesMap =new HashMap<String,String >();
for(String resourceId : resourceIds) {
GroupPrivileges newGroupPrivilege=new GroupPrivileges(
Permission newGroupPrivilege=new Permission(
groupPrivileges.getAppId(),
groupPrivileges.getGroupId(),
resourceId,
@@ -87,8 +87,8 @@ public class GroupPrivilegesController {
}
//delete
ArrayList<GroupPrivileges> deleteGroupPrivilegesList =new ArrayList<GroupPrivileges>();
for(GroupPrivileges rolePrivilege : groupPrivilegesList) {
ArrayList<Permission> deleteGroupPrivilegesList =new ArrayList<Permission>();
for(Permission rolePrivilege : groupPrivilegesList) {
if(!newPrivilegesMap.containsKey(rolePrivilege.getUniqueId())) {
rolePrivilege.setInstId(currentUser.getInstId());
deleteGroupPrivilegesList.add(rolePrivilege);
@@ -96,15 +96,15 @@ public class GroupPrivilegesController {
}
if (!deleteGroupPrivilegesList.isEmpty()) {
logger.debug("-remove : {}" , deleteGroupPrivilegesList);
groupPrivilegesService.deleteGroupPrivileges(deleteGroupPrivilegesList);
permissionService.deleteGroupPrivileges(deleteGroupPrivilegesList);
}
if (!newGroupPrivilegesList.isEmpty() && groupPrivilegesService.insertGroupPrivileges(newGroupPrivilegesList)) {
if (!newGroupPrivilegesList.isEmpty() && permissionService.insertGroupPrivileges(newGroupPrivilegesList)) {
logger.debug("-insert : {}" , newGroupPrivilegesList);
return new Message<GroupPrivileges>(Message.SUCCESS).buildResponse();
return new Message<Permission>(Message.SUCCESS).buildResponse();
} else {
return new Message<GroupPrivileges>(Message.SUCCESS).buildResponse();
return new Message<Permission>(Message.SUCCESS).buildResponse();
}
}
@@ -112,18 +112,18 @@ public class GroupPrivilegesController {
@ResponseBody
@RequestMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(
@ModelAttribute GroupPrivileges groupPrivileges,
@ModelAttribute Permission groupPrivileges,
@CurrentUser UserInfo currentUser) {
logger.debug("-get : {}" , groupPrivileges);
//have
GroupPrivileges queryGroupPrivilege =
new GroupPrivileges(
Permission queryGroupPrivilege =
new Permission(
groupPrivileges.getAppId(),
groupPrivileges.getGroupId(),
currentUser.getInstId());
List<GroupPrivileges> rolePrivilegeList = groupPrivilegesService.queryGroupPrivileges(queryGroupPrivilege);
List<Permission> rolePrivilegeList = permissionService.queryGroupPrivileges(queryGroupPrivilege);
return new Message<List<GroupPrivileges>>(
return new Message<List<Permission>>(
rolePrivilegeList).buildResponse();
}

View File

@@ -0,0 +1,116 @@
package org.dromara.maxkey.web.permissions.contorller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.entity.permissions.PermissionRole;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.persistence.service.PermissionRoleService;
import org.dromara.maxkey.util.StrUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value={"/permissions/permissionRole"})
public class PermissionRoleController {
static final Logger _logger = LoggerFactory.getLogger(PermissionRoleController.class);
@Autowired
PermissionRoleService permissionRoleService;
@Autowired
HistorySystemLogsService systemLog;
@PutMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public Message<PermissionRole> update(
@RequestBody PermissionRole permissionRole,
@CurrentUser UserInfo currentUser) {
_logger.debug("-update : {}" , permissionRole);
//have
PermissionRole queryPermissionRole =
new PermissionRole(
permissionRole.getAppId(),
permissionRole.getRoleId(),
currentUser.getInstId());
List<PermissionRole> permissionRolesList = permissionRoleService.queryPermissionRoles(queryPermissionRole);
HashMap<String,String >permissionRolesMap =new HashMap<>();
for(PermissionRole tempPermissionRole : permissionRolesList) {
permissionRolesMap.put(tempPermissionRole.getUniqueId(),tempPermissionRole.getId());
}
//Maybe insert
ArrayList<PermissionRole> newPermissionRolesList =new ArrayList<>();
List<String>resourceIds = StrUtils.string2List(permissionRole.getResourceId(), ",");
HashMap<String,String >newPermissionRolesMap =new HashMap<>();
for(String resourceId : resourceIds) {
PermissionRole newPermissionRole =new PermissionRole(
permissionRole.getAppId(),
permissionRole.getRoleId(),
resourceId,
currentUser.getId(),
currentUser.getInstId());
newPermissionRole.setId(newPermissionRole.generateId());
newPermissionRolesMap.put(newPermissionRole.getUniqueId(), permissionRole.getAppId());
if(!permissionRole.getAppId().equalsIgnoreCase(resourceId) &&
!permissionRolesMap.containsKey(newPermissionRole.getUniqueId())) {
newPermissionRolesList.add(newPermissionRole);
}
}
//delete
ArrayList<PermissionRole> deletePermissionRolesList =new ArrayList<>();
for(PermissionRole tempPermissionRole : permissionRolesList) {
if(!newPermissionRolesMap.containsKey(tempPermissionRole.getUniqueId())) {
tempPermissionRole.setInstId(currentUser.getInstId());
deletePermissionRolesList.add(tempPermissionRole);
}
}
if (!deletePermissionRolesList.isEmpty()) {
_logger.debug("-remove : {}" , deletePermissionRolesList);
permissionRoleService.deletePermissionRoles(deletePermissionRolesList);
}
if (!newPermissionRolesList.isEmpty() && permissionRoleService.insertPermissionRoles(newPermissionRolesList)) {
_logger.debug("-insert : {}" ,newPermissionRolesList);
return new Message<>(Message.SUCCESS);
} else {
return new Message<>(Message.SUCCESS);
}
}
@GetMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public Message<List<PermissionRole>> get(
@ModelAttribute PermissionRole permissionRole,
@CurrentUser UserInfo currentUser) {
_logger.debug("-get : {}" , permissionRole);
//have
PermissionRole queryPermissionRole =
new PermissionRole(
permissionRole.getAppId(),
permissionRole.getRoleId(),
currentUser.getInstId());
List<PermissionRole>permissionRoleList = permissionRoleService.queryPermissionRoles(queryPermissionRole);
return new Message<>(permissionRoleList);
}
}

View File

@@ -24,8 +24,8 @@ import org.dromara.maxkey.constants.ConstsEntryType;
import org.dromara.maxkey.constants.ConstsAct;
import org.dromara.maxkey.constants.ConstsActResult;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.Resources;
import org.dromara.maxkey.entity.UserInfo;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.entity.permissions.Resources;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.persistence.service.ResourcesService;
import org.dromara.maxkey.web.component.TreeAttributes;

View File

@@ -0,0 +1,179 @@
package org.dromara.maxkey.web.permissions.contorller;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.entity.permissions.RoleMember;
import org.dromara.maxkey.entity.permissions.Roles;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.persistence.service.RoleMemberService;
import org.dromara.maxkey.persistence.service.RolesService;
import org.dromara.maxkey.persistence.service.UserInfoService;
import org.dromara.maxkey.web.WebContext;
import org.dromara.mybatis.jpa.entity.JpaPageResults;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value={"/permissions/rolemembers"})
public class RoleMemberController {
static final Logger _logger = LoggerFactory.getLogger(RoleMemberController.class);
@Autowired
RoleMemberService roleMemberService;
@Autowired
RolesService rolesService;
@Autowired
UserInfoService userInfoService;
@Autowired
HistorySystemLogsService systemLog;
@GetMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
public Message<JpaPageResults<RoleMember>> fetch(
@ModelAttribute RoleMember roleMember,
@CurrentUser UserInfo currentUser) {
_logger.debug("fetch {}",roleMember);
roleMember.setInstId(currentUser.getInstId());
return new Message<>(roleMemberService.fetchPageResults(roleMember));
}
@RequestMapping(value = { "/memberInRole" })
public Message<JpaPageResults<RoleMember>> memberInRole(@ModelAttribute RoleMember roleMember,@CurrentUser UserInfo currentUser) {
_logger.debug("roleMember : {}",roleMember);
roleMember.setInstId(currentUser.getInstId());
return new Message<>(roleMemberService.fetchPageResults("memberInRole",roleMember));
}
@RequestMapping(value = { "/memberNotInRole" })
public Message<JpaPageResults<RoleMember>> memberNotInRole(@ModelAttribute RoleMember roleMember,@CurrentUser UserInfo currentUser) {
roleMember.setInstId(currentUser.getInstId());
return new Message<>(roleMemberService.fetchPageResults("memberNotInRole",roleMember));
}
@RequestMapping(value = { "/memberPostNotInRole" })
public Message<JpaPageResults<RoleMember>> memberPostNotInRole(@ModelAttribute RoleMember roleMember,@CurrentUser UserInfo currentUser) {
roleMember.setInstId(currentUser.getInstId());
return new Message<>(roleMemberService.fetchPageResults("memberPostNotInRole",roleMember));
}
@RequestMapping(value = { "/rolesNoMember" })
public Message<JpaPageResults<Roles>> rolesNoMember(@ModelAttribute RoleMember roleMember,@CurrentUser UserInfo currentUser) {
roleMember.setInstId(currentUser.getInstId());
return new Message<>(roleMemberService.rolesNoMember(roleMember));
}
/**
* Members add to the Role
* @param roleMember
* @param currentUser
* @return
*/
@PostMapping(value = {"/add"})
@ResponseBody
public Message<RoleMember> addRoleMember(@RequestBody RoleMember roleMember,@CurrentUser UserInfo currentUser) {
if (roleMember == null || roleMember.getRoleId() == null) {
return new Message<>(Message.FAIL);
}
String roleId = roleMember.getRoleId();
boolean result = true;
String memberIds = roleMember.getMemberId();
String memberNames = roleMember.getMemberName();
if (memberIds != null) {
String[] arrMemberIds = memberIds.split(",");
String[] arrMemberNames = memberNames.split(",");
for (int i = 0; i < arrMemberIds.length; i++) {
RoleMember newRoleMember =
new RoleMember(
roleId,
roleMember.getRoleName(),
arrMemberIds[i],
arrMemberNames[i],
roleMember.getType(),
currentUser.getId(),
currentUser.getInstId());
newRoleMember.setId(WebContext.genId());
result = roleMemberService.insert(newRoleMember);
}
if(result) {
return new Message<>(Message.SUCCESS);
}
}
return new Message<>(Message.FAIL);
}
/**
* Member add to Roles
* @param roleMember
* @param currentUser
* @return
*/
@RequestMapping(value = {"/addMember2Roles"})
public Message<RoleMember> addMember2Roles(@RequestBody RoleMember roleMember,@CurrentUser UserInfo currentUser) {
if (roleMember == null || StringUtils.isBlank(roleMember.getUsername())) {
return new Message<>(Message.FAIL);
}
UserInfo userInfo = userInfoService.findByUsername(roleMember.getUsername());
boolean result = true;
String roleIds = roleMember.getRoleId();
String roleNames = roleMember.getRoleName();
if (roleIds != null && userInfo != null) {
String[] arrRoleIds = roleIds.split(",");
String[] arrRoleNames = roleNames.split(",");
for (int i = 0; i < arrRoleIds.length; i++) {
RoleMember newRoleMember =
new RoleMember(
arrRoleIds[i],
arrRoleNames[i],
userInfo.getId(),
userInfo.getDisplayName(),
"USER",
currentUser.getId(),
currentUser.getInstId());
newRoleMember.setId(WebContext.genId());
result = roleMemberService.insert(newRoleMember);
}
if(result) {
return new Message<>(Message.SUCCESS);
}
}
return new Message<>(Message.FAIL);
}
@ResponseBody
@RequestMapping(value={"/delete"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public Message<RoleMember> delete(@RequestParam("ids") List<String> ids,@CurrentUser UserInfo currentUser) {
_logger.debug("-delete ids : {}" , ids);
if (roleMemberService.deleteBatch(ids)) {
return new Message<>(Message.SUCCESS);
} else {
return new Message<>(Message.FAIL);
}
}
}

View File

@@ -0,0 +1,134 @@
package org.dromara.maxkey.web.permissions.contorller;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.dromara.maxkey.authn.annotation.CurrentUser;
import org.dromara.maxkey.constants.ConstsAct;
import org.dromara.maxkey.constants.ConstsActResult;
import org.dromara.maxkey.constants.ConstsEntryType;
import org.dromara.maxkey.entity.Message;
import org.dromara.maxkey.entity.idm.UserInfo;
import org.dromara.maxkey.entity.permissions.Roles;
import org.dromara.maxkey.persistence.service.HistorySystemLogsService;
import org.dromara.maxkey.persistence.service.RolesService;
import org.dromara.mybatis.jpa.entity.JpaPageResults;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value={"/permissions/roles"})
public class RolesController {
static final Logger _logger = LoggerFactory.getLogger(RolesController.class);
@Autowired
RolesService rolesService;
@Autowired
HistorySystemLogsService systemLog;
@GetMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
public Message<JpaPageResults<Roles>> fetch(
@ModelAttribute Roles role,
@CurrentUser UserInfo currentUser) {
_logger.debug("fetch {}",role);
role.setInstId(currentUser.getInstId());
return new Message<>(rolesService.fetchPageResults(role));
}
@GetMapping(value={"/query"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public Message<Roles> query(@ModelAttribute Roles role,@CurrentUser UserInfo currentUser) {
_logger.debug("-query : {}" , role);
role.setInstId(currentUser.getInstId());
if (!rolesService.query(role).isEmpty()) {
return new Message<>(Message.SUCCESS);
} else {
return new Message<>(Message.FAIL);
}
}
@GetMapping(value = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
public Message<Roles> get(@PathVariable("id") String id,@CurrentUser UserInfo currentUser) {
Roles role=rolesService.get(id);
return new Message<>(role);
}
@PostMapping(value={"/add"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public Message<Roles> insert(@RequestBody Roles role,@CurrentUser UserInfo currentUser) {
_logger.debug("-Add : {}" , role);
role.setCreatedBy(currentUser.getId());
role.setInstId(currentUser.getInstId());
role.setId(role.generateId());
if(StringUtils.isBlank(role.getRoleCode())) {
role.setRoleCode(role.getId());
}
if (rolesService.insert(role)) {
rolesService.refreshDynamicRoles(role);
systemLog.insert(
ConstsEntryType.ROLE,
role,
ConstsAct.CREATE,
ConstsActResult.SUCCESS,
currentUser);
return new Message<>(Message.SUCCESS);
} else {
return new Message<>(Message.FAIL);
}
}
@PutMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public Message<Roles> update(@RequestBody Roles role,@CurrentUser UserInfo currentUser) {
_logger.debug("-update group : {}" , role);
if(role.getId().equalsIgnoreCase("ROLE_ALL_USER")) {
role.setDefaultAllUser();
}
role.setModifiedBy(currentUser.getId());
role.setInstId(currentUser.getInstId());
if (rolesService.update(role)) {
rolesService.refreshDynamicRoles(role);
systemLog.insert(
ConstsEntryType.ROLE,
role,
ConstsAct.UPDATE,
ConstsActResult.SUCCESS,
currentUser);
return new Message<>(Message.SUCCESS);
} else {
return new Message<>(Message.FAIL);
}
}
@DeleteMapping(value={"/delete"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public Message<Roles> delete(@RequestParam("ids") List<String> ids,@CurrentUser UserInfo currentUser) {
_logger.debug("-delete ids : {}" , ids);
ids.removeAll(Arrays.asList("ROLE_ALL_USER","ROLE_ADMINISTRATORS","-1"));
if (rolesService.deleteBatch(ids)) {
systemLog.insert(
ConstsEntryType.ROLE,
ids,
ConstsAct.DELETE,
ConstsActResult.SUCCESS,
currentUser);
return new Message<>(Message.SUCCESS);
} else {
return new Message<>(Message.FAIL);
}
}
}