包 | system.base |
---|---|
继承 | interface IAuthManager |
子类 | CAuthManager, CDbAuthManager, CPHPAuthManager |
源自 | 1.0 |
版本 | $Id: interfaces.php 3515 2011-12-28 12:29:24Z mDOMba $ |
源码 |
IAuthManager是验证管理组件必须实现的接口。
验证管理主要负责基于角色访问控制(rbac)的服务。
验证管理主要负责基于角色访问控制(rbac)的服务。
公共方法
方法 | 描述 | 定义在 |
---|---|---|
addItemChild() | 添加一个授权项作为另一个授权项的子授权项。 | IAuthManager |
assign() | 为用户分配一个授权项。 | IAuthManager |
checkAccess() | 检查指定用户的执行权限。 | IAuthManager |
clearAll() | 移除所有授权数据。 | IAuthManager |
clearAuthAssignments() | 移除所有授权分配信息。 | IAuthManager |
createAuthItem() | 创建一个授权项。 | IAuthManager |
executeBizRule() | 执行业务规则。 | IAuthManager |
getAuthAssignment() | 返回授权项分配信息。 | IAuthManager |
getAuthAssignments() | 返回指定用户的授权项分配信息。 | IAuthManager |
getAuthItem() | 返回指定名字的授权项 | IAuthManager |
getAuthItems() | 返回指定类型和用户的授权项。 | IAuthManager |
getItemChildren() | 返回指定授权项的子授权项。 | IAuthManager |
hasItemChild() | 返回一个值表示父授权项是否存在子授权项。 | IAuthManager |
isAssigned() | 返回一个值表示判断授权项是否分配给指定用户。 | IAuthManager |
removeAuthItem() | 移除指定授权项。 | IAuthManager |
removeItemChild() | 从父授权项中移除子授权项。 | IAuthManager |
revoke() | 撤销一个用户分配的授权项。 | IAuthManager |
save() | 保存授权数据到持久存储。 | IAuthManager |
saveAuthAssignment() | 保存修改的授权信息。 | IAuthManager |
saveAuthItem() | 保存授权项到持久存储。 | IAuthManager |
方法详细
addItemChild()
方法
abstract public void addItemChild(string $itemName, string $childName)
| ||
$itemName | string | 父授权项名称 |
$childName | string | 子授权项名称 |
public function addItemChild($itemName,$childName);
添加一个授权项作为另一个授权项的子授权项。
assign()
方法
abstract public CAuthAssignment assign(string $itemName, mixed $userId, string $bizRule=NULL, mixed $data=NULL)
| ||
$itemName | string | 授权项名称 |
$userId | mixed | 用户ID(参见 IWebUser::getId) |
$bizRule | string | 当调用checkAccess时 授权项关联的业务规则 |
$data | mixed | 授权项关联的附加数据 |
{return} | CAuthAssignment | 授权分配信息。 |
public function assign($itemName,$userId,$bizRule=null,$data=null);
为用户分配一个授权项。
checkAccess()
方法
abstract public boolean checkAccess(string $itemName, mixed $userId, array $params=array (
))
| ||
$itemName | string | 需要权限检查的授权项名称 |
$userId | mixed | 用户ID。它应该是一个整数或一个字符串, 代表用户的唯一标识,参见IWebUser::getId。 |
$params | array | 分配给用户的任务或角色的(键-值对) 形式的业务规则。 |
{return} | boolean | 用户是否有权执行操作。 |
public function checkAccess($itemName,$userId,$params=array());
检查指定用户的执行权限。
clearAll()
方法
abstract public void clearAll()
|
public function clearAll();
移除所有授权数据。
clearAuthAssignments()
方法
abstract public void clearAuthAssignments()
|
public function clearAuthAssignments();
移除所有授权分配信息。
createAuthItem()
方法
abstract public CAuthItem createAuthItem(string $name, integer $type, string $description='', string $bizRule=NULL, mixed $data=NULL)
| ||
$name | string | 授权项名称。必须是一个唯一标识。 |
$type | integer | 授权项类型(0:操作,1:任务,2:角色)。 |
$description | string | 授权项描述 |
$bizRule | string | 授权项关联的业务规则。 这是一块PHP代码,当调用checkAccess时被执行。 |
$data | mixed | 授权项关联的附加数据。 |
{return} | CAuthItem | 授权项 |
public function createAuthItem($name,$type,$description='',$bizRule=null,$data=null);
创建一个授权项。 一个授权项表示允许一个动作(例如,创建一个贴子)。 它有三种类型:操作,任务和角色。 授权项是一个层次结构。 高级项继承低级项。
executeBizRule()
方法
abstract public 是否执行返回true。 executeBizRule(string $bizRule, array $params, mixed $data)
| ||
$bizRule | string | 执行的业务规则。 |
$params | array | 执行业务规则传递的附加参数。 |
$data | mixed | 分配的授权项的相关附加数据。 |
{return} | 是否执行返回true。 | 如果业务规则为空,它也将返回true。 |
public function executeBizRule($bizRule,$params,$data);
执行业务规则。 业务规则是一块PHP代码当调用checkAccess时将被执行。
getAuthAssignment()
方法
abstract public 授权项分配信息。 getAuthAssignment(string $itemName, mixed $userId)
| ||
$itemName | string | 授权项名称 |
$userId | mixed | 用户ID(参见 IWebUser::getId) |
{return} | 授权项分配信息。 | 如果返回的授权项没有分配给用户将返回null。 |
public function getAuthAssignment($itemName,$userId);
返回授权项分配信息。
getAuthAssignments()
方法
abstract public array getAuthAssignments(mixed $userId)
| ||
$userId | mixed | 用户ID(参见 IWebUser::getId) |
{return} | array | 用户的授权项分配信息。 如果用户没有分配授权项将返回空数组。 |
public function getAuthAssignments($userId);
返回指定用户的授权项分配信息。
getAuthItem()
方法
abstract public CAuthItem getAuthItem(string $name)
| ||
$name | string | 授权项名 |
{return} | CAuthItem | 授权项。如果没有找到将返回null。 |
public function getAuthItem($name);
返回指定名字的授权项
getAuthItems()
方法
abstract public array getAuthItems(integer $type=NULL, mixed $userId=NULL)
| ||
$type | integer | 授权项类型(0:操作,1:任务,2:角色)。默认为null, 意味着返回所有类型的授权项。 |
$userId | mixed | 用户ID。默认为null, 意味着返回所有授权项,包括未分配给用户的授权项。 |
{return} | array | 授权项的具体类型. |
public function getAuthItems($type=null,$userId=null);
返回指定类型和用户的授权项。
getItemChildren()
方法
abstract public array getItemChildren(mixed $itemName)
| ||
$itemName | mixed | 父授权项名。它可以是字符串或数组。 后者表示一个授权项名的列表。 |
{return} | array | 父授权项的所有子授权项 |
public function getItemChildren($itemName);
返回指定授权项的子授权项。
hasItemChild()
方法
abstract public boolean hasItemChild(string $itemName, string $childName)
| ||
$itemName | string | 父授权项名称 |
$childName | string | 子授权项名称 |
{return} | boolean | 是否存在子授权项 |
public function hasItemChild($itemName,$childName);
返回一个值表示父授权项是否存在子授权项。
isAssigned()
方法
abstract public boolean isAssigned(string $itemName, mixed $userId)
| ||
$itemName | string | 授权项名称 |
$userId | mixed | 用户ID(参见 IWebUser::getId) |
{return} | boolean | 授权项是否分配给指定用户。 |
public function isAssigned($itemName,$userId);
返回一个值表示判断授权项是否分配给指定用户。
removeAuthItem()
方法
abstract public boolean removeAuthItem(string $name)
| ||
$name | string | 授权项名称 |
{return} | boolean | 无论授权项是否存在都将移除 |
public function removeAuthItem($name);
移除指定授权项。
removeItemChild()
方法
abstract public boolean removeItemChild(string $itemName, string $childName)
| ||
$itemName | string | 父授权项名称 |
$childName | string | 子授权项名称 |
{return} | boolean | whether 是否移除成功 |
public function removeItemChild($itemName,$childName);
从父授权项中移除子授权项。 注意,子授权项并不会真正被删除,仅移除父子关系。
revoke()
方法
abstract public boolean revoke(string $itemName, mixed $userId)
| ||
$itemName | string | 授权项名称 |
$userId | mixed | 用户ID(参见 IWebUser::getId) |
{return} | boolean | 是否移除成功 |
public function revoke($itemName,$userId);
撤销一个用户分配的授权项。
save()
方法
abstract public void save()
|
public function save();
保存授权数据到持久存储。 如果授权数据有任何改变, 请确保你调用的这个方法能将改变数据保存到持久存储。
saveAuthAssignment()
方法
abstract public void saveAuthAssignment(CAuthAssignment $assignment)
| ||
$assignment | CAuthAssignment | 已经修改的授权信息。 |
public function saveAuthAssignment($assignment);
保存修改的授权信息。
saveAuthItem()
方法
abstract public void saveAuthItem(CAuthItem $item, string $oldName=NULL)
| ||
$item | CAuthItem | 授权项。 |
$oldName | string | 授权项名称,如果为null,意味着授权项名没有改变。 |
public function saveAuthItem($item,$oldName=null);
保存授权项到持久存储。