Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

[Question] Getting nil pointer error when using SetFieldIndex is my model wrong ? #1459

Open
Assignees
hsluoyz
Labels
@shrutsureja

Description

@shrutsureja

Want to prioritize this issue? Try:

issuehunt-to-marktext


What's your scenario? What do you want to achieve?
I have a RBAC - tenant based + some ABAC attributes thus i am trying to get all domain list but instead it fetch user roles so i tried setting the fields index's but it results in this error

partial_blur

// github.com/casbin/casbin/v2@v2.100.0/internal_api.gofunc (e*Enforcer)SetFieldIndex(ptypestring,fieldstring,indexint) {assertion:=e.model["p"][ptype]assertion.FieldIndexMap[field]=index// this is the line where error is generate}

Your model:

[request_definition]r = sub, dom, obj, act, resource_attr[policy_definition]p = sub, dom, obj, act, resource_attr, eft[role_definition]g = _, _, _# sub, role, dom[policy_effect]e = some(where (p.eft == allow)) && !some(where (p.eft == deny))[matchers]m = (g(r.sub, p.sub, r.dom) || g(r.sub, p.sub,"all")) && \    (r.dom == p.dom ||p.dom =="*") && \    (r.obj == p.obj ||p.obj =="*") && \    (r.act == p.act ||p.act =="*") && \    (r.resource_attr == p.resource_attr ||p.resource_attr =="*")

Your policy:

p, super_admin, *, *, *, *p, admin, *, users, delete, role:member, allow p, admin, *, users, delete, role:owner, denyp, admin, *, users, delete, role:super_admin, denyp, admin, *, users, delete, role:admin, denyp, member, *, users, delete, *, denyp, owner, domain_a, *, *, *p, admin, domain_a, *, *, *p, admin, domain_b, *, *, *g, user_A, super_admin, allg, user_B, owner, domain_ag, user_C, admin, domain_ag, user_D, member, domain_ag, user_E, member, domain_ap, user_D, domain_a, customer, *, *p, user_E, domain_a, leads, *, *g, user_E, admin, domain_bg, user_F, member, domain_bg, user_C, member, domain_bp, user_C, domain_b, workspacusers, *, create

Your request(s):

# true, false, trueuser_E, domain_a, leads, create, * user_E, domain_a, customers, create, * user_E, domain_b, users, create, * # false, false, trueuser_D, domain_b, users, delete, * user_D, domain_a, leads, delete, *  user_D, domain_a, customer, delete, *# false, true, true, falseuser_C, domain_a, users, delete, role:adminuser_C, domain_a, users, delete, role:admiuser_B, domain_a, users, delete, role:adminuser_D, domain_a, users, delete, *# super_admin all trueuser_A, domain_a, leads,*, createuser_A, domain_b, users,*, delete

and this is my code

varEnforcer*casbin.Enforcervarlogger=GetLogger("casbin")typeAuthorization_rulesstruct {IDuint`gorm:"primaryKey;autoIncrement"`Ptypestring`gorm:"size:512;uniqueIndex:unique_index"`V0string`gorm:"size:512;uniqueIndex:unique_index"`V1string`gorm:"size:512;uniqueIndex:unique_index"`V2string`gorm:"size:512;uniqueIndex:unique_index"`V3string`gorm:"size:512;uniqueIndex:unique_index"`V4string`gorm:"size:512;uniqueIndex:unique_index"`V5string`gorm:"size:512;uniqueIndex:unique_index"`V6string`gorm:"size:512;uniqueIndex:unique_index"`}funcInitCasbinEnforcer(db*gorm.DB) {gormadapter.TurnOffAutoMigrate(db)a,err:=gormadapter.NewAdapterByDBWithCustomTable(db,&Authorization_rules{},"authorization_rules")iferr!=nil {logger.Fatal().Err(err).Msg("Failed to initialize casbin")}m,err:=model.NewModelFromString(constants.CasbinModel)iferr!=nil {logger.Fatal().Err(err).Msg("Failed to initialize casbin")}Enforcer,err=casbin.NewEnforcer(m,a)iferr!=nil {logger.Fatal().Err(err).Msg("Failed to initialize casbin")}iferr=Enforcer.LoadPolicy();err!=nil {fmt.Errorf("failed to load policy: %w",err)}//Enforcer.AddNamedDomainMatchingFunc("g", "", util.KeyMatch)//Enforcer.SetFieldIndex("p", constant.DomainIndex, 1) // domain is second field//Enforcer.SetFieldIndex("g", constant.DomainIndex, 2) // domain is third field in role defEnforcer.EnableLog(true)}

Can find the problem why is it giving me this error am i missing something imp ??

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions


    [8]ページ先頭

    ©2009-2025 Movatter.jp