You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.4 KiB
106 lines
2.4 KiB
<?php |
|
/** |
|
* @link http://www.yiiframework.com/ |
|
* @copyright Copyright (c) 2008 Yii Software LLC |
|
* @license http://www.yiiframework.com/license/ |
|
*/ |
|
|
|
namespace yii\rbac; |
|
|
|
use Yii; |
|
use yii\base\Object; |
|
|
|
/** |
|
* Assignment represents an assignment of a role to a user. |
|
* It includes additional assignment information such as [[bizRule]] and [[data]]. |
|
* Do not create a Assignment instance using the 'new' operator. |
|
* Instead, call [[Manager::assign()]]. |
|
* |
|
* @property mixed $userId User ID (see [[User::id]]). |
|
* @property string $itemName The authorization item name. |
|
* @property string $bizRule The business rule associated with this assignment. |
|
* @property mixed $data Additional data for this assignment. |
|
* |
|
* @author Qiang Xue <qiang.xue@gmail.com> |
|
* @author Alexander Kochetov <creocoder@gmail.com> |
|
* @since 2.0 |
|
*/ |
|
class Assignment extends Object |
|
{ |
|
private $_auth; |
|
private $_userId; |
|
private $_itemName; |
|
private $_bizRule; |
|
private $_data; |
|
|
|
/** |
|
* Constructor. |
|
* @param Manager $auth the authorization manager |
|
* @param mixed $userId user ID (see [[User::id]]) |
|
* @param string $itemName authorization item name |
|
* @param string $bizRule the business rule associated with this assignment |
|
* @param mixed $data additional data for this assignment |
|
*/ |
|
public function __construct($auth, $userId, $itemName, $bizRule = null, $data = null) |
|
{ |
|
$this->_auth = $auth; |
|
$this->_userId = $userId; |
|
$this->_itemName = $itemName; |
|
$this->_bizRule = $bizRule; |
|
$this->_data = $data; |
|
} |
|
|
|
/** |
|
* @return mixed user ID (see [[User::id]]) |
|
*/ |
|
public function getUserId() |
|
{ |
|
return $this->_userId; |
|
} |
|
|
|
/** |
|
* @return string the authorization item name |
|
*/ |
|
public function getItemName() |
|
{ |
|
return $this->_itemName; |
|
} |
|
|
|
/** |
|
* @return string the business rule associated with this assignment |
|
*/ |
|
public function getBizRule() |
|
{ |
|
return $this->_bizRule; |
|
} |
|
|
|
/** |
|
* @param string $value the business rule associated with this assignment |
|
*/ |
|
public function setBizRule($value) |
|
{ |
|
if ($this->_bizRule !== $value) { |
|
$this->_bizRule = $value; |
|
$this->_auth->saveAssignment($this); |
|
} |
|
} |
|
|
|
/** |
|
* @return mixed additional data for this assignment |
|
*/ |
|
public function getData() |
|
{ |
|
return $this->_data; |
|
} |
|
|
|
/** |
|
* @param mixed $value additional data for this assignment |
|
*/ |
|
public function setData($value) |
|
{ |
|
if ($this->_data !== $value) { |
|
$this->_data = $value; |
|
$this->_auth->saveAssignment($this); |
|
} |
|
} |
|
}
|
|
|