0 follower

CAuthItem

Package system.web.auth
Inheritance class CAuthItem » CComponent
Since 1.0
Source Code framework/web/auth/CAuthItem.php
CAuthItem represents an authorization item. An authorization item can be an operation, a task or a role. They form an authorization hierarchy. Items on higher levels of the hierarchy inherit the permissions represented by items on lower levels. A user may be assigned one or several authorization items (called assignments. He can perform an operation only when it is among his assigned items.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
authManager IAuthManager the authorization manager CAuthItem
bizRule string the business rule associated with this item CAuthItem
children array Returns the children of this item. CAuthItem
data mixed the additional data associated with this item CAuthItem
description string the item description CAuthItem
name string the item name CAuthItem
type integer the authorization item type. CAuthItem

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. CComponent
__construct() Constructor. CAuthItem
__get() Returns a property value, an event handler list or a behavior based on its name. CComponent
__isset() Checks if a property value is null. CComponent
__set() Sets value of a component property. CComponent
__unset() Sets a component property to be null. CComponent
addChild() Adds a child item. CAuthItem
asa() Returns the named behavior object. CComponent
assign() Assigns this item to a user. CAuthItem
attachBehavior() Attaches a behavior to this component. CComponent
attachBehaviors() Attaches a list of behaviors to the component. CComponent
attachEventHandler() Attaches an event handler to an event. CComponent
canGetProperty() Determines whether a property can be read. CComponent
canSetProperty() Determines whether a property can be set. CComponent
checkAccess() Checks to see if the specified item is within the hierarchy starting from this item. CAuthItem
detachBehavior() Detaches a behavior from the component. CComponent
detachBehaviors() Detaches all behaviors from the component. CComponent
detachEventHandler() Detaches an existing event handler. CComponent
disableBehavior() Disables an attached behavior. CComponent
disableBehaviors() Disables all behaviors attached to this component. CComponent
enableBehavior() Enables an attached behavior. CComponent
enableBehaviors() Enables all behaviors attached to this component. CComponent
evaluateExpression() Evaluates a PHP expression or callback under the context of this component. CComponent
getAssignment() Returns the item assignment information. CAuthItem
getAuthManager() Returns the authorization manager CAuthItem
getBizRule() Returns the business rule associated with this item CAuthItem
getChildren() Returns the children of this item. CAuthItem
getData() Returns the additional data associated with this item CAuthItem
getDescription() Returns the item description CAuthItem
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
getName() Returns the item name CAuthItem
getType() Returns the authorization item type. This could be 0 (operation), 1 (task) or 2 (role). CAuthItem
hasChild() Returns a value indicating whether a child exists CAuthItem
hasEvent() Determines whether an event is defined. CComponent
hasEventHandler() Checks whether the named event has attached handlers. CComponent
hasProperty() Determines whether a property is defined. CComponent
isAssigned() Returns a value indicating whether this item has been assigned to the user. CAuthItem
raiseEvent() Raises an event. CComponent
removeChild() Removes a child item. CAuthItem
revoke() Revokes an authorization assignment from a user. CAuthItem
setBizRule() Sets the business rule associated with this item CAuthItem
setData() Sets the additional data associated with this item CAuthItem
setDescription() Sets the item description CAuthItem
setName() Sets the item name CAuthItem

Property Details

authManager property read-only

the authorization manager

bizRule property
public string getBizRule()
public void setBizRule(string $value)

the business rule associated with this item

children property read-only
public array getChildren()

Returns the children of this item.

data property
public mixed getData()
public void setData(mixed $value)

the additional data associated with this item

description property
public string getDescription()
public void setDescription(string $value)

the item description

name property
public string getName()
public void setName(string $value)

the item name

type property read-only
public integer getType()

the authorization item type. This could be 0 (operation), 1 (task) or 2 (role).

Method Details

__construct() method
public void __construct(IAuthManager $auth, string $name, integer $type, string $description='', string $bizRule=NULL, mixed $data=NULL)
$auth IAuthManager authorization manager
$name string authorization item name
$type integer authorization item type. This can be 0 (operation), 1 (task) or 2 (role).
$description string the description
$bizRule string the business rule associated with this item
$data mixed additional data for this item
Source Code: framework/web/auth/CAuthItem.php#53 (show)
public function __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;
}

Constructor.

addChild() method
public boolean addChild(string $name)
$name string the name of the child item
{return} boolean whether the item is added successfully
Source Code: framework/web/auth/CAuthItem.php#191 (show)
public function addChild($name)
{
    return 
$this->_auth->addItemChild($this->_name,$name);
}

Adds a child item.

assign() method
public CAuthAssignment assign(mixed $userId, string $bizRule=NULL, mixed $data=NULL)
$userId mixed the user ID (see IWebUser::getId)
$bizRule string the business rule to be executed when checkAccess is called for this particular authorization item.
$data mixed additional data associated with this assignment
{return} CAuthAssignment the authorization assignment information.
Source Code: framework/web/auth/CAuthItem.php#239 (show)
public function assign($userId,$bizRule=null,$data=null)
{
    return 
$this->_auth->assign($this->_name,$userId,$bizRule,$data);
}

Assigns this item to a user.

