This commit is contained in:
MaxKey 2021-07-18 18:49:32 +08:00
parent 7377112465
commit 27f1243402
46 changed files with 747 additions and 141 deletions

View File

@ -39,7 +39,7 @@ public class ExcelImport extends JpaBaseEntity {
@Id
@Column
@GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
String id;
@JsonIgnore

View File

@ -0,0 +1,213 @@
package org.maxkey.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.apache.mybatis.jpa.persistence.JpaBaseEntity;
@Entity
@Table(name = "MXK_HISTORY_CONNECTOR")
public class HistoryConnector extends JpaBaseEntity implements Serializable{
/**
*
*/
private static final long serialVersionUID = 3465459057253994386L;
@Id
@Column
@GeneratedValue(strategy=GenerationType.AUTO,generator="snowflakeid")
String id;
@Column
String conName;
@Column
String conType;
@Column
String sourceId;
@Column
String sourceName;
@Column
String objectId;
@Column
String objectName;
@Column
String description;
String syncTime;
@Column
String result;
String startDate;
String endDate;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getConName() {
return conName;
}
public void setConName(String conName) {
this.conName = conName;
}
public String getConType() {
return conType;
}
public void setConType(String conType) {
this.conType = conType;
}
public String getSourceId() {
return sourceId;
}
public void setSourceId(String sourceId) {
this.sourceId = sourceId;
}
public String getSourceName() {
return sourceName;
}
public void setSourceName(String sourceName) {
this.sourceName = sourceName;
}
public String getObjectId() {
return objectId;
}
public void setObjectId(String objectId) {
this.objectId = objectId;
}
public String getObjectName() {
return objectName;
}
public void setObjectName(String objectName) {
this.objectName = objectName;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getSyncTime() {
return syncTime;
}
public void setSyncTime(String syncTime) {
this.syncTime = syncTime;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("HistoryConnector [id=");
builder.append(id);
builder.append(", conName=");
builder.append(conName);
builder.append(", conType=");
builder.append(conType);
builder.append(", sourceId=");
builder.append(sourceId);
builder.append(", sourceName=");
builder.append(sourceName);
builder.append(", objectId=");
builder.append(objectId);
builder.append(", objectName=");
builder.append(objectName);
builder.append(", description=");
builder.append(description);
builder.append(", syncTime=");
builder.append(syncTime);
builder.append(", result=");
builder.append(result);
builder.append(", startDate=");
builder.append(startDate);
builder.append(", endDate=");
builder.append(endDate);
builder.append("]");
return builder.toString();
}
}

View File

@ -40,7 +40,7 @@ public class PasswordPolicy extends JpaBaseEntity implements java.io.Serializabl
private static final long serialVersionUID = -4797776994287829182L;
@Id
@Column
@GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
String id;
/**
* minimum password lengths

View File

@ -57,7 +57,7 @@ public class Apps extends JpaBaseEntity implements Serializable {
@Id
@Column
@GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
protected String id;
/**
*

View File

@ -37,7 +37,7 @@ public class AppsAdapters extends JpaBaseEntity implements Serializable {
@Id
@Column
@GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
protected String id;
/**
*

View File

@ -34,7 +34,7 @@ public class AppsCasDetails extends Apps {
private static final long serialVersionUID = -4272290765948322084L;
@Id
@Column
@GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
private String id;
@Column
private String service;

View File

@ -37,7 +37,7 @@ public class AppsFormBasedDetails extends Apps {
private static final long serialVersionUID = 563313247706861431L;
@Id
@Column
@GeneratedValue(strategy=GenerationType.AUTO,generator="uuid")
@GeneratedValue(strategy=GenerationType.AUTO,generator="snowflakeid")
protected String id;
@Column

View File

@ -42,7 +42,7 @@ public class AppsJwtDetails extends Apps {
@Id
@Column
@GeneratedValue(strategy=GenerationType.AUTO,generator="uuid")
@GeneratedValue(strategy=GenerationType.AUTO,generator="snowflakeid")
protected String id;
/**
*

View File

@ -42,7 +42,7 @@ public class AppsSAML20Details extends Apps {
private static final long serialVersionUID = -291159876339333345L;
@Id
@Column
@GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
protected String id;
@Column
private String certIssuer;

View File

@ -42,7 +42,7 @@ public class AppsTokenBasedDetails extends Apps {
@Id
@Column
@GeneratedValue(strategy=GenerationType.AUTO,generator="uuid")
@GeneratedValue(strategy=GenerationType.AUTO,generator="snowflakeid")
protected String id;
/**
*

View File

@ -0,0 +1,30 @@
/*
* Copyright [2020] [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.maxkey.persistence.mapper;
import org.apache.mybatis.jpa.persistence.IJpaBaseMapper;
import org.maxkey.entity.HistoryConnector;
/**
* @author Crystal.sea
*
*/
public interface HistoryConnectorMapper extends IJpaBaseMapper<HistoryConnector> {
}

View File

@ -0,0 +1,40 @@
/*
* 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.maxkey.persistence.service;
import org.apache.mybatis.jpa.persistence.JpaBaseService;
import org.maxkey.entity.HistoryConnector;
import org.maxkey.persistence.mapper.HistoryConnectorMapper;
import org.springframework.stereotype.Repository;
@Repository
public class HistoryConnectorService extends JpaBaseService<HistoryConnector>{
public HistoryConnectorService() {
super(HistoryConnectorMapper.class);
}
/* (non-Javadoc)
* @see com.connsec.db.service.BaseService#getMapper()
*/
@Override
public HistoryConnectorMapper getMapper() {
// TODO Auto-generated method stub
return (HistoryConnectorMapper)super.getMapper();
}
}

View File

@ -45,11 +45,7 @@
u.jobtitle,
u.joblevel,
u.createdby,
u.createddate,
u.modifiedby,
u.modifieddate,
u.status
from
@ -89,16 +85,12 @@
u.jobtitle,
u.joblevel,
u.createdby,
u.createddate,
u.modifiedby,
u.modifieddate,
gm.createddate,
u.status
from
mxk_userinfo u,
`mxk_groups` g,
mxk_groups g,
mxk_group_member gm
where 1 = 1
<if test="groupId != null and groupId != ''">

View File

@ -0,0 +1,62 @@
<?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.maxkey.persistence.mapper.HistoryConnectorMapper" >
<sql id="where_statement">
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="conName != null and conName != ''">
and conName = #{conName}
</if>
<if test="conType != null and conType != ''">
and conType = #{conType}
</if>
<if test="sourceId != null and sourceId != ''">
and sourceId = #{sourceId}
</if>
<if test="sourceName != null and sourceName != ''">
and sourceName = #{sourceName}
</if>
<if test="objectId != null and objectId != ''">
and objectId = #{objectId}
</if>
<if test="objectName != null and objectName != ''">
and objectname = #{objectName}
</if>
<if test="result != null and result != ''">
and result = #{result}
</if>
<if test="startDate != null and startDate != ''">
and synctime >= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
and #{endDate} >= synctime
</if>
<if test="description != null and description != ''">
and description like '%${description}%'
</if>
</sql>
<select id="queryPageResults" parameterType="HistoryConnector" resultType="HistoryConnector">
select
*
from mxk_history_connector
where 1 = 1
<include refid="where_statement"/>
order by synctime desc
</select>
</mapper>

View File

@ -45,11 +45,7 @@
u.jobtitle,
u.joblevel,
u.createdby,
u.createddate,
u.modifiedby,
u.modifieddate,
u.status
from
@ -90,10 +86,7 @@
u.joblevel,
u.createdby,
u.createddate,
u.modifiedby,
u.modifieddate,
rm.createddate,
u.status
from

View File

@ -0,0 +1,78 @@
/*
* 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.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.entity.HistoryConnector;
import org.maxkey.persistence.service.HistoryConnectorService;
import org.maxkey.util.DateUtils;
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.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 连接器日志查询
*
* @author Crystal.sea
*
*/
@Controller
@RequestMapping(value={"/historys"})
public class ConnectorHistoryController {
final static Logger _logger = LoggerFactory.getLogger(ConnectorHistoryController.class);
@Autowired
@Qualifier("historyConnectorService")
HistoryConnectorService historyConnectorService;
@RequestMapping(value={"/connectorHistoryList"})
public String historySynchronizerList(){
return "historys/connectorHistoryList";
}
/**
* @param historySynchronizer
* @return
*/
@RequestMapping(value={"/connectorHistoryList/grid"})
@ResponseBody
public JpaPageResults<HistoryConnector> historySynchronizerGrid(@ModelAttribute("historyConnector") HistoryConnector historyConnector){
_logger.debug("historys/historyConnector/grid/ "+historyConnector);
return historyConnectorService.queryPageResults(historyConnector);
}
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DateUtils.FORMAT_DATE_HH_MM_SS);
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
}

View File

@ -178,7 +178,7 @@ maxkey.maxkey.uri=https://${maxkey.server.domain}/maxkey
#InMemory 0 , Redis 2
maxkey.server.persistence=0
#identity
maxkey.identity.kafkasupport=false
maxkey.identity.kafkasupport=true
############################################################################
#Login configuration #

View File

@ -525,6 +525,17 @@ log.synchronizer.objectType=\u5BF9\u8C61\u540D\u79F0
log.synchronizer.objectName=\u5BF9\u8C61\u540D\u79F0
log.synchronizer.syncTime=\u540C\u6B65\u65F6\u95F4
log.synchronizer.result=\u7ED3\u679C
#connector
log.connector.id=\u7F16\u53F7
log.connector.conName=\u8FDE\u63A5\u5668
log.connector.conType=\u7C7B\u578B
log.connector.sourceId=\u6E90\u7F16\u7801
log.connector.sourceName=\u6E90\u540D\u79F0
log.connector.objectId=\u5BF9\u8C61\u7F16\u53F7
log.connector.objectName=\u5BF9\u8C61\u540D\u79F0
log.connector.description=\u63CF\u8FF0
log.connector.syncTime=\u65F6\u95F4
log.connector.result=\u7ED3\u679C
#message
message.action.insert.success=\u65b0\u589e\u64cd\u4f5c\u6210\u529f
@ -559,8 +570,9 @@ navs.conf.passwordpolicy=\u5bc6\u7801\u7b56\u7565
navs.audit=\u65e5\u5fd7\u5ba1\u8ba1
navs.audit.login=\u767b\u5f55\u65e5\u5fd7
navs.audit.loginapps=\u8bbf\u95ee\u65e5\u5fd7
navs.audit.operate=\u64cd\u4f5c\u65e5\u5fd7
navs.audit.operate=\u7BA1\u7406\u65e5\u5fd7
navs.audit.synchronizer=\u540C\u6B65\u65E5\u5FD7
navs.audit.connector=\u8FDE\u63A5\u65E5\u5FD7
navs.roles=\u89d2\u8272\u7ba1\u7406
navs.role.member=\u89d2\u8272\u7528\u6237
navs.role.permissions=\u89d2\u8272\u6743\u9650\u7ba1\u7406

