IAuthManager


system.base
继承 interface IAuthManager
子类 CAuthManager, CDbAuthManager, CPhpAuthManager
源自 1.0
版本 $Id: interfaces.php 3515 2011-12-28 12:29:24Z mdomba $
源码
IAuthManager是验证管理组件必须实现的接口。

验证管理主要负责基于角色访问控制(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);

保存授权项到持久存储。