forked from golang/hotime
增加单表某字段权限及类型控制功能
This commit is contained in:
parent
b7131603c4
commit
9a7426180d
2
code.go
2
code.go
@ -872,7 +872,7 @@ var TptProject = Proj{
|
|||||||
v1 := menus.GetMap(k1)
|
v1 := menus.GetMap(k1)
|
||||||
if config.GetMap("tables").GetMap(v1.GetString("table")) != nil && len(v1.GetSlice("auth")) != 0 {
|
if config.GetMap("tables").GetMap(v1.GetString("table")) != nil && len(v1.GetSlice("auth")) != 0 {
|
||||||
config.GetMap("tables").GetMap(v1.GetString("table"))["auth"] = Slice{}
|
config.GetMap("tables").GetMap(v1.GetString("table"))["auth"] = Slice{}
|
||||||
newTables[v1.GetString("name")] = config.GetMap("tables").GetMap(v1.GetString("table"))
|
newTables[v1.GetString("table")] = config.GetMap("tables").GetMap(v1.GetString("table"))
|
||||||
}
|
}
|
||||||
v1menus := v1.GetSlice("menus")
|
v1menus := v1.GetSlice("menus")
|
||||||
for k2, _ := range v1.GetSlice("menus") {
|
for k2, _ := range v1.GetSlice("menus") {
|
||||||
|
168
code/config.go
168
code/config.go
@ -59,62 +59,130 @@ var ColumnDataType = map[string]string{
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ColumnShow struct {
|
type ColumnShow struct {
|
||||||
Name string
|
Name string //名称
|
||||||
List bool
|
|
||||||
Edit bool
|
List bool //列表权限
|
||||||
Info bool
|
Edit bool //新增和编辑权限
|
||||||
Must bool
|
Info bool //详情权限
|
||||||
|
Must bool //字段全匹配
|
||||||
Type string //空字符串表示
|
Type string //空字符串表示
|
||||||
Strict bool //name严格匹配必须是这个词才行
|
Strict bool //name严格匹配必须是这个词才行
|
||||||
}
|
}
|
||||||
|
|
||||||
var ColumnNameType = []ColumnShow{
|
var RuleConfig = []Map{
|
||||||
//通用
|
{"name": "idcard", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
{"idcard", false, true, true, false, "", false},
|
{"name": "id", "add": false, "list": true, "edit": false, "info": true, "must": false, "strict": true, "type": ""},
|
||||||
{"id", true, false, true, false, "", true},
|
{"name": "sn", "add": false, "list": true, "edit": false, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
{"sn", true, false, true, false, "", false},
|
{"name": "parent_ids", "add": false, "list": false, "edit": false, "info": false, "must": false, "strict": true, "type": "index"},
|
||||||
{"parent_ids", false, false, false, false, "index", true},
|
{"name": "index", "add": false, "list": false, "edit": false, "info": false, "must": false, "strict": true, "type": "index"},
|
||||||
{"parent_id", true, true, true, false, "", true},
|
|
||||||
{"amount", true, true, true, false, "money", true},
|
|
||||||
{"info", false, true, true, false, "textArea", false},
|
|
||||||
//"sn"{true,true,true,""},
|
|
||||||
{"status", true, true, true, false, "select", false},
|
|
||||||
{"state", true, true, true, false, "select", false},
|
|
||||||
{"sex", true, true, true, false, "select", false},
|
|
||||||
{"delete", false, false, false, false, "", false},
|
|
||||||
|
|
||||||
{"lat", false, true, true, false, "", false},
|
{"name": "parent_id", "add": true, "list": true, "edit": true, "info": true, "must": false, "true": false, "type": ""},
|
||||||
{"lng", false, true, true, false, "", false},
|
|
||||||
{"latitude", false, true, true, false, "", false},
|
|
||||||
{"longitude", false, true, true, false, "", false},
|
|
||||||
|
|
||||||
{"index", false, false, false, false, "index", false},
|
{"name": "amount", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": true, "type": "money"},
|
||||||
|
|
||||||
{"password", false, true, false, false, "password", false},
|
{"name": "info", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "textArea"},
|
||||||
{"pwd", false, true, false, false, "password", false},
|
|
||||||
|
|
||||||
{"version", false, false, false, false, "", false},
|
{"name": "status", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": "select"},
|
||||||
{"seq", false, true, true, false, "", false},
|
{"name": "state", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": "select"},
|
||||||
{"sort", false, true, true, false, "", false},
|
{"name": "sex", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": "select"},
|
||||||
{"note", false, true, true, false, "", false},
|
|
||||||
{"description", false, true, true, false, "", false},
|
{"name": "delete", "add": false, "list": false, "edit": false, "info": false, "must": false, "strict": false, "type": ""},
|
||||||
{"abstract", false, true, true, false, "", false},
|
|
||||||
{"content", false, true, true, false, "textArea", false},
|
{"name": "lat", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
{"address", true, true, true, false, "", false},
|
{"name": "lng", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
{"full_name", false, true, true, false, "", false},
|
|
||||||
{"create_time", false, false, true, false, "time", true},
|
{"name": "latitude", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
{"modify_time", true, false, true, false, "time", true},
|
{"name": "longitude", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
{"image", false, true, true, false, "image", false},
|
|
||||||
{"img", false, true, true, false, "image", false},
|
{"name": "password", "add": true, "list": false, "edit": true, "info": false, "must": false, "strict": false, "type": "password"},
|
||||||
{"icon", false, true, true, false, "image", false},
|
{"name": "pwd", "add": true, "list": false, "edit": true, "info": false, "must": false, "strict": false, "type": "password"},
|
||||||
{"avatar", false, true, true, false, "image", false},
|
|
||||||
{"file", false, true, true, false, "file", false},
|
{"name": "version", "add": false, "list": false, "edit": false, "info": false, "must": false, "strict": false, "type": ""},
|
||||||
{"age", false, true, true, false, "", false},
|
{"name": "seq", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
{"email", false, true, true, false, "", false},
|
|
||||||
{"time", true, true, true, false, "time", false},
|
{"name": "sort", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
{"level", false, false, true, false, "", false},
|
{"name": "note", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
{"rule", true, true, true, false, "form", false},
|
|
||||||
{"auth", false, true, true, false, "auth", true},
|
{"name": "description", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
{"table", true, false, true, false, "table", false},
|
|
||||||
{"table_id", true, false, true, false, "table_id", false},
|
{"name": "abstract", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
|
|
||||||
|
{"name": "content", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "textArea"},
|
||||||
|
|
||||||
|
{"name": "address", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
|
{"name": "full_name", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
|
|
||||||
|
{"name": "create_time", "add": false, "list": false, "edit": false, "info": true, "must": false, "strict": true, "type": "time"},
|
||||||
|
{"name": "modify_time", "add": false, "list": true, "edit": false, "info": true, "must": false, "strict": true, "type": "time"},
|
||||||
|
|
||||||
|
{"name": "image", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "image"},
|
||||||
|
|
||||||
|
{"name": "img", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "image"},
|
||||||
|
{"name": "avatar", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "image"},
|
||||||
|
{"name": "icon", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "image"},
|
||||||
|
|
||||||
|
{"name": "file", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "file"},
|
||||||
|
|
||||||
|
{"name": "age", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
|
{"name": "email", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
|
{"name": "time", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": "time"},
|
||||||
|
|
||||||
|
{"name": "level", "add": false, "list": false, "edit": false, "info": true, "must": false, "strict": false, "type": ""},
|
||||||
|
{"name": "rule", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": "form"},
|
||||||
|
|
||||||
|
{"name": "auth", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "auth"},
|
||||||
|
|
||||||
|
{"name": "table", "add": false, "list": true, "edit": false, "info": true, "must": false, "strict": false, "type": "table"},
|
||||||
|
{"name": "table_id", "add": false, "list": true, "edit": false, "info": true, "must": false, "strict": false, "type": "table_id"},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//var ColumnNameType = []ColumnShow{
|
||||||
|
// //通用
|
||||||
|
// {"idcard", false, true, true, false, "", false},
|
||||||
|
// {"id", true, false, true, false, "", true},
|
||||||
|
// {"sn", true, false, true, false, "", false},
|
||||||
|
// {"parent_ids", false, false, false, false, "index", true},
|
||||||
|
// {"parent_id", true, true, true, false, "", true},
|
||||||
|
// {"amount", true, true, true, false, "money", true},
|
||||||
|
// {"info", false, true, true, false, "textArea", false},
|
||||||
|
// //"sn"{true,true,true,""},
|
||||||
|
// {"status", true, true, true, false, "select", false},
|
||||||
|
// {"state", true, true, true, false, "select", false},
|
||||||
|
// {"sex", true, true, true, false, "select", false},
|
||||||
|
// {"delete", false, false, false, false, "", false},
|
||||||
|
//
|
||||||
|
// {"lat", false, true, true, false, "", false},
|
||||||
|
// {"lng", false, true, true, false, "", false},
|
||||||
|
// {"latitude", false, true, true, false, "", false},
|
||||||
|
// {"longitude", false, true, true, false, "", false},
|
||||||
|
//
|
||||||
|
// {"index", false, false, false, false, "index", false},
|
||||||
|
//
|
||||||
|
// {"password", false, true, false, false, "password", false},
|
||||||
|
// {"pwd", false, true, false, false, "password", false},
|
||||||
|
//
|
||||||
|
// {"version", false, false, false, false, "", false},
|
||||||
|
// {"seq", false, true, true, false, "", false},
|
||||||
|
// {"sort", false, true, true, false, "", false},
|
||||||
|
// {"note", false, true, true, false, "", false},
|
||||||
|
// {"description", false, true, true, false, "", false},
|
||||||
|
// {"abstract", false, true, true, false, "", false},
|
||||||
|
// {"content", false, true, true, false, "textArea", false},
|
||||||
|
// {"address", true, true, true, false, "", false},
|
||||||
|
// {"full_name", false, true, true, false, "", false},
|
||||||
|
// {"create_time", false, false, true, false, "time", true},
|
||||||
|
// {"modify_time", true, false, true, false, "time", true},
|
||||||
|
// {"image", false, true, true, false, "image", false},
|
||||||
|
// {"img", false, true, true, false, "image", false},
|
||||||
|
// {"icon", false, true, true, false, "image", false},
|
||||||
|
// {"avatar", false, true, true, false, "image", false},
|
||||||
|
// {"file", false, true, true, false, "file", false},
|
||||||
|
// {"age", false, true, true, false, "", false},
|
||||||
|
// {"email", false, true, true, false, "", false},
|
||||||
|
// {"time", true, true, true, false, "time", false},
|
||||||
|
// {"level", false, false, true, false, "", false},
|
||||||
|
// {"rule", true, true, true, false, "form", false},
|
||||||
|
// {"auth", false, true, true, false, "auth", true},
|
||||||
|
// {"table", true, false, true, false, "table", false},
|
||||||
|
// {"table_id", true, false, true, false, "table_id", false},
|
||||||
|
//}
|
||||||
|
@ -55,8 +55,8 @@ func (that *MakeCode) Db2JSON(db *db.HoTimeDB, config Map) {
|
|||||||
that.RuleConfig = append(that.RuleConfig, ruleLis.GetMap(k))
|
that.RuleConfig = append(that.RuleConfig, ruleLis.GetMap(k))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for _, v := range ColumnNameType {
|
for _, v := range RuleConfig {
|
||||||
that.RuleConfig = append(that.RuleConfig, Map{"name": v.Name, "list": v.List, "edit": v.Edit, "info": v.Info, "must": v.Must, "strict": v.Strict, "type": v.Type})
|
that.RuleConfig = append(that.RuleConfig, ObjToMap(DeepCopyMap(v)))
|
||||||
}
|
}
|
||||||
if db != nil {
|
if db != nil {
|
||||||
_ = os.MkdirAll(filepath.Dir(config.GetString("rule")), os.ModeDir)
|
_ = os.MkdirAll(filepath.Dir(config.GetString("rule")), os.ModeDir)
|
||||||
@ -207,7 +207,8 @@ func (that *MakeCode) Db2JSON(db *db.HoTimeDB, config Map) {
|
|||||||
|
|
||||||
for _, ColumnName := range that.RuleConfig {
|
for _, ColumnName := range that.RuleConfig {
|
||||||
if (ColumnName.GetBool("strict") && coloum.GetString("name") == ColumnName.GetString("name")) ||
|
if (ColumnName.GetBool("strict") && coloum.GetString("name") == ColumnName.GetString("name")) ||
|
||||||
(!ColumnName.GetBool("strict") && strings.Contains(coloum.GetString("name"), ColumnName.GetString("name"))) {
|
(!ColumnName.GetBool("strict") && strings.Contains(coloum.GetString("name"), ColumnName.GetString("name"))) ||
|
||||||
|
(info.GetString("name")+"."+coloum.GetString("name") == ColumnName.GetString("name")) {
|
||||||
//全部都不需要则不加入
|
//全部都不需要则不加入
|
||||||
if ColumnName.GetBool("edit") == false && ColumnName.GetBool("list") == false && ColumnName.GetBool("info") == false {
|
if ColumnName.GetBool("edit") == false && ColumnName.GetBool("list") == false && ColumnName.GetBool("info") == false {
|
||||||
coloum["notUse"] = true
|
coloum["notUse"] = true
|
||||||
@ -215,7 +216,7 @@ func (that *MakeCode) Db2JSON(db *db.HoTimeDB, config Map) {
|
|||||||
}
|
}
|
||||||
coloum["info"] = ColumnName.GetBool("info")
|
coloum["info"] = ColumnName.GetBool("info")
|
||||||
coloum["edit"] = ColumnName.GetBool("edit")
|
coloum["edit"] = ColumnName.GetBool("edit")
|
||||||
coloum["add"] = ColumnName.GetBool("edit")
|
coloum["add"] = ColumnName["add"]
|
||||||
coloum["list"] = ColumnName.GetBool("list")
|
coloum["list"] = ColumnName.GetBool("list")
|
||||||
coloum["must"] = ColumnName.GetBool("must")
|
coloum["must"] = ColumnName.GetBool("must")
|
||||||
|
|
||||||
@ -224,6 +225,8 @@ func (that *MakeCode) Db2JSON(db *db.HoTimeDB, config Map) {
|
|||||||
}
|
}
|
||||||
if ColumnName.GetBool("edit") {
|
if ColumnName.GetBool("edit") {
|
||||||
delete(coloum, "edit")
|
delete(coloum, "edit")
|
||||||
|
}
|
||||||
|
if ColumnName["add"] == nil || ColumnName.GetBool("add") {
|
||||||
delete(coloum, "add")
|
delete(coloum, "add")
|
||||||
}
|
}
|
||||||
if ColumnName.GetBool("list") {
|
if ColumnName.GetBool("list") {
|
||||||
|
Loading…
Reference in New Issue
Block a user