Spec-Zone.ru › Yii 1.1

CAuthManager

Пакет system.web.auth
Наследование абстрактный класс CAuthManager » CApplicationComponent » CComponent
Реализует IApplicationComponent, IAuthManager
Подклассы CDbAuthManager, CPhpAuthManager
С версии 1.0
Исходный код framework/web/auth/CAuthManager.php
CAuthManager — базовый класс для классов менеджеров авторизации.

CAuthManager расширяет CApplicationComponent и реализует некоторые методы, которые являются общими для классов менеджеров авторизации.

CAuthManager вместе со своими конкретными дочерними классами реализует контроль доступа на основе ролей (RBAC).

Основная идея заключается в том, что разрешения организованы в иерархии элементов авторизации. Элементы на более высоком уровне наследуют разрешения, представленные элементами на более низком уровне. А роли — это просто элементы авторизации верхнего уровня, которые могут быть назначены отдельным пользователям. Пользователь считается имеющим разрешение на выполнение чего-либо, если соответствующий элемент авторизации унаследован одной из его ролей.

Использование менеджера авторизации состоит из двух аспектов. Во-первых, необходимо установить иерархию авторизации и назначение. CAuthManager и его дочерние классы предоставляют API для выполнения этой задачи. Разработчикам может потребоваться разработать какой-либо интерфейс для конечных пользователей для более интуитивного использования. Во-вторых, разработчики вызывают IAuthManager::checkAccess в соответствующих местах кода приложения, чтобы проверить, имеет ли текущий пользователь необходимое разрешение для операции.

Свойства Public

Свойство Тип Описание Определено в
authItems массив Возвращает элементы авторизации указанного типа и пользователя. IAuthManager
behaviors массив поведения, которые должны быть присоединены к этому компоненту. CApplicationComponent
defaultRoles массив список имен ролей, которые неявно назначаются всем пользователям. CAuthManager
isInitialized boolean Проверяет, был ли инициализирован этот компонент приложения. CApplicationComponent
operations массив Возвращает операции. CAuthManager
roles массив Возвращает роли. CAuthManager
showErrors boolean Включить вывод ошибок для bizRules. CAuthManager
tasks массив Возвращает задачи. CAuthManager

Общедоступные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. CComponent
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства нулевым. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в значение null. CComponent
addItemChild() Добавляет элемент в качестве дочернего элемента другого элемента. IAuthManager
asa() Возвращает объект именованного поведения. CComponent
assign() Присваивает элемент авторизации пользователю. IAuthManager
attachBehavior() Присоединяет поведение к данному компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
checkAccess() Выполняет проверку доступа для указанного пользователя. IAuthManager
clearAll() Удаляет все данные авторизации. IAuthManager
clearAuthAssignments() Удаляет все назначения авторизации. IAuthManager
createAuthItem() Создаёт элемент авторизации. IAuthManager
createOperation() Создаёт операцию. CAuthManager
createRole() Создаёт роль. CAuthManager
createTask() Создаёт задачу. CAuthManager
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединённые к этому компоненту поведения. CComponent
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединённые к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет выражение PHP или обратный вызов в контексте этого компонента. CComponent
executeBizRule() Выполняет указанное правило бизнеса. CAuthManager
getAuthAssignment() Возвращает информацию о назначении элемента. IAuthManager
getAuthAssignments() Возвращает назначения элементов для указанного пользователя. IAuthManager
getAuthItem() Возвращает элемент авторизации с указанным именем. IAuthManager
getAuthItems() Возвращает элементы авторизации заданного типа и пользователя. IAuthManager
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getIsInitialized() Проверяет, был ли инициализирован этот компонент приложения. CApplicationComponent
getItemChildren() Возвращает дочерние элементы указанного элемента. IAuthManager
getOperations() Возвращает операции. CAuthManager
getRoles() Возвращает роли. CAuthManager
getTasks() Возвращает задачи. CAuthManager
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли у именованного события присоединённые обработчики. CComponent
hasItemChild() Возвращает значение, указывающее, существует ли дочерний элемент в родительском элементе. IAuthManager
hasProperty() Определяет, определено ли свойство. CComponent
init() Инициализирует компонент приложения. CApplicationComponent
isAssigned() Возвращает значение, указывающее, был ли элемент назначен пользователю. IAuthManager
raiseEvent() Вызывает событие. CComponent
removeAuthItem() Удаляет указанный элемент авторизации. IAuthManager
removeItemChild() Удаляет дочерний элемент из родительского элемента. IAuthManager
revoke() Отменяет назначение авторизации пользователя. IAuthManager
save() Сохраняет данные авторизации в постоянное хранилище. IAuthManager
saveAuthAssignment() Сохраняет изменения в назначении авторизации. IAuthManager
saveAuthItem() Сохраняет элемент авторизации в постоянном хранилище. IAuthManager

Защищенные методы

Метод Описание Определено в
checkItemChildType() Проверяет типы элементов, чтобы убедиться, что дочерний элемент может быть добавлен к родителю. CAuthManager

Подробное описание свойств

defaultRoles свойство

public array $defaultRoles;

список имён ролей, которые неявно назначаются всем пользователям. Эти роли не нужно явно назначать ни одному пользователю. При вызове checkAccess, эти роли будут проверены в первую очередь. По соображениям производительности следует минимизировать количество таких ролей. Типичное использование таких ролей заключается в определении роли «авторизован» и связывании её с правилом бизнес-логики, которое проверяет, авторизован ли текущий пользователь. Затем объявите «авторизован» в этом свойстве, чтобы его можно было применить к каждому авторизованному пользователю.

операции свойство только для чтения

public array getOperations(mixed $userId=NULL)

Возвращает операции. Это метод-костыль для IAuthManager::getAuthItems.

роли свойство только для чтения

public array getRoles(mixed $userId=NULL)

Возвращает роли. Это метод-костыль для IAuthManager::getAuthItems.

showErrors свойство (доступно начиная с v1.1.3)

public boolean $showErrors;

Включить отчёт об ошибках для правил бизнес-логики.

задачи свойство только для чтения

public array getTasks(mixed $userId=NULL)

Возвращает задачи. Это метод-костыль для IAuthManager::getAuthItems.

Подробное описание методов

checkItemChildType() метод

protected void checkItemChildType(integer $parentType, integer $childType)
$parentType целое тип родительского элемента
$childType целое тип дочернего элемента
Исходный код: framework/web/auth/CAuthManager.php#172 (показать)
protected function checkItemChildType($parentType,$childType)
{
    static 
$types=array('operation','task','role');
    if(
$parentType < $childType)
        throw new 
CException(Yii::t('yii','Cannot add an item of type "{child}" to an item of type "{parent}".',
            array(
'{child}'=>$types[$childType], '{parent}'=>$types[$parentType])));
}

Проверяет типы элементов, чтобы убедиться, что к родителю можно добавить дочерний элемент.

createOperation() метод

public CAuthItem createOperation(string $name, string $description='', string $bizRule=NULL, mixed $data=NULL)
$name строка имя элемента
$description строка описание элемента.
$bizRule строка правило бизнес-логики, связанное с этим элементом
$data смешанный тип дополнительные данные, которые будут переданы при оценке правила бизнес-логики
{return} CAuthItem элемент авторизации
Исходный код: framework/web/auth/CAuthManager.php#98 (показать)
public function createOperation($name,$description='',$bizRule=null,$data=null)
{
    return 
$this->createAuthItem($name,CAuthItem::TYPE_OPERATION,$description,$bizRule,$data);
}

Создаёт операцию. Это метод-костыль для IAuthManager::createAuthItem.

createRole() метод

public CAuthItem createRole(string $name, string $description='', string $bizRule=NULL, mixed $data=NULL)
$name строка имя элемента
$description строка описание элемента.
$bizRule строка правило бизнес-логики, связанное с этим элементом
$data смешанный тип дополнительные данные, которые будут переданы при оценке правила бизнес-логики
{return} CAuthItem элемент авторизации
Исходный код: framework/web/auth/CAuthManager.php#70 (показать)
public function createRole($name,$description='',$bizRule=null,$data=null)
{
    return 
$this->createAuthItem($name,CAuthItem::TYPE_ROLE,$description,$bizRule,$data);
}

Создаёт роль. Это метод-костыль для IAuthManager::createAuthItem.

createTask() метод

public CAuthItem createTask(string $name, string $description='', string $bizRule=NULL, mixed $data=NULL)
$name строка имя элемента
$description строка описание элемента.
$bizRule строка правило бизнес-логики, связанное с этим элементом
$data смешанный тип дополнительные данные, которые будут переданы при оценке правила бизнес-логики
{return} CAuthItem элемент авторизации
Исходный код: framework/web/auth/CAuthManager.php#84 (показать)
public function createTask($name,$description='',$bizRule=null,$data=null)
{
    return 
$this->createAuthItem($name,CAuthItem::TYPE_TASK,$description,$bizRule,$data);
}

Создаёт задачу. Это метод-костыль для IAuthManager::createAuthItem.

executeBizRule() метод

public boolean executeBizRule(string $bizRule, array $params, mixed $data)
$bizRule строка правило бизнес-логики, которое необходимо выполнить.
$params массив параметры, передаваемые в IAuthManager::checkAccess.
$data смешанный тип дополнительные данные, связанные с элементом авторизации или назначением.
{return} булево true, если правило бизнес-логики возвращает true. Если правило бизнес-логики пустое, оно всё равно вернёт true.
Исходный код: framework/web/auth/CAuthManager.php#147 (показать)
public function executeBizRule($bizRule,$params,$data)
{
    if(
$bizRule==='' || $bizRule===null)
        return 
true;
    if (
$this->showErrors)
        return eval(
$bizRule)!=0;
    else
    {
        try
        {
            return @eval(
$bizRule)!=0;
        }
        catch (
ParseError $e)
        {
            return 
false;
        }
    }
}

Выполняет указанное правило бизнес-логики.

getOperations() метод

public array getOperations(mixed $userId=NULL)
$userId смешанный тип ID пользователя. Если не null, будут возвращены только операции, напрямую назначенные пользователю. В противном случае будут возвращены все операции.
{return} массив операции (имя=>CAuthItem)
Исходный код: framework/web/auth/CAuthManager.php#134 (показать)
public function getOperations($userId=null)
{
    return 
$this->getAuthItems(CAuthItem::TYPE_OPERATION,$userId);
}

Возвращает операции. Это метод-костыль для IAuthManager::getAuthItems.

getRoles() метод

public array getRoles(mixed $userId=NULL)
$userId смешанный тип ID пользователя. Если не null, будут возвращены только роли, напрямую назначенные пользователю. В противном случае будут возвращены все роли.
{return} массив роли (имя=>CAuthItem)
Исходный код: framework/web/auth/CAuthManager.php#110 (показать)
public function getRoles($userId=null)
{
    return 
$this->getAuthItems(CAuthItem::TYPE_ROLE,$userId);
}

Возвращает роли. Это метод-костыль для IAuthManager::getAuthItems.

getTasks() метод

public array getTasks(mixed $userId=NULL)
$userId смешанный тип ID пользователя. Если не null, будут возвращены только задачи, напрямую назначенные пользователю. В противном случае будут возвращены все задачи.
{return} массив задачи (имя=>CAuthItem)
Исходный код: framework/web/auth/CAuthManager.php#122 (показать)
public function getTasks($userId=null)
{
    return 
$this->getAuthItems(CAuthItem::TYPE_TASK,$userId);
}

Возвращает задачи. Это метод-костыль для IAuthManager::getAuthItems.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CAuthManager

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API