💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
执行者实例 ``` $e = new Enforcer('examples/rbac_model.conf', 'examples/rbac_policy.csv'); ``` ### **`GetAllSubjects()`** 获取当前策略中显示的主题列表。 ``` $allSubjects = $e->getAllSubjects(); ``` ### **`GetAllNamedSubjects()`** 获取当前命名策略中显示的主题列表。 ``` $allNamedSubjects = $e->getAllNamedSubjects("p"); ``` ### **`GetAllObjects()`** 获取当前策略中显示的对象列表。 ``` $allObjects = $e->getAllObjects(); ``` ### **`GetAllNamedObjects()`** 获取当前命名策略中显示的对象列表。 ``` $allNamedObjects = $e->getAllNamedObjects("p"); ``` ### **`GetAllActions()`** 获取当前策略中显示的操作列表。 ``` $allActions = $e->getAllActions(); ``` ### **`GetAllNamedActions()`** 获取当前命名策略中显示的操作列表。 ``` $allNamedActions = $e->getAllNamedActions("p"); ``` ### **`GetAllRoles()`** 获取当前策略中显示的角色列表。 ``` $allRoles = $e->getAllRoles(); ``` ### **`GetAllNamedRoles()`** 获取当前命名策略中显示的角色列表。 ``` $allNamedRoles = $e->getAllNamedRoles('g'); ``` ### **`GetPolicy()`** 获取策略中的所有授权规则。 ``` $policy = $e->getPolicy(); ``` ### **`GetFilteredPolicy()`** 获取策略中的所有授权规则,可以指定字段筛选器。 ``` $filteredPolicy = $e->getFilteredPolicy(0, "alice"); ``` ### **`GetNamedPolicy()`** 获取命名策略中的所有授权规则。 ``` $namedPolicy = $e->getNamedPolicy("p"); ``` ### **`GetFilteredNamedPolicy()`** 获取命名策略中的所有授权规则,可以指定字段过滤器。 ``` $filteredNamedPolicy = $e->getFilteredNamedPolicy("p", 0, "bob"); ``` ### **`GetGroupingPolicy()`** 获取策略中的所有角色继承规则。 ``` $groupingPolicy = $e->getGroupingPolicy(); ``` ### **`GetFilteredGroupingPolicy()`** 获取策略中的所有角色继承规则,可以指定字段筛选器。 ``` $filteredGroupingPolicy = $e->getFilteredGroupingPolicy(0, "alice"); ``` ### **`GetNamedGroupingPolicy()`** 获取策略中的所有角色继承规则。 ``` $namedGroupingPolicy = $e->getNamedGroupingPolicy("g"); ``` ### **`GetFilteredNamedGroupingPolicy()`** 获取策略中的所有角色继承规则。 ``` $namedGroupingPolicy = $e->getFilteredNamedGroupingPolicy("g", 0, "alice"); ``` ### **`HasPolicy()`** 确定是否存在授权规则。 ``` $hasPolicy = $e->hasPolicy('data2\_admin', 'data2', 'read'); ``` ### **`HasNamedPolicy()`** 确定是否存在命名授权规则。 ~~~ $hasNamedPolicy = $e->hasNamedPolicy("p", "data2_admin", "data2", "read"); ~~~ ### **`AddPolicy()`** 向当前策略添加授权规则。 如果规则已经存在,函数返回false,并且不会添加规则。 否则,函数通过添加新规则并返回true。 ``` $added = $e->addPolicy('eve', 'data3', 'read'); ``` ### **`AddNamedPolicy()`** AddNamedPolicy 向当前命名策略添加授权规则。 如果规则已经存在,函数返回false,并且不会添加规则。 否则,函数通过添加新规则并返回true。 ``` $added = $e->addNamedPolicy("p", "eve", "data3", "read"); ``` ### **`RemovePolicy()`** RemovePolicy 从当前策略中删除授权规则。 ``` $removed = $e->removePolicy("alice", "data1", "read"); ``` ### **`RemoveFilteredPolicy()`** RemoveFilteredPolicy 移除当前策略中的授权规则,可以指定字段筛选器。 RemovePolicy 从当前策略中删除授权规则。 ``` $removed = $e->removeFilteredPolicy(0, "alice", "data1", "read"); ``` ### **`RemoveNamedPolicy()`** 从当前命名策略中删除授权规则。 ``` $removed = $e->removeNamedPolicy("p", "alice", "data1", "read"); ``` ### **`RemoveFilteredNamedPolicy()`** 从当前命名策略中移除授权规则,可以指定字段筛选器。 ~~~php $removed = $e->removeFilteredNamedPolicy("p", 0, "alice", "data1", "read"); ~~~ ### **`HasGroupingPolicy()`** 确定是否存在角色继承规则。 ``` $has = $e->hasGroupingPolicy("alice", "data2\_admin"); ``` ### **`HasNamedGroupingPolicy()`** 确定是否存在命名角色继承规则。 ``` $has = $e->hasNamedGroupingPolicy("g", "alice", "data2\_admin"); ``` ### **`AddGroupingPolicy()`** 向当前策略添加角色继承规则。 如果规则已经存在,函数返回false,并且不会添加规则。 如果规则已经存在,函数返回false,并且不会添加规则 ~~~ $added = $e->addGroupingPolicy("group1", "data2_admin"); ~~~ ### **`AddNamedGroupingPolicy()`** 将命名角色继承规则添加到当前策略。 如果规则已经存在,函数返回false,并且不会添加规则。 否则,函数通过添加新规则并返回true。 ``` $added = $e->addNamedGroupingPolicy("g", "group1", "data2_admin"); ``` ### **`RemoveGroupingPolicy()`** 从当前策略中删除角色继承规则。 ``` $removed = $e->removeGroupingPolicy("alice", "data2_admin"); ``` ### **`RemoveFilteredGroupingPolicy()`** 从当前策略中移除角色继承规则,可以指定字段筛选器。 ``` $removed = $e->removeFilteredGroupingPolicy(0, "alice"); ``` ### **`RemoveNamedGroupingPolicy()`** 从当前命名策略中移除角色继承规则。 ``` $removed = $e->removeNamedGroupingPolicy("g", "alice"); ``` ### **`RemoveFilteredNamedGroupingPolicy()`** 从当前命名策略中移除角色继承规则,可以指定字段筛选器。 ``` $removed = $e->removeFilteredNamedGroupingPolicy("g", 0, "alice"); ``` ### **`AddFunction()`** 添加自定义函数。 ``` func customFunction($key1, $key2) { if ($key1 == "/alice_data2/myid/using/res_id" && $key2 == "/alice_data/:resource") { return true; } elseif ($key1 == "/alice_data2/myid/using/res_id" && $key2 == "/alice_data2/:id/using/:resId") { return true; } else { return false; } } func customFunctionWrapper(...$args){ $key1 := $args[0]; $key2 := $args[1]; return customFunction($key1, $key2); } $e->addFunction("keyMatchCustom", customFunctionWrapper); ```