View File

@ -538,6 +538,18 @@ log.synchronizer.objectName=ObjectName
log.synchronizer.syncTime=SyncTime
log.synchronizer.result=Result
log.connector.id=Id
log.connector.conName=Connector
log.connector.conType=Type
log.connector.sourceId=SourceId
log.connector.sourceName=SourceName
log.connector.objectId=ObjectId
log.connector.objectName=ObjectName
log.connector.description=Description
log.connector.syncTime=SyncTime
log.connector.result=Result
message.action.insert.success=Insert Success
message.action.insert.error=Insert Error
message.action.update.success=Update Success
@ -571,8 +583,9 @@ navs.conf.passwordpolicy=PasswordPolicy
navs.audit=Audit
navs.audit.login=Login
navs.audit.loginapps=LoginApps
navs.audit.operate=Operate
navs.audit.operate=Management
navs.audit.synchronizer=Synchronizer
navs.audit.connector=Connector
navs.roles=Roles
navs.role.member=RoleMember
navs.role.permissions=Permissions

View File

@ -444,7 +444,13 @@ resource.resourceIcon=\u56fe\u6807
resource.resourceUrl=\u8d44\u6e90\u5730\u5740
resource.resourceAction=\u52a8\u4f5c
resource.resourceStyle=\u6837\u5f0f
#account
account.username=\u7528\u6237\u540d
account.displayName=\u7528\u6237\u59d3\u540d
account.appId=\u5e94\u7528\u7f16\u53f7
account.appName=\u5e94\u7528\u540d\u79f0
account.relatedUsername=\u7528\u6237\u8d26\u53f7
account.relatedPassword=\u8d26\u53f7\u5bc6\u7801
#synchronizers
synchronizers.id=\u7F16\u53F7
synchronizers.name=\u540C\u6B65\u5668\u540D\u79F0
@ -462,15 +468,7 @@ synchronizers.trustStore=\u8BC1\u4E66\u8DEF\u5F84
synchronizers.trustStorePassword=\u8BC1\u4E66\u5BC6\u94A5
synchronizers.resumeTime=\u6062\u590D\u65F6\u95F4
synchronizers.suspendTime=\u6302\u8D77\u65F6\u95F4
#account
account.username=\u7528\u6237\u540d
account.displayName=\u7528\u6237\u59d3\u540d
account.appId=\u5e94\u7528\u7f16\u53f7
account.appName=\u5e94\u7528\u540d\u79f0
account.relatedUsername=\u7528\u6237\u8d26\u53f7
account.relatedPassword=\u8d26\u53f7\u5bc6\u7801
#button
button.text.action=\u8bbf\u95ee
button.text.visit=\u8bbf\u95ee
button.text.save=\u4fdd\u5b58
@ -491,7 +489,7 @@ button.text.hidden=\u9690\u85cf
button.text.import=\u5bfc\u5165
button.text.adjunct=\u517c\u4efb\u673a\u6784
button.text.sync=\u540C\u6B65
#history login
log.loginhistory.id=\u7f16\u53f7
log.loginhistory.sessionId=\u4f1a\u8bdd
log.loginhistory.username=\u767b\u5f55\u540d
@ -508,7 +506,7 @@ log.loginhistory.application=\u5e94\u7528
log.loginhistory.loginUrl=\u767b\u5f55\u5730\u5740
log.loginhistory.code=\u4ee3\u7801
log.loginhistory.rpUserInfo=\u7b2c\u4e09\u65b9
#history login apps
log.loginappshistory.id=\u7f16\u53f7
log.loginappshistory.sessionId=\u4f1a\u8bdd
log.loginappshistory.uid=\u7528\u6237\u7f16\u53f7
@ -517,14 +515,14 @@ log.loginappshistory.displayName=\u7528\u6237\u540d
log.loginappshistory.appId=\u5e94\u7528\u7f16\u53f7
log.loginappshistory.appName=\u5e94\u7528\u540d\u79f0
log.loginappshistory.loginTime=\u767b\u5f55\u65f6\u95f4
#history operate
log.operate.servicename=\u670d\u52a1
log.operate.message=\u6d88\u606f
log.operate.content=\u5185\u5bb9
log.operate.messageType=\u6d88\u606f\u7c7b\u578b
log.operate.operateType=\u64cd\u4f5c\u7c7b\u578b
log.operate.username=\u64cd\u4f5c\u4eba
#history synchronizer
log.synchronizer.id=\u7F16\u53F7
log.synchronizer.syncId=\u540C\u6B65\u5668\u7F16\u53F7
log.synchronizer.syncName=\u540C\u6B65\u5668
@ -533,6 +531,17 @@ log.synchronizer.objectType=\u5BF9\u8C61\u540D\u79F0
log.synchronizer.objectName=\u5BF9\u8C61\u540D\u79F0
log.synchronizer.syncTime=\u540C\u6B65\u65F6\u95F4
log.synchronizer.result=\u7ED3\u679C
#history connector
log.connector.id=\u7F16\u53F7
log.connector.conName=\u8FDE\u63A5\u5668
log.connector.conType=\u7C7B\u578B
log.connector.sourceId=\u6E90\u7F16\u7801
log.connector.sourceName=\u6E90\u540D\u79F0
log.connector.objectId=\u5BF9\u8C61\u7F16\u53F7
log.connector.objectName=\u5BF9\u8C61\u540D\u79F0
log.connector.description=\u63CF\u8FF0
log.connector.syncTime=\u65F6\u95F4
log.connector.result=\u7ED3\u679C
message.action.insert.success=\u65b0\u589e\u64cd\u4f5c\u6210\u529f
message.action.insert.error=\u65b0\u589e\u64cd\u4f5c\u5931\u8d25
@ -548,11 +557,10 @@ import.file.select=\u9009\u62e9\u5bfc\u5165\u6587\u4ef6
import.template.download=\u4e0b\u8f7d\u6a21\u677f
import.update.exist=\u66f4\u65b0\u5b58\u5728\u6570\u636e
import.tip=\u63d0\u793a\uff1a\u4ec5\u5141\u8bb8\u5bfc\u5165\u201cxls\u201d\u6216\u8005\u201cxlsx\u201d\u683c\u5f0f\u7684\u6587\u4ef6
#Notices
notices.title=\u6807\u9898
notices.content=\u5185\u5BB9
#navs
navs.system=\u7cfb\u7edf
navs.home=\u9996\u9875
navs.orgs=\u673a\u6784\u7ba1\u7406
@ -567,8 +575,9 @@ navs.conf.passwordpolicy=\u5bc6\u7801\u7b56\u7565
navs.audit=\u65e5\u5fd7\u5ba1\u8ba1
navs.audit.login=\u767b\u5f55\u65e5\u5fd7
navs.audit.loginapps=\u8bbf\u95ee\u65e5\u5fd7
navs.audit.operate=\u64cd\u4f5c\u65e5\u5fd7
navs.audit.operate=\u7BA1\u7406\u65e5\u5fd7
navs.audit.synchronizer=\u540C\u6B65\u65E5\u5FD7
navs.audit.connector=\u8FDE\u63A5\u65E5\u5FD7
navs.roles=\u89d2\u8272\u7ba1\u7406
navs.role.member=\u89d2\u8272\u7528\u6237
navs.role.permissions=\u89d2\u8272\u6743\u9650\u7ba1\u7406

View File

@ -26,7 +26,7 @@
<td colspan=4>
<input class="button" id="status" type="hidden" name="status" value="1"/>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -26,7 +26,7 @@
<tr>
<td colspan=4>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>

View File

@ -62,7 +62,7 @@ $(function(){
<td colspan=4>
<input class="button" id="status" type="hidden" name="status" value="1"/>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -78,7 +78,7 @@ $(function(){
<tr>
<td colspan=4>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>

View File

@ -103,7 +103,7 @@ $(function(){
<td colspan =4>
<input class="button" id="status" type="hidden" name="status" value="1"/>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -109,7 +109,7 @@ $(function(){
</tbody>
</table>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</form>
</body>
</html>

View File

@ -135,7 +135,7 @@ $(function(){
<td colspan =4>
<input id="status" type="hidden" name="status" value="1"/>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -125,7 +125,7 @@ $(function(){
<tr>
<td colspan =4>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -78,7 +78,7 @@
<td colspan =4>
<input class="button" id="status" type="hidden" name="status" value="1"/>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -81,7 +81,7 @@
<tr>
<td colspan =4>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -207,7 +207,7 @@
<td colspan =4>
<input id="status" type="hidden" name="status" value="1"/>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -210,7 +210,7 @@
</tbody>
</table>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</form>
</body>
</html>

View File

@ -188,7 +188,7 @@
<td colspan =4>
<input id="status" type="hidden" name="status" value="1"/>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -201,7 +201,7 @@
<tr>
<td colspan =4>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -78,7 +78,7 @@
<td colspan =4>
<input class="button" id="status" type="hidden" name="status" value="1"/>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -81,7 +81,7 @@
<tr>
<td colspan =4>
<input class="button btn btn-primary mr-3" id="submitBtn" type="submit" value="<@locale code="button.text.save" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.cancel" />"/>
<input class="button btn btn-secondary mr-3" id="backBtn" type="button" value="<@locale code="button.text.close" />"/>
</td>
</tr>
</tbody>

View File

@ -10,7 +10,14 @@
}
</style>
<script type="text/javascript">
function genderFormatter(value, row, index){
if(value==1){
return '<@locale code="userinfo.gender.female" />';
}else{
return '<@locale code="userinfo.gender.male" />';
}
};
function afterSubmit(data){
//$("#list").trigger('reloadGrid');
}
@ -89,11 +96,11 @@
<th data-checkbox="true"></th>
<th data-sortable="true" data-field="id" data-visible="false">Id</th>
<th data-field="username"><@locale code="userinfo.username"/></th>
<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
<th data-field="createdBy"><@locale code="common.text.createdby"/></th>
<th data-field="createdDate"><@locale code="common.text.createddate"/></th>
<th data-field="modifiedBy"><@locale code="common.text.modifiedby"/></th>
<th data-field="modifiedDate"><@locale code="common.text.modifieddate"/></th>
<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
<th data-field="gender" data-formatter="genderFormatter" ><@locale code="userinfo.gender"/></th>
<th data-field="userType"><@locale code="userinfo.userType"/></th>
<th data-field="jobTitle"><@locale code="userinfo.jobTitle"/></th>
<th data-field="department"><@locale code="userinfo.department"/></th>
</tr>
</thead>

View File

@ -4,7 +4,14 @@
<#include "../layout/header.ftl"/>
<#include "../layout/common.cssjs.ftl"/>
<script type="text/javascript">
function genderFormatter(value, row, index){
if(value==1){
return '<@locale code="userinfo.gender.female" />';
}else{
return '<@locale code="userinfo.gender.male" />';
}
};
function afterSubmit(data){
$("#list").trigger('reloadGrid');
}
@ -96,21 +103,16 @@
<form id="advanced_search_form">
<table class="datatable">
<tr>
<td width="120px"><@locale code="apps.protocol"/></td>
<td width="120px"><@locale code="userinfo.username" /></td>
<td width="360px">
<input class="form-control" type="text" id="username" name="username" title="" value=""/>
</td>
<td width="120px"><@locale code="apps.protocol"/></td>
<td width="360px">
</td>
</tr>
<tr>
<td width="120px"><@locale code="apps.protocol"/></td>
<td width="360px">
</td>
<td width="120px"><@locale code="apps.protocol"/></td>
<td width="120px"><@locale code="userinfo.displayName" /></td>
<td width="360px">
<input class="form-control" type="text" id="displayName" name="displayName" title="" value=""/>
</td>
</tr>
</table>
</form>
</div>
@ -135,11 +137,11 @@
<th data-sortable="true" data-field="id" data-visible="false">Id</th>
<th data-field="username"><@locale code="userinfo.username"/></th>
<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
<th data-field="createdBy"><@locale code="common.text.createdby"/></th>
<th data-field="gender" data-formatter="genderFormatter" ><@locale code="userinfo.gender"/></th>
<th data-field="userType"><@locale code="userinfo.userType"/></th>
<th data-field="jobTitle"><@locale code="userinfo.jobTitle"/></th>
<th data-field="department"><@locale code="userinfo.department"/></th>
<th data-field="createdDate"><@locale code="common.text.createddate"/></th>
<th data-field="modifiedBy"><@locale code="common.text.modifiedby"/></th>
<th data-field="modifiedDate"><@locale code="common.text.modifieddate"/></th>
</tr>
</thead>
</table>

View File

@ -0,0 +1,142 @@
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<#include "../layout/header.ftl"/>
<#include "../layout/common.cssjs.ftl"/>
<script type="text/javascript">
</script>
</head>
<body>
<div class="app header-default side-nav-dark">
<div class="layout">
<div class="header navbar">
<#include "../layout/top.ftl"/>
</div>
<div class="col-md-3 sidebar-nav side-nav" >
<#include "../layout/sidenav.ftl"/>
</div>
<div class="page-container">
<div class="main-content">
<div class="container-fluid">
<div class="breadcrumb-wrapper row">
<div class="col-12 col-lg-3 col-md-6">
<h4 class="page-title"><@locale code="navs.audit.connector"/></h4>
</div>
<div class="col-12 col-lg-9 col-md-6">
<ol class="breadcrumb float-right">
<li><a href="<@base/>/main"><@locale code="navs.home"/></a></li>
<li class="inactive" >/ <@locale code="navs.audit"/></li>
<li class="active">/ <@locale code="navs.audit.connector"/></li>
</ol>
</div>
</div>
</div>
<div class="container-fluid">
<div class="content-wrapper row">
<div class="col-12 grid-margin">
<div class="card">
<div class="card-body">
<div id="tool_box">
<table class="table table-bordered">
<tr>
<td width="120px">
<@locale code="log.connector.id"/>:
</td>
<td width="375px">
<form id="basic_search_form">
<input class="form-control" name="id" type="text" style ="width:150px;float:left;">
<input class="button btn btn-primary mr-3" id="searchBtn" type="button" size="50" value="<@locale code="button.text.search"/>">
<input class="button btn btn-secondary" id="advancedSearchExpandBtn" type="button" size="50" value="<@locale code="button.text.expandsearch"/>" expandValue="<@locale code="button.text.expandsearch"/>" collapseValue="<@locale code="button.text.collapsesearch"/>">
</form>
</td>
<td colspan="2">
<div id="tool_box_right">
</div>
</td>
</tr>
</table>
</div>
<div id="advanced_search">
<form id="advanced_search_form">
<table class="table table-bordered">
<tr>
<td width="120px"><@locale code="log.connector.objectName"/></td>
<td width="360px">
<input class="form-control" name="objectName" type="text" >
</td>
<td width="120px"><@locale code="log.connector.result"/></td>
<td width="360px">
<input class="form-control" type="text" id="result" name="result" title="" value=""/>
</td>
</tr>
<tr>
<td width="120px"><@locale code="common.text.startdate"/></td>
<td width="360px">
<input class="form-control datetimepicker" type="text" id="startDate" name="startDate" title="" value=""/>
</td>
<td width="120px"><@locale code="common.text.enddate"/></td>
<td width="360px">
<input class="form-control datetimepicker" type="text" id="endDate" name="endDate" title="" value=""/>
</td>
</tr>
</table>
</form>
</div>
<table data-url="<@base />/historys/connectorHistoryList/grid"
id="datagrid"
data-toggle="table"
data-classes="table table-bordered table-hover table-striped"
data-pagination="true"
data-total-field="records"
data-page-list="[10, 25, 50, 100]"
data-search="false"
data-locale="zh-CN"
data-query-params="dataGridQueryParams"
data-query-params-type="pageSize"
data-side-pagination="server">
<thead>
<tr>
<th data-sortable="true" data-field="id" data-visible="false"><@locale code="log.connector.id" /></th>
<th data-field="conName" ><@locale code="log.connector.conName" /></th>
<th data-field="conType" ><@locale code="log.connector.conType" /></th>
<th data-field="sourceId" ><@locale code="log.connector.sourceId" /></th>
<th data-field="syncName" ><@locale code="log.connector.sourceName" /></th>
<th data-field="sourceName" ><@locale code="log.connector.objectId" /></th>
<th data-field="objectName" ><@locale code="log.connector.objectName" /></th>
<th data-field="syncTime" ><@locale code="log.connector.syncTime" /></th>
<th data-field="result" ><@locale code="log.connector.result" /></th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
<footer class="content-footer">
<#include "../layout/footer.ftl"/>
</footer>
</div>
</div>
</div>
<div id="preloader">
<div class="loader" id="loader-1"></div>
</div>
</body>
</html>

View File

@ -148,6 +148,12 @@
<@locale code="navs.audit.synchronizer"/>
<span class="fa fa-fw fa-eraser"></span>
</a>
</li>
<li>
<a class="side-nav-menu" href="<@base />/historys/connectorHistoryList/">
<@locale code="navs.audit.connector"/>
<span class="fa fa-fw fa-eraser"></span>
</a>
</li>
<li>
<a class="side-nav-menu" href="<@base />/historys/systemLogsList/">

View File

@ -10,7 +10,14 @@
}
</style>
<script type="text/javascript">
function genderFormatter(value, row, index){
if(value==1){
return '<@locale code="userinfo.gender.female" />';
}else{
return '<@locale code="userinfo.gender.male" />';
}
};
function afterSubmit(data){
//$("#list").trigger('reloadGrid');
}
@ -89,12 +96,11 @@
<th data-checkbox="true"></th>
<th data-sortable="true" data-field="id" data-visible="false">Id</th>
<th data-field="username"><@locale code="userinfo.username"/></th>
<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
<th data-field="createdBy"><@locale code="common.text.createdby"/></th>
<th data-field="createdDate"><@locale code="common.text.createddate"/></th>
<th data-field="modifiedBy"><@locale code="common.text.modifiedby"/></th>
<th data-field="modifiedDate"><@locale code="common.text.modifieddate"/></th>
<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
<th data-field="gender" data-formatter="genderFormatter" ><@locale code="userinfo.gender"/></th>
<th data-field="userType"><@locale code="userinfo.userType"/></th>
<th data-field="jobTitle"><@locale code="userinfo.jobTitle"/></th>
<th data-field="department"><@locale code="userinfo.department"/></th>
</tr>
</thead>
</table>

View File

@ -4,7 +4,14 @@
<#include "../layout/header.ftl"/>
<#include "../layout/common.cssjs.ftl"/>
<script type="text/javascript">
function genderFormatter(value, row, index){
if(value==1){
return '<@locale code="userinfo.gender.female" />';
}else{
return '<@locale code="userinfo.gender.male" />';
}
};
function afterSubmit(data){
$("#list").trigger('reloadGrid');
}
@ -95,55 +102,49 @@
<div id="advanced_search">
<form id="advanced_search_form">
<table class="datatable">
<tr>
<td width="120px"><@locale code="apps.protocol"/></td>
<td width="360px">
</td>
<td width="120px"><@locale code="apps.protocol"/></td>
<td width="360px">
</td>
</tr>
<tr>
<td width="120px"><@locale code="apps.protocol"/></td>
<td width="360px">
</td>
<td width="120px"><@locale code="apps.protocol"/></td>
<td width="360px">
</td>
</tr>
</table>
<tr>
<td width="120px"><@locale code="userinfo.username" /></td>
<td width="360px">
<input class="form-control" type="text" id="username" name="username" title="" value=""/>
</td>
<td width="120px"><@locale code="userinfo.displayName" /></td>
<td width="360px">
<input class="form-control" type="text" id="displayName" name="displayName" title="" value=""/>
</td>
</tr>
</table>
</form>
</div>
<div class="mainwrap" id="main">
<table data-url="<@base/>/rolemembers/queryMemberInRole"
id="datagrid"
data-toggle="table"
data-classes="table table-bordered table-hover table-striped"
data-click-to-select="true"
data-pagination="true"
data-total-field="records"
data-page-list="[10, 25, 50, 100]"
data-search="false"
data-locale="zh-CN"
data-query-params="dataGridQueryParams"
data-query-params-type="pageSize"
data-side-pagination="server">
<thead>
<tr>
<th data-checkbox="true"></th>
<th data-sortable="true" data-field="id" data-visible="false">Id</th>
<th data-field="username"><@locale code="userinfo.username"/></th>
<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
<th data-field="createdBy"><@locale code="common.text.createdby"/></th>
<th data-field="createdDate"><@locale code="common.text.createddate"/></th>
<th data-field="modifiedBy"><@locale code="common.text.modifiedby"/></th>
<th data-field="modifiedDate"><@locale code="common.text.modifieddate"/></th>
</tr>
</thead>
</table>
<table data-url="<@base/>/rolemembers/queryMemberInRole"
id="datagrid"
data-toggle="table"
data-classes="table table-bordered table-hover table-striped"
data-click-to-select="true"
data-pagination="true"
data-total-field="records"
data-page-list="[10, 25, 50, 100]"
data-search="false"
data-locale="zh-CN"
data-query-params="dataGridQueryParams"
data-query-params-type="pageSize"
data-side-pagination="server">
<thead>
<tr>
<th data-checkbox="true"></th>
<th data-sortable="true" data-field="id" data-visible="false">Id</th>
<th data-field="username"><@locale code="userinfo.username"/></th>
<th data-field="displayName"><@locale code="userinfo.displayName"/></th>
<th data-field="gender" data-formatter="genderFormatter" ><@locale code="userinfo.gender"/></th>
<th data-field="userType"><@locale code="userinfo.userType"/></th>
<th data-field="jobTitle"><@locale code="userinfo.jobTitle"/></th>
<th data-field="department"><@locale code="userinfo.department"/></th>
<th data-field="createdDate"><@locale code="common.text.createddate"/></th>
</tr>
</thead>
</table>
</div>
</div>
</div>

View File

@ -179,7 +179,7 @@ maxkey.server.management.uri=${maxkey.server.name}:9521/maxkey-mgt/login
#InMemory 0 , Redis 2
maxkey.server.persistence=0
#identity
maxkey.identity.kafkasupport=false
maxkey.identity.kafkasupport=true
maxkey.app.issuer=CN=ConSec,CN=COM,CN=SH
############################################################################

View File

@ -281,6 +281,6 @@ navs.myprofile=\u6211\u7684\u8d44\u6599
navs.audit=\u5ba1\u8ba1
navs.audit.login=\u767b\u5f55\u65e5\u5fd7
navs.audit.signon=\u8bbf\u95ee\u65e5\u5fd7
navs.audit.operation=\u64cd\u4f5c\u65e5\u5fd7
navs.audit.operation=\u7BA1\u7406\u65e5\u5fd7
home.notices=\u901A\u77E5\u516C\u544A

View File

@ -282,5 +282,5 @@ navs.myprofile=My Profile
navs.audit=Audit
navs.audit.login=Login
navs.audit.signon=Sign-on
navs.audit.operation=Operation
navs.audit.operation=Management
home.notices=Notices

View File

@ -281,6 +281,6 @@ navs.myprofile=\u6211\u7684\u8d44\u6599
navs.audit=\u5ba1\u8ba1
navs.audit.login=\u767b\u5f55\u65e5\u5fd7
navs.audit.signon=\u8bbf\u95ee\u65e5\u5fd7
navs.audit.operation=\u64cd\u4f5c\u65e5\u5fd7
navs.audit.operation=\u7BA1\u7406\u65e5\u5fd7
home.notices=\u901A\u77E5\u516C\u544A