checkAccess() method
public boolean checkAccess(string $itemName, array $params=array ( ))
$itemName string the name of the item to be checked
$params array the parameters to be passed to business rule evaluation
{return} boolean whether the specified item is within the hierarchy starting from this item.
Source Code: framework/web/auth/CAuthItem.php#71 (show)
public function checkAccess($itemName,$params=array())
{
    
Yii::trace('Checking permission "'.$this->_name.'"','system.web.auth.CAuthItem');
    if(
$this->_auth->executeBizRule($this->_bizRule,$params,$this->_data))
    {
        if(
$this->_name==$itemName)
            return 
true;
        foreach(
$this->_auth->getItemChildren($this->_name) as $item)
        {
            if(
$item->checkAccess($itemName,$params))
                return 
true;
        }
    }
    return 
false;
}

Checks to see if the specified item is within the hierarchy starting from this item. This method is expected to be internally used by the actual implementations of the IAuthManager::checkAccess.

getAssignment() method
public CAuthAssignment getAssignment(mixed $userId)
$userId mixed the user ID (see IWebUser::getId)
{return} CAuthAssignment the item assignment information. Null is returned if this item is not assigned to the user.
Source Code: framework/web/auth/CAuthItem.php#273 (show)
public function getAssignment($userId)
{
    return 
$this->_auth->getAuthAssignment($this->_name,$userId);
}

Returns the item assignment information.

getAuthManager() method
public IAuthManager getAuthManager()
{return} IAuthManager the authorization manager
Source Code: framework/web/auth/CAuthItem.php#90 (show)
public function getAuthManager()
{
    return 
$this->_auth;
}

getBizRule() method
public string getBizRule()
{return} string the business rule associated with this item
Source Code: framework/web/auth/CAuthItem.php#147 (show)
public function getBizRule()
{
    return 
$this->_bizRule;
}

getChildren() method
public array getChildren()
{return} array all child items of this item.
Source Code: framework/web/auth/CAuthItem.php#224 (show)
public function getChildren()
{
    return 
$this->_auth->getItemChildren($this->_name);
}

Returns the children of this item.

getData() method
public mixed getData()
{return} mixed the additional data associated with this item
Source Code: framework/web/auth/CAuthItem.php#167 (show)
public function getData()
{
    return 
$this->_data;
}

getDescription() method
public string getDescription()
{return} string the item description
Source Code: framework/web/auth/CAuthItem.php#127 (show)
public function getDescription()
{
    return 
$this->_description;
}

getName() method
public string getName()
{return} string the item name
Source Code: framework/web/auth/CAuthItem.php#106 (show)
public function getName()
{
    return 
$this->_name;
}

getType() method
public integer getType()
{return} integer the authorization item type. This could be 0 (operation), 1 (task) or 2 (role).
Source Code: framework/web/auth/CAuthItem.php#98 (show)
public function getType()
{
    return 
$this->_type;
}

hasChild() method
public boolean hasChild(string $name)
$name string the child item name
{return} boolean whether the child exists
Source Code: framework/web/auth/CAuthItem.php#214 (show)
public function hasChild($name)
{
    return 
$this->_auth->hasItemChild($this->_name,$name);
}

Returns a value indicating whether a child exists

isAssigned() method
public boolean isAssigned(mixed $userId)
$userId mixed the user ID (see IWebUser::getId)
{return} boolean whether the item has been assigned to the user.
Source Code: framework/web/auth/CAuthItem.php#261 (show)
public function isAssigned($userId)
{
    return 
$this->_auth->isAssigned($this->_name,$userId);
}

Returns a value indicating whether this item has been assigned to the user.

removeChild() method
public boolean removeChild(string $name)
$name string the child item name
{return} boolean whether the removal is successful
Source Code: framework/web/auth/CAuthItem.php#203 (show)
public function removeChild($name)
{
    return 
$this->_auth->removeItemChild($this->_name,$name);
}

Removes a child item. Note, the child item is not deleted. Only the parent-child relationship is removed.

revoke() method
public boolean revoke(mixed $userId)
$userId mixed the user ID (see IWebUser::getId)
{return} boolean whether removal is successful
Source Code: framework/web/auth/CAuthItem.php#250 (show)
public function revoke($userId)
{
    return 
$this->_auth->revoke($this->_name,$userId);
}

Revokes an authorization assignment from a user.

setBizRule() method
public void setBizRule(string $value)
$value string the business rule associated with this item
Source Code: framework/web/auth/CAuthItem.php#155 (show)
public function setBizRule($value)
{
    if(
$this->_bizRule!==$value)
    {
        
$this->_bizRule=$value;
        
$this->_auth->saveAuthItem($this);
    }
}

setData() method
public void setData(mixed $value)
$value mixed the additional data associated with this item
Source Code: framework/web/auth/CAuthItem.php#175 (show)
public function setData($value)
{
    if(
$this->_data!==$value)
    {
        
$this->_data=$value;
        
$this->_auth->saveAuthItem($this);
    }
}

setDescription() method
public void setDescription(string $value)
$value string the item description
Source Code: framework/web/auth/CAuthItem.php#135 (show)
public function setDescription($value)
{
    if(
$this->_description!==$value)
    {
        
$this->_description=$value;
        
$this->_auth->saveAuthItem($this);
    }
}

setName() method
public void setName(string $value)
$value string the item name
Source Code: framework/web/auth/CAuthItem.php#114 (show)
public function setName($value)
{
    if(
$this->_name!==$value)
    {
        
$oldName=$this->_name;
        
$this->_name=$value;
        
$this->_auth->saveAuthItem($this,$oldName);
    }
}