Fix enforcer policy add and delete

This commit is contained in:
Yang Luo 2023-09-27 00:18:21 +08:00
parent 56787fab90
commit 81a8b91e3f
4 changed files with 30 additions and 14 deletions

View File

@ -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

View File

@ -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
}
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
}
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
}
if ptype == "p" {
return enforcer.RemovePolicy(policy)
} else {
return enforcer.RemoveGroupingPolicy(policy)
}
}
func (enforcer *Enforcer) LoadModelCfg() error {

View File

@ -30,7 +30,7 @@ class AdapterListPage extends BaseListPage {
owner: owner,
name: `adapter_${randomName}`,
createdTime: moment().format(),
table: "tableName",
table: "table_name",
useSameDb: true,
};
}

View File

@ -38,7 +38,7 @@ class SyncerListPage extends BaseListPage {
password: "123456",
databaseType: "mysql",
database: "dbName",
table: "tableName",
table: "table_name",
tableColumns: [],
affiliationTable: "",
avatarBaseUrl: "",