添加数据源管控功能SQL脚本和领域模型类

This commit is contained in:
interestinglife 2021-08-30 20:22:45 +08:00
parent 5162fb6498
commit 773dc8173e
5 changed files with 169 additions and 5 deletions

View File

@ -0,0 +1,151 @@
/*
* Copyright 2018 datagear.tech
*
* Licensed under the LGPLv3 license:
* http://www.gnu.org/licenses/lgpl-3.0.html
*/
package org.datagear.management.domain;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
/**
* 数据源管控
*
* @author datagear@163.com
*
*/
public class SchemaGuard extends AbstractStringIdEntity
{
private static final long serialVersionUID = 1L;
/** 匹配模式 */
private String pattern;
/** 是否允许true 允许false 禁止 */
private boolean permitted;
/** 优先级 */
private int priority;
/** 是否启用 */
private boolean enabled = true;
/** 创建时间 */
private Date createTime;
public SchemaGuard()
{
super();
}
public SchemaGuard(String id)
{
super(id);
}
public SchemaGuard(String id, String pattern, boolean permitted, int priority)
{
super(id);
this.pattern = pattern;
this.permitted = permitted;
this.priority = priority;
this.enabled = true;
this.createTime = new Date();
}
public String getPattern()
{
return pattern;
}
public void setPattern(String pattern)
{
this.pattern = pattern;
}
public boolean isPermitted()
{
return permitted;
}
public void setPermitted(boolean permitted)
{
this.permitted = permitted;
}
public int getPriority()
{
return priority;
}
public void setPriority(int priority)
{
this.priority = priority;
}
public boolean isEnabled()
{
return enabled;
}
public void setEnabled(boolean enabled)
{
this.enabled = enabled;
}
public Date getCreateTime()
{
return createTime;
}
public void setCreateTime(Date createTime)
{
this.createTime = createTime;
}
/**
* {@linkplain SchemaGuard}列表按照优先级排序{@linkplain SchemaGuard#getPriority()}越大越靠前{@linkplain SchemaGuard#getCreateTime()}越新越靠前
*
* @param schemaGuards
*/
public void sortByPriority(List<? extends SchemaGuard> schemaGuards)
{
if (schemaGuards == null)
return;
Collections.sort(schemaGuards, SCHEMA_GUARD_PRIORITY_COMPARATOR);
}
private static final Comparator<SchemaGuard> SCHEMA_GUARD_PRIORITY_COMPARATOR = new Comparator<SchemaGuard>()
{
@Override
public int compare(SchemaGuard o1, SchemaGuard o2)
{
// 优先级越高越靠前
int p = Integer.valueOf(o2.priority).compareTo(o1.priority);
if (p == 0)
{
// 越新创建越靠前
Date o1d = o1.createTime;
Date o2d = o2.createTime;
if (o1d == null && o2d == null)
return 0;
else if (o1d == null)
return 1;
else if (o2d == null)
return -1;
else
return o2d.compareTo(o1d);
}
else
return p;
}
};
}

View File

@ -835,3 +835,16 @@ DROP FUNCTION DATAGEAR_REPLACE;
ALTER TABLE DATAGEAR_AUTHORIZATION DROP COLUMN AUTH_CREATE_USER_ID;
--2021-08-30
--
CREATE TABLE DATAGEAR_SCHEMA_GUARD
(
SG_ID VARCHAR(50) NOT NULL,
SG_PATTERN VARCHAR(200) NOT NULL,
SG_PERMITTED VARCHAR(20) NOT NULL,
SG_PRIORITY INTEGER NOT NULL,
SG_ENABLED VARCHAR(20) NOT NULL,
SG_CREATE_TIME TIMESTAMP,
PRIMARY KEY (SG_ID)
);

View File

@ -253,7 +253,7 @@ main.manageDriverEntity=数据源驱动程序
main.manageUser=用户
main.addUser=添加用户
main.manageRole=角色
main.manageSchemaControl=数据源管控
main.manageSchemaGuard=数据源管控
main.manageChartPlugin=图表插件
main.uploadChartPlugin=上传图表插件
main.manageDataSetResDirectory=数据集资源目录

View File

@ -253,7 +253,7 @@ main.manageDriverEntity=Data source driver
main.manageUser=User
main.addUser=Add user
main.manageRole=Role
main.manageSchemaControl=Data source control
main.manageSchemaGuard=Data source guard
main.manageChartPlugin=Chart plugin
main.uploadChartPlugin=Upload chart plugin
main.manageDataSetResDirectory=Data set directory

View File

@ -25,7 +25,7 @@ String detectNewVersionScript
<#if currentUser.admin>
<li class="system-set-driverEntity"><a href="javascript:void(0);"><@spring.message code='main.manageDriverEntity' /></a></li>
<li class="system-set-schemaUrlBuilder"><a href="javascript:void(0);"><@spring.message code='schemaUrlBuilder.schemaUrlBuilder' /></a></li>
<li class="system-set-schemaControl"><a href="javascript:void(0);"><@spring.message code='main.manageSchemaControl' /></a></li>
<li class="system-set-schemaGuard"><a href="javascript:void(0);"><@spring.message code='main.manageSchemaGuard' /></a></li>
<li class="ui-widget-header"></li>
<li class="system-set-dataSetResDirectory"><a href="javascript:void(0);"><@spring.message code='main.manageDataSetResDirectory' /></a></li>
<li class="system-set-chartPlugin"><a href="javascript:void(0);"><@spring.message code='main.manageChartPlugin' /></a></li>
@ -132,11 +132,11 @@ String detectNewVersionScript
$.setGridPageHeightOption(options);
po.open(contextPath+"/role/pagingQuery", options);
}
else if($item.hasClass("system-set-schemaControl"))
else if($item.hasClass("system-set-schemaGuard"))
{
var options = {};
$.setGridPageHeightOption(options);
po.open(contextPath+"/schemaControl/query", options);
po.open(contextPath+"/schemaGuard/query", options);
}
else if($item.hasClass("system-set-chartPlugin"))
{