CAuthItem
优质
小牛编辑
136浏览
2023-12-01
所有包 | 属性 | 方法
CAuthItem代表的授权项目。 一个授权项目可以是一个操作,一个任务,或者是一个角色。 他们形成一个授权的层级关系。在这个层级里面, 高层继承了低层的权限。 一个用户可以授权一个或者多个项目(称之为任务)。 他只能访问那些已经授权的项目。
public void setBizRule(string $value)
public void setData(mixed $value)
public void setDescription(string $value)
public void setName(string $value)
源码: framework/web/auth/CAuthItem.php#54 (显示)
源码: framework/web/auth/CAuthItem.php#191 (显示)
源码: framework/web/auth/CAuthItem.php#239 (显示)
源码: framework/web/auth/CAuthItem.php#71 (显示)
源码: framework/web/auth/CAuthItem.php#273 (显示)
源码: framework/web/auth/CAuthItem.php#90 (显示)
源码: framework/web/auth/CAuthItem.php#147 (显示)
源码: framework/web/auth/CAuthItem.php#224 (显示)
源码: framework/web/auth/CAuthItem.php#167 (显示)
源码: framework/web/auth/CAuthItem.php#127 (显示)
源码: framework/web/auth/CAuthItem.php#106 (显示)
源码: framework/web/auth/CAuthItem.php#98 (显示)
源码: framework/web/auth/CAuthItem.php#214 (显示)
源码: framework/web/auth/CAuthItem.php#261 (显示)
源码: framework/web/auth/CAuthItem.php#203 (显示)
源码: framework/web/auth/CAuthItem.php#250 (显示)
源码: framework/web/auth/CAuthItem.php#155 (显示)
源码: framework/web/auth/CAuthItem.php#175 (显示)
源码: framework/web/auth/CAuthItem.php#135 (显示)
源码: framework/web/auth/CAuthItem.php#114 (显示)
包 | 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 |
公共属性
隐藏继承属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
authManager | IAuthManager | 授权管理器 | CAuthItem |
bizRule | string | 这个任务关联的业务规则。 | CAuthItem |
children | array | 返回这个项目的所有子项目。 | CAuthItem |
data | mixed | 这个任务的额外的数据。 | CAuthItem |
description | string | 项目描述 | CAuthItem |
name | string | 项目名字。 | CAuthItem |
type | integer | 授权项目类型。包括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
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) | ||
$auth | IAuthManager | 授权管理器。 |
$name | string | 授权项目名字。 |
$type | integer | 授权项目类型。包括0(操作),1(任务)或者2(角色)。 |
$description | description | 项目描述。 |
$bizRule | string | 这个项目关联的业务规则。 |
$data | mixed | 这个任务的额外的数据。 |
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) | ||
$name | string | 子项目的名字 |
{return} | boolean | 这个项目是否已经被成功添加 |
publicfunctionaddChild($name)
{
return$this->_auth->addItemChild($this->_name,$name);
}
添加一个子项目。
参见
- IAuthManager::addItemChild
public CAuthAssignment assign(mixed $userId, string $bizRule=NULL, mixed $data=NULL) | ||
$userId | mixed | 用户ID(详见IWebUser::getId) |
$bizRule | string | 当调用checkAccess特别是授权项目 时要运行的业务规则。 |
$data | mixed | 随着这个任务所附带的额外数据。 |
{return} | CAuthAssignment | 授权任务信息。 |
publicfunctionassign($userId,$bizRule=null,$data=null)
{
return$this->_auth->assign($this->_name,$userId,$bizRule,$data);
}
将这个项目赋予给用户。
参见
- IAuthManager::assign
public boolean checkAccess(string $itemName, array $params=array ( )) | ||
$itemName | string | 要检查的项目名字。 |
$params | array | 要传递给业务规则审评的参数。 |
{return} | boolean | 指定的项目是否存在于这个项目的层级里面。 |
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) | ||
$userId | mixed | 用户ID (详见IWebUser::getId) |
{return} | CAuthAssignment | 赋予的项目的信息。返回Null 意味着这个项目没有赋予给用户。 |
publicfunctiongetAssignment($userId)
{
return$this->_auth->getAuthAssignment($this->_name,$userId);
}
返回赋予的项目任务信息
参见
- IAuthManager::getAuthAssignment
public IAuthManager getAuthManager() | ||
{return} | IAuthManager | 授权管理器 |
publicfunctiongetAuthManager()
{
return$this->_auth;
}
getBizRule() 方法public string getBizRule() | ||
{return} | string | 这个任务关联的业务规则。 |
publicfunctiongetBizRule()
{
return$this->_bizRule;
}
getChildren() 方法public array getChildren() | ||
{return} | array | 这个项目的所有子项目。 |
publicfunctiongetChildren()
{
return$this->_auth->getItemChildren($this->_name);
}
返回这个项目的所有子项目。
参见
- IAuthManager::getItemChildren
public mixed getData() | ||
{return} | mixed | 这个任务的额外的数据。 |
publicfunctiongetData()
{
return$this->_data;
}
getDescription() 方法public string getDescription() | ||
{return} | string | 项目描述 |
publicfunctiongetDescription()
{
return$this->_description;
}
getName() 方法public string getName() | ||
{return} | string | 项目名字。 |
publicfunctiongetName()
{
return$this->_name;
}
getType() 方法public integer getType() | ||
{return} | integer | 授权项目类型。包括0(操作),1(任务)或者2(角色)。 |
publicfunctiongetType()
{
return$this->_type;
}
hasChild() 方法public boolean hasChild(string $name) | ||
$name | string | 子项目名字 |
{return} | boolean | 这个子项目是否存在 |
publicfunctionhasChild($name)
{
return$this->_auth->hasItemChild($this->_name,$name);
}
返回一个值说明这个子项目是否存在
参见
- IAuthManager::hasItemChild
public boolean isAssigned(mixed $userId) | ||
$userId | mixed | 用户ID (详见IWebUser::getId) |
{return} | boolean | 如果项目已经赋予给用户,则抛出异常。 |
publicfunctionisAssigned($userId)
{
return$this->_auth->isAssigned($this->_name,$userId);
}
返回值说明这个项目是否已经赋予给用户。
参见
- IAuthManager::isAssigned
public boolean removeChild(string $name) | ||
$name | string | 子项目名字 |
{return} | boolean | 返回是否删除成功 |
publicfunctionremoveChild($name)
{
return$this->_auth->removeItemChild($this->_name,$name);
}
移除子项目。 要注意的是,子项目是没有被删除的。只是它跟父项目的关系解。
参见
- IAuthManager::removeItemChild
public boolean revoke(mixed $userId) | ||
$userId | mixed | 用户ID (详见IWebUser::getId) |
{return} | boolean | 是否已经移除成功 |
publicfunctionrevoke($userId)
{
$this->_auth->revoke($this->_name,$userId);
}
撤消用户的授权任务。
参见
- IAuthManager::revoke
public void setBizRule(string $value) | ||
$value | string | 这个任务关联的业务规则。 |
publicfunctionsetBizRule($value)
{
if($this->_bizRule!==$value)
{
$this->_bizRule=$value;
$this->_auth->saveAuthItem($this);
}
}
setData() 方法public void setData(mixed $value) | ||
$value | mixed | 这个任务的额外的数据。 |
publicfunctionsetData($value)
{
if($this->_data!==$value)
{
$this->_data=$value;
$this->_auth->saveAuthItem($this);
}
}
setDescription() 方法public void setDescription(string $value) | ||
$value | string | 项目描述 |
publicfunctionsetDescription($value)
{
if($this->_description!==$value)
{
$this->_description=$value;
$this->_auth->saveAuthItem($this);
}
}
setName() 方法public void setName(string $value) | ||
$value | string | 项目名字。 |
publicfunctionsetName($value)
{
if($this->_name!==$value)
{
$oldName=$this->_name;
$this->_name=$value;
$this->_auth->saveAuthItem($this,$oldName);
}
}