diff --git a/controllers/enforcer.go b/controllers/enforcer.go index 530ea468..544374db 100644 --- a/controllers/enforcer.go +++ b/controllers/enforcer.go @@ -191,7 +191,7 @@ func (c *ApiController) UpdatePolicy() { return } - affected, err := object.UpdatePolicy(id, util.CasbinToSlice(policies[0]), util.CasbinToSlice(policies[1])) + affected, err := object.UpdatePolicy(id, policies[0].Ptype, util.CasbinToSlice(policies[0]), util.CasbinToSlice(policies[1])) if err != nil { c.ResponseError(err.Error()) return @@ -210,7 +210,7 @@ func (c *ApiController) AddPolicy() { return } - affected, err := object.AddPolicy(id, util.CasbinToSlice(policy)) + affected, err := object.AddPolicy(id, policy.Ptype, util.CasbinToSlice(policy)) if err != nil { c.ResponseError(err.Error()) return @@ -229,7 +229,7 @@ func (c *ApiController) RemovePolicy() { return } - affected, err := object.RemovePolicy(id, util.CasbinToSlice(policy)) + affected, err := object.RemovePolicy(id, policy.Ptype, util.CasbinToSlice(policy)) if err != nil { c.ResponseError(err.Error()) return diff --git a/object/enforcer.go b/object/enforcer.go index ca1d0ca3..c963f57c 100644 --- a/object/enforcer.go +++ b/object/enforcer.go @@ -191,39 +191,55 @@ func GetPolicies(id string) ([]*xormadapter.CasbinRule, error) { return nil, err } - policies := util.MatrixToCasbinRules("p", enforcer.GetPolicy()) + pRules := enforcer.GetPolicy() + res := util.MatrixToCasbinRules("p", pRules) + if enforcer.GetModel()["g"] != nil { - policies = append(policies, util.MatrixToCasbinRules("g", enforcer.GetGroupingPolicy())...) + gRules := enforcer.GetGroupingPolicy() + res2 := util.MatrixToCasbinRules("g", gRules) + res = append(res, res2...) } - return policies, nil + return res, nil } -func UpdatePolicy(id string, oldPolicy, newPolicy []string) (bool, error) { +func UpdatePolicy(id string, ptype string, oldPolicy []string, newPolicy []string) (bool, error) { enforcer, err := GetInitializedEnforcer(id) if err != nil { return false, err } - return enforcer.UpdatePolicy(oldPolicy, newPolicy) + if ptype == "p" { + return enforcer.UpdatePolicy(oldPolicy, newPolicy) + } else { + return enforcer.UpdateGroupingPolicy(oldPolicy, newPolicy) + } } -func AddPolicy(id string, policy []string) (bool, error) { +func AddPolicy(id string, ptype string, policy []string) (bool, error) { enforcer, err := GetInitializedEnforcer(id) if err != nil { return false, err } - return enforcer.AddPolicy(policy) + if ptype == "p" { + return enforcer.AddPolicy(policy) + } else { + return enforcer.AddGroupingPolicy(policy) + } } -func RemovePolicy(id string, policy []string) (bool, error) { +func RemovePolicy(id string, ptype string, policy []string) (bool, error) { enforcer, err := GetInitializedEnforcer(id) if err != nil { return false, err } - return enforcer.RemovePolicy(policy) + if ptype == "p" { + return enforcer.RemovePolicy(policy) + } else { + return enforcer.RemoveGroupingPolicy(policy) + } } func (enforcer *Enforcer) LoadModelCfg() error { diff --git a/web/src/AdapterListPage.js b/web/src/AdapterListPage.js index f5601517..7c3b5fe6 100644 --- a/web/src/AdapterListPage.js +++ b/web/src/AdapterListPage.js @@ -30,7 +30,7 @@ class AdapterListPage extends BaseListPage { owner: owner, name: `adapter_${randomName}`, createdTime: moment().format(), - table: "tableName", + table: "table_name", useSameDb: true, }; } diff --git a/web/src/SyncerListPage.js b/web/src/SyncerListPage.js index f2b03dd9..315572c4 100644 --- a/web/src/SyncerListPage.js +++ b/web/src/SyncerListPage.js @@ -38,7 +38,7 @@ class SyncerListPage extends BaseListPage { password: "123456", databaseType: "mysql", database: "dbName", - table: "tableName", + table: "table_name", tableColumns: [], affiliationTable: "", avatarBaseUrl: "",