CAuthItem

优质
小牛编辑
136浏览
2023-12-01
所有包 | 属性 | 方法
system.web.auth
继承class CAuthItem » CComponent
源自1.0
版本$Id: CAuthItem.php 3442 2011-11-09 02:48:50Z alexander.makarow $
源码framework/web/auth/CAuthItem.php
CAuthItem代表的授权项目。 一个授权项目可以是一个操作,一个任务,或者是一个角色。 他们形成一个授权的层级关系。在这个层级里面, 高层继承了低层的权限。 一个用户可以授权一个或者多个项目(称之为任务)。 他只能访问那些已经授权的项目。

公共属性

隐藏继承属性

属性类型描述定义在
authManagerIAuthManager授权管理器CAuthItem
bizRulestring这个任务关联的业务规则。CAuthItem
childrenarray返回这个项目的所有子项目。CAuthItem
datamixed这个任务的额外的数据。CAuthItem
descriptionstring项目描述CAuthItem
namestring项目名字。CAuthItem
typeinteger授权项目类型。包括0(操作),1(任务)或者2(角色)。CAuthItem

公共方法

隐藏继承方法

方法描述定义在
__call()如果类中没有调的方法名,则调用这个方法。CComponent
__construct()构造方法。CAuthItem
__get()返回一个属性值、一个事件处理程序列表或一个行为名称。CComponent
__isset()检查一个属性是否为null。CComponent
__set()设置一个组件的属性值。CComponent
__unset()设置一个组件的属性为null。CComponent
addChild()添加一个子项目。CAuthItem
asa()返回这个名字的行为对象。CComponent
assign()将这个项目赋予给用户。CAuthItem
attachBehavior()附加一个行为到组件。CComponent
attachBehaviors()附加一个行为列表到组件。CComponent
attachEventHandler()为事件附加一个事件处理程序。CComponent
canGetProperty()确定属性是否可读。CComponent
canSetProperty()确定属性是否可写。CComponent
checkAccess()检查指定的项目是否在当前这个项目的层级里面。CAuthItem
detachBehavior()从组件中分离一个行为。CComponent
detachBehaviors()从组件中分离所有行为。CComponent
detachEventHandler()分离一个存在的事件处理程序。CComponent
disableBehavior()禁用一个附加行为。CComponent
disableBehaviors()禁用组件附加的所有行为。CComponent
enableBehavior()启用一个附加行为。CComponent
enableBehaviors()启用组件附加的所有行为。CComponent
evaluateExpression()计算一个PHP表达式,或根据组件上下文执行回调。CComponent
getAssignment()返回赋予的项目任务信息CAuthItem
getAuthManager()返回授权管理器CAuthItem
getBizRule()返回这个任务关联的业务规则。CAuthItem
getChildren()返回这个项目的所有子项目。CAuthItem
getData()返回这个任务的额外的数据。CAuthItem
getDescription()返回项目描述CAuthItem
getEventHandlers()返回一个事件的附加处理程序列表。CComponent
getName()返回项目名字。CAuthItem
getType()返回授权项目类型。包括0(操作),1(任务)或者2(角色)。CAuthItem
hasChild()返回一个值说明这个子项目是否存在CAuthItem
hasEvent()确定一个事件是否定义。CComponent
hasEventHandler()检查事件是否有附加的处理程序。CComponent
hasProperty()确定属性是否被定义。CComponent
isAssigned()返回值说明这个项目是否已经赋予给用户。CAuthItem
raiseEvent()发起一个事件。CComponent
removeChild()移除子项目。CAuthItem
revoke()撤消用户的授权任务。CAuthItem
setBizRule()设置这个任务关联的业务规则。CAuthItem
setData()设置这个任务的额外的数据。CAuthItem
setDescription()设置项目描述CAuthItem
setName()设置项目名字。CAuthItem

属性详细

authManager 属性 只读 public IAuthManager getAuthManager()

授权管理器

bizRule 属性 public string getBizRule()
public void setBizRule(string $value)

这个任务关联的业务规则。

children 属性 只读 public array getChildren()

返回这个项目的所有子项目。

参见

  • IAuthManager::getItemChildren
data 属性 public mixed getData()
public void setData(mixed $value)

这个任务的额外的数据。

description 属性 public string getDescription()
public void setDescription(string $value)

项目描述

name 属性 public string getName()
public void setName(string $value)

项目名字。

type 属性 只读 public integer getType()

授权项目类型。包括0(操作),1(任务)或者2(角色)。

方法详细

__construct() 方法
public void __construct(IAuthManager $auth, string $name, integer $type, description $description='', string $bizRule=NULL, mixed $data=NULL)
$authIAuthManager授权管理器。
$namestring授权项目名字。
$typeinteger授权项目类型。包括0(操作),1(任务)或者2(角色)。
$descriptiondescription项目描述。
$bizRulestring这个项目关联的业务规则。
$datamixed这个任务的额外的数据。
源码: framework/web/auth/CAuthItem.php#54 (显示) publicfunction__construct($auth,$name,$type,$description='',$bizRule=null,$data=null)
{
$this->_type=(int)$type;
$this->_auth=$auth;
$this->_name=$name;
$this->_description=$description;
$this->_bizRule=$bizRule;
$this->_data=$data;
}

构造方法。

addChild() 方法
public boolean addChild(string $name)
$namestring子项目的名字
{return}boolean这个项目是否已经被成功添加
源码: framework/web/auth/CAuthItem.php#191 (显示) publicfunctionaddChild($name)
{
return$this->_auth->addItemChild($this->_name,$name);
}

添加一个子项目。

参见

  • IAuthManager::addItemChild
assign() 方法
public CAuthAssignment assign(mixed $userId, string $bizRule=NULL, mixed $data=NULL)
$userIdmixed用户ID(详见IWebUser::getId)
$bizRulestring当调用checkAccess特别是授权项目 时要运行的业务规则。
$datamixed随着这个任务所附带的额外数据。
{return}CAuthAssignment授权任务信息。
源码: framework/web/auth/CAuthItem.php#239 (显示) publicfunctionassign($userId,$bizRule=null,$data=null)
{
return$this->_auth->assign($this->_name,$userId,$bizRule,$data);
}

将这个项目赋予给用户。

参见

  • IAuthManager::assign
checkAccess() 方法
public boolean checkAccess(string $itemName, array $params=array ( ))
$itemNamestring要检查的项目名字。
$paramsarray要传递给业务规则审评的参数。
{return}boolean指定的项目是否存在于这个项目的层级里面。
源码: framework/web/auth/CAuthItem.php#71 (显示) publicfunctioncheckAccess($itemName,$params=array())
{
Yii::trace('Checkingpermission"'.$this->_name.'"','system.web.auth.CAuthItem');
if($this->_auth->executeBizRule($this->_bizRule,$params,$this->_data))
{
if($this->_name==$itemName)
returntrue;
foreach($this->_auth->getItemChildren($this->_name)as$item)
{
if($item->checkAccess($itemName,$params))
returntrue;
}
}
returnfalse;
}

检查指定的项目是否在当前这个项目的层级里面。 这个方法是IAuthManager::checkAccess内部使用的。

getAssignment() 方法
public CAuthAssignment getAssignment(mixed $userId)
$userIdmixed用户ID (详见IWebUser::getId)
{return}CAuthAssignment赋予的项目的信息。返回Null 意味着这个项目没有赋予给用户。
源码: framework/web/auth/CAuthItem.php#273 (显示) publicfunctiongetAssignment($userId)
{
return$this->_auth->getAuthAssignment($this->_name,$userId);
}

返回赋予的项目任务信息

参见

  • IAuthManager::getAuthAssignment
getAuthManager() 方法
public IAuthManager getAuthManager()
{return}IAuthManager授权管理器
源码: framework/web/auth/CAuthItem.php#90 (显示) publicfunctiongetAuthManager()
{
return$this->_auth;
}
getBizRule() 方法
public string getBizRule()
{return}string这个任务关联的业务规则。
源码: framework/web/auth/CAuthItem.php#147 (显示) publicfunctiongetBizRule()
{
return$this->_bizRule;
}
getChildren() 方法
public array getChildren()
{return}array这个项目的所有子项目。
源码: framework/web/auth/CAuthItem.php#224 (显示) publicfunctiongetChildren()
{
return$this->_auth->getItemChildren($this->_name);
}

返回这个项目的所有子项目。

参见

  • IAuthManager::getItemChildren
getData() 方法
public mixed getData()
{return}mixed这个任务的额外的数据。
源码: framework/web/auth/CAuthItem.php#167 (显示) publicfunctiongetData()
{
return$this->_data;
}
getDescription() 方法
public string getDescription()
{return}string项目描述
源码: framework/web/auth/CAuthItem.php#127 (显示) publicfunctiongetDescription()
{
return$this->_description;
}
getName() 方法
public string getName()
{return}string项目名字。
源码: framework/web/auth/CAuthItem.php#106 (显示) publicfunctiongetName()
{
return$this->_name;
}
getType() 方法
public integer getType()
{return}integer授权项目类型。包括0(操作),1(任务)或者2(角色)。
源码: framework/web/auth/CAuthItem.php#98 (显示) publicfunctiongetType()
{
return$this->_type;
}
hasChild() 方法
public boolean hasChild(string $name)
$namestring子项目名字
{return}boolean这个子项目是否存在
源码: framework/web/auth/CAuthItem.php#214 (显示) publicfunctionhasChild($name)
{
return$this->_auth->hasItemChild($this->_name,$name);
}

返回一个值说明这个子项目是否存在

参见

  • IAuthManager::hasItemChild
isAssigned() 方法
public boolean isAssigned(mixed $userId)
$userIdmixed用户ID (详见IWebUser::getId)
{return}boolean如果项目已经赋予给用户,则抛出异常。
源码: framework/web/auth/CAuthItem.php#261 (显示) publicfunctionisAssigned($userId)
{
return$this->_auth->isAssigned($this->_name,$userId);
}

返回值说明这个项目是否已经赋予给用户。

参见

  • IAuthManager::isAssigned
removeChild() 方法
public boolean removeChild(string $name)
$namestring子项目名字
{return}boolean返回是否删除成功
源码: framework/web/auth/CAuthItem.php#203 (显示) publicfunctionremoveChild($name)
{
return$this->_auth->removeItemChild($this->_name,$name);
}

移除子项目。 要注意的是,子项目是没有被删除的。只是它跟父项目的关系解。

参见

  • IAuthManager::removeItemChild
revoke() 方法
public boolean revoke(mixed $userId)
$userIdmixed用户ID (详见IWebUser::getId)
{return}boolean是否已经移除成功
源码: framework/web/auth/CAuthItem.php#250 (显示) publicfunctionrevoke($userId)
{
$this->_auth->revoke($this->_name,$userId);
}

撤消用户的授权任务。

参见

  • IAuthManager::revoke
setBizRule() 方法
public void setBizRule(string $value)
$valuestring这个任务关联的业务规则。
源码: framework/web/auth/CAuthItem.php#155 (显示) publicfunctionsetBizRule($value)
{
if($this->_bizRule!==$value)
{
$this->_bizRule=$value;
$this->_auth->saveAuthItem($this);
}
}
setData() 方法
public void setData(mixed $value)
$valuemixed这个任务的额外的数据。
源码: framework/web/auth/CAuthItem.php#175 (显示) publicfunctionsetData($value)
{
if($this->_data!==$value)
{
$this->_data=$value;
$this->_auth->saveAuthItem($this);
}
}
setDescription() 方法
public void setDescription(string $value)
$valuestring项目描述
源码: framework/web/auth/CAuthItem.php#135 (显示) publicfunctionsetDescription($value)
{
if($this->_description!==$value)
{
$this->_description=$value;
$this->_auth->saveAuthItem($this);
}
}
setName() 方法
public void setName(string $value)
$valuestring项目名字。
源码: framework/web/auth/CAuthItem.php#114 (显示) publicfunctionsetName($value)
{
if($this->_name!==$value)
{
$oldName=$this->_name;
$this->_name=$value;
$this->_auth->saveAuthItem($this,$oldName);
}
}