MCPcopy
hub / github.com/apache/casbin / loadFilteredPolicyCtx

Method loadFilteredPolicyCtx

enforcer_context.go:98–131  ·  view source on GitHub ↗
(ctx context.Context, filter interface{})

Source from the content-addressed store, hash-verified

96}
97
98func (e *Enforcer) loadFilteredPolicyCtx(ctx context.Context, filter interface{}) error {
99 e.invalidateMatcherMap()
100
101 var filteredAdapter persist.ContextFilteredAdapter
102
103 // Attempt to cast the Adapter as a FilteredAdapter
104 switch adapter := e.adapter.(type) {
105 case persist.ContextFilteredAdapter:
106 filteredAdapter = adapter
107 default:
108 return errors.New("filtered policies are not supported by this adapter")
109 }
110 if err := filteredAdapter.LoadFilteredPolicyCtx(ctx, e.model, filter); err != nil && err.Error() != "invalid file path, file path cannot be empty" {
111 return err
112 }
113
114 if err := e.model.SortPoliciesBySubjectHierarchy(); err != nil {
115 return err
116 }
117
118 if err := e.model.SortPoliciesByPriority(); err != nil {
119 return err
120 }
121
122 e.initRmMap()
123 e.model.PrintPolicy()
124 if e.autoBuildRoleLinks {
125 err := e.BuildRoleLinks()
126 if err != nil {
127 return err
128 }
129 }
130 return nil
131}
132
133// IsFilteredCtx returns true if the loaded policy has been filtered with context.
134func (e *ContextEnforcer) IsFilteredCtx(ctx context.Context) bool {

Callers 2

LoadFilteredPolicyCtxMethod · 0.95

Calls 8

invalidateMatcherMapMethod · 0.95
LoadFilteredPolicyCtxMethod · 0.95
initRmMapMethod · 0.95
BuildRoleLinksMethod · 0.95
PrintPolicyMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected