forked from p85126437/datagear
添加数据源管控功能SQL脚本和领域模型类
This commit is contained in:
parent
5162fb6498
commit
773dc8173e
|
@ -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;
|
||||
}
|
||||
};
|
||||
}
|
|
@ -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)
|
||||
);
|
||||
|
|
|
@ -253,7 +253,7 @@ main.manageDriverEntity=数据源驱动程序
|
|||
main.manageUser=用户
|
||||
main.addUser=添加用户
|
||||
main.manageRole=角色
|
||||
main.manageSchemaControl=数据源管控
|
||||
main.manageSchemaGuard=数据源管控
|
||||
main.manageChartPlugin=图表插件
|
||||
main.uploadChartPlugin=上传图表插件
|
||||
main.manageDataSetResDirectory=数据集资源目录
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue