Spec-Zone.ru › Yii 2.0

Класс yii\rbac\PhpManager

Все классы | Свойства | Методы
Наследование yii\rbac\PhpManager » yii\rbac\BaseManager » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable, yii\rbac\ManagerInterface
Доступно с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/rbac/PhpManager.php

PhpManager представляет собой менеджер авторизации, который хранит информацию об авторизации в виде файла PHP-скрипта.

Данные авторизации будут сохранены и загружены из трех файлов, указанных в $itemFile, $assignmentFile и $ruleFile.

PhpManager подходит в основном для данных авторизации, которые не слишком велики (например, данные авторизации для системы персонального блога). Используйте yii\rbac\DbManager для более сложных данных авторизации.

Обратите внимание, что PhpManager несовместим с HHVM facebooks, поскольку он полагается на запись PHP-файлов и их последующее включение, что не поддерживается HHVM.

Для получения более подробной информации и руководства по использованию PhpManager, см. статью руководства по авторизации безопасности.

Публичные свойства

Свойство Тип Описание Определено
$assignmentFile строка Путь к PHP-скрипту, содержащему данные о назначении разрешений. yii\rbac\PhpManager
$behaviors yii\base\Behavior[] Список присоединенных к этому компоненту поведений. yii\base\Component
$defaultRoleInstances yii\rbac\Role[] Основные роли. yii\rbac\BaseManager
$defaultRoles массив Список имен ролей, которые автоматически назначаются каждому пользователю без вызова assign(). yii\rbac\BaseManager
$itemFile строка Путь к PHP-скрипту, содержащему элементы авторизации. yii\rbac\PhpManager
$permissions yii\rbac\Permission[] Все разрешения в системе. yii\rbac\BaseManager
$roles yii\rbac\Role[] Все роли в системе. yii\rbac\BaseManager
$ruleFile строка Путь к PHP-скрипту, содержащему правила авторизации. yii\rbac\PhpManager

Защищенные свойства

Свойство Тип Описание Определено
$assignments массив yii\rbac\PhpManager
$children массив yii\rbac\PhpManager
$items yii\rbac\Item[] yii\rbac\PhpManager
$rules yii\rbac\Rule[] yii\rbac\PhpManager

Публичные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Component
__clone() Этот метод вызывается после создания объекта путём клонирования существующего. yii\base\Component
__construct() Конструктор. yii\base\Object
__get() Возвращает значение свойства компонента. yii\base\Component
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Component
__set() Устанавливает значение свойства компонента. yii\base\Component
__unset() Устанавливает свойство компонента в значение null. yii\base\Component
add() Добавляет роль, разрешение или правило в систему RBAC. yii\rbac\BaseManager
addChild() Добавляет элемент как дочерний к другому элементу. yii\rbac\PhpManager
assign() Назначает роль пользователю. yii\rbac\PhpManager
attachBehavior() Присоединяет поведение к этому компоненту. yii\base\Component
attachBehaviors() Присоединяет список поведений к компоненту. yii\base\Component
behaviors() Возвращает список поведений, по которым должен вести себя этот компонент. yii\base\Component
canAddChild() Проверяет возможность добавления дочернего элемента к родителю yii\rbac\PhpManager
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Component
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Component
checkAccess() yii\rbac\PhpManager
className() Возвращает полное квалифицированное имя этого класса. yii\base\Object
createPermission() Создаёт новый объект Permission. yii\rbac\BaseManager
createRole() Создаёт новый объект Role. yii\rbac\BaseManager
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. yii\base\Component
getAssignment() Возвращает информацию о назначении роли пользователю. yii\rbac\PhpManager
getAssignments() Возвращает всю информацию о назначении ролей для указанного пользователя. yii\rbac\PhpManager
getBehavior() Возвращает объект поведения с указанным именем. yii\base\Component
getBehaviors() Возвращает все присоединённые к этому компоненту поведения. yii\base\Component
getChildRoles() Возвращает дочерние роли указанной роли. Глубина не ограничена. yii\rbac\PhpManager
getChildren() Возвращает дочерние разрешения и/или роли. yii\rbac\PhpManager
getDefaultRoleInstances() Возвращает defaultRoles как массив объектов Role yii\rbac\BaseManager
getItem() Возвращает именованный элемент авторизации. yii\rbac\PhpManager
getItems() Возвращает элементы указанного типа. yii\rbac\PhpManager
getPermission() Возвращает разрешение с указанным именем. yii\rbac\BaseManager
getPermissions() Возвращает все разрешения в системе. yii\rbac\BaseManager
getPermissionsByRole() Возвращает все разрешения, которые представляет указанная роль. yii\rbac\PhpManager
getPermissionsByUser() Возвращает все разрешения, имеющиеся у пользователя. yii\rbac\PhpManager
getRole() Возвращает роль с указанным именем. yii\rbac\BaseManager
getRoles() Возвращает все роли в системе. yii\rbac\BaseManager
getRolesByUser() Возвращает роли, назначенные пользователю с помощью assign(). yii\rbac\PhpManager
getRule() Возвращает правило с указанным именем. yii\rbac\PhpManager
getRules() Возвращает все правила, доступные в системе. yii\rbac\PhpManager
getUserIdsByRole() Возвращает все идентификаторы пользователей, назначенные указанной роли. yii\rbac\PhpManager
hasChild() Возвращает значение, указывающее, существует ли дочерний элемент для родительского. yii\rbac\PhpManager
hasEventHandlers() Возвращает значение, указывающее, есть ли обработчик, присоединённый к указанному событию. yii\base\Component
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Component
hasProperty() Возвращает значение, указывающее, определено ли свойство для этого компонента. yii\base\Component
init() Инициализирует компонент приложения. yii\rbac\PhpManager
off() Отсоединяет существующий обработчик событий от этого компонента. yii\base\Component
on() Присоединяет обработчик событий к событию. yii\base\Component
remove() Удаляет роль, разрешение или правило из системы RBAC. yii\rbac\BaseManager
removeAll() Удаляет все данные авторизации, включая роли, разрешения, правила и назначения. yii\rbac\PhpManager
removeAllAssignments() Удаляет все назначения ролей. yii\rbac\PhpManager
removeAllPermissions() Удаляет все разрешения. yii\rbac\PhpManager
removeAllRoles() Удаляет все роли. yii\rbac\PhpManager
removeAllRules() Удаляет все правила. yii\rbac\PhpManager
removeChild() Удаляет дочерний элемент из родительского. yii\rbac\PhpManager
removeChildren() Удаляет всех потомков из родительского элемента. yii\rbac\PhpManager
removeItem() Удаляет элемент авторизации из системы RBAC. yii\rbac\PhpManager
revoke() Отменяет роль для пользователя. yii\rbac\PhpManager
revokeAll() Отменяет все роли для пользователя. yii\rbac\PhpManager
trigger() Вызывает событие. yii\base\Component
update() Обновляет указанную роль, разрешение или правило в системе. yii\rbac\BaseManager
updateRule() Обновляет правило в системе RBAC. yii\rbac\PhpManager

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

Метод Описание Определено в
addItem() Добавляет элемент авторизации в систему RBAC. yii\rbac\PhpManager
addRule() Добавляет правило в систему RBAC. yii\rbac\PhpManager
checkAccessRecursive() Производит проверку доступа для указанного пользователя. yii\rbac\PhpManager
detectLoop() Проверяет наличие цикла в иерархии элементов авторизации. yii\rbac\PhpManager
executeRule() Выполняет правило, связанное с указанным элементом авторизации. yii\rbac\BaseManager
getChildrenRecursive() Рекурсивно находит всех потомков указанного элемента. yii\rbac\PhpManager
getDirectPermissionsByUser() Возвращает все разрешения, которые напрямую назначены пользователю. yii\rbac\PhpManager
getInheritedPermissionsByUser() Возвращает все разрешения, которые пользователь наследует от ролей, назначенных ему. yii\rbac\PhpManager
hasNoAssignments() Проверяет, пуст ли массив $assignments и пуста ли свойство $defaultRoles. yii\rbac\BaseManager
invalidateScriptCache() Отменяет кэш предварительно скомпилированных скриптов (таких как OPCache или APC) для данного файла. yii\rbac\PhpManager
load() Загружает данные авторизации из постоянного хранилища. yii\rbac\PhpManager
loadFromFile() Загружает данные авторизации из файла PHP скрипта. yii\rbac\PhpManager
removeAllItems() Удаляет все элементы авторизации указанного типа. yii\rbac\PhpManager
removeRule() Удаляет правило из системы RBAC. yii\rbac\PhpManager
save() Сохраняет данные авторизации в постоянном хранилище. yii\rbac\PhpManager
saveAssignments() Сохраняет данные назначений в постоянное хранилище. yii\rbac\PhpManager
saveItems() Сохраняет данные элементов в постоянное хранилище. yii\rbac\PhpManager
saveRules() Сохраняет правила в постоянное хранилище. yii\rbac\PhpManager
saveToFile() Сохраняет данные авторизации в файл PHP скрипта. yii\rbac\PhpManager
updateItem() Обновляет элемент авторизации в системе RBAC. yii\rbac\PhpManager

Подробности свойств

$assignmentFile общедоступное свойство

Путь к PHP-скрипту, содержащему назначения авторизации. Это может быть путь к файлу или псевдоним пути к файлу. Убедитесь, что этот файл доступен для записи веб-серверу, если требуется онлайн изменение авторизации.

См. также:

  • loadFromFile()
  • saveToFile()
public string $assignmentFile = '@app/rbac/assignments.php'

$assignments защищенное свойство

protected array $assignments = []

$children защищенное свойство

protected array $children = []

$itemFile общедоступное свойство

Путь к PHP-скрипту, содержащему элементы авторизации. Это может быть путь к файлу или псевдоним пути к файлу. Убедитесь, что этот файл доступен для записи веб-серверу, если требуется онлайн изменение авторизации.

См. также:

  • loadFromFile()
  • saveToFile()
public string $itemFile = '@app/rbac/items.php'

$items защищенное свойство

protected yii\rbac\Item[] $items = []

$ruleFile общедоступное свойство

Путь к PHP-скрипту, содержащему правила авторизации. Это может быть путь к файлу или псевдоним пути к файлу. Убедитесь, что этот файл доступен для записи веб-серверу, если требуется онлайн изменение авторизации.

См. также:

  • loadFromFile()
  • saveToFile()
public string $ruleFile = '@app/rbac/rules.php'

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

public yii\rbac\Rule[] getRules ( )

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

addChild() public method

Добавляет элемент в качестве дочернего другого элемента.

public boolean addChild ( $parent, $child )
$parent yii\rbac\Item
$child yii\rbac\Item
return boolean

Было ли успешно добавлено дочернее значение

throws yii\base\Exception

если родительско-дочерние отношения уже существуют или был обнаружен цикл.

addItem() protected method

Добавляет элемент авторизации в систему RBAC.

protected boolean addItem ( $item )
$item yii\rbac\Item

Элемент для добавления

return boolean

Было ли элемент авторизации успешно добавлен в систему

throws Exception

если проверка данных или сохранение завершилось неудачно (например, имя роли или разрешения не уникально)

addRule() protected method

Добавляет правило в систему RBAC.

protected boolean addRule ( $rule )
$rule yii\rbac\Rule

Правило для добавления

return boolean

Было ли правило успешно добавлено в систему

throws Exception

если проверка данных или сохранение завершилось неудачно (например, имя правила не уникально)

assign() public method

Назначает роль пользователю.

public yii\rbac\Assignment assign ( $role, $userId )
$role yii\rbac\Role
$userId string|integer

Идентификатор пользователя (см. yii\web\User::$id)

return yii\rbac\Assignment

Информация о назначении роли.

throws Exception

если роль уже назначена пользователю

canAddChild() public method (доступно с версии 2.0.8)

Проверяет возможность добавления дочернего элемента к родителю

public boolean canAddChild ( $parent, $child )
$parent yii\rbac\Item

Родительский элемент

$child yii\rbac\Item

Дочерний элемент, который будет добавлен в иерархию

return boolean

Возможность добавления

checkAccess() public method

public void checkAccess ( $userId, $permissionName, $params = [] )
$userId
$permissionName
$params

checkAccessRecursive() protected method

Выполняет проверку доступа для указанного пользователя.

Этот метод вызывается внутри checkAccess().

protected boolean checkAccessRecursive ( $user, $itemName, $params, $assignments )
$user string|integer

Идентификатор пользователя. Он может быть целым числом или строкой, представляющей уникальный идентификатор пользователя. См. yii\web\User::$id.

$itemName string

Имя операции, для которой требуется проверка доступа

$params array

Пара имя-значение, которые будут переданы правилам, связанным с задачами и ролями, назначенными пользователю. В этот массив добавляется параметр с именем 'user', содержащий значение $userId.

$assignments yii\rbac\Assignment[]

Назначения указанному пользователю

return boolean

Возможно ли пользователю выполнить операции.

detectLoop() protected method

Проверяет наличие цикла в иерархии элементов авторизации.

protected boolean detectLoop ( $parent, $child )
$parent yii\rbac\Item

Родительский элемент

$child yii\rbac\Item

Дочерний элемент, который будет добавлен в иерархию

return boolean

Существует ли цикл

getAssignment() public method

Возвращает информацию о назначении роли пользователю.

public null|yii\rbac\Assignment getAssignment ( $roleName, $userId )
$roleName string

Имя роли

$userId string|integer

Идентификатор пользователя (см. yii\web\User::$id)

return null|yii\rbac\Assignment

Информация о назначении. Если роль не назначена пользователю, возвращается null.

getAssignments() public method

Возвращает информацию обо всех назначениях ролей для указанного пользователя.

public yii\rbac\Assignment[] getAssignments ( $userId )
$userId string|integer

Идентификатор пользователя (см. yii\web\User::$id)

return yii\rbac\Assignment[]

Назначения, индексированные по именам ролей. Если пользователю не назначены роли, возвращается пустой массив.

getChildRoles() public method

Возвращает дочерние роли указанной роли. Глубина не ограничена.

public yii\rbac\Role[] getChildRoles ( $roleName )
$roleName string

Имя роли, для которой требуется найти дочерние роли

return yii\rbac\Role[]

Дочерние роли. Массив индексируется по именам ролей. Первый элемент — это экземпляр родительской роли.

throws yii\base\InvalidParamException

если роль с именем $roleName не найдена.

getChildren() public method

Возвращает дочерние разрешения и/или роли.

public yii\rbac\Item[] getChildren ( $name )
$name string

Имя родителя

return yii\rbac\Item[]

Дочерние разрешения и/или роли

getChildrenRecursive() protected method

Рекурсивно находит все дочерние и внучатые элементы указанного элемента.

protected void getChildrenRecursive ( $name, &$result )
$name string

Имя элемента, для которого нужно найти дочерние элементы.

$result array

Дочерние и внучатые элементы (в качестве ключей массива)

getDirectPermissionsByUser() защищённый метод (доступен с версии 2.0.7)

Возвращает все разрешения, напрямую назначенные пользователю.

защищённый yii\rbac\Permission[] getDirectPermissionsByUser ( $userId )
$userId строка|целое число

Идентификатор пользователя (см. yii\web\User::$id)

return yii\rbac\Permission[]

Все прямые разрешения, имеющиеся у пользователя. Массив индексирован по именам разрешений.

getInheritedPermissionsByUser() защищённый метод (доступен с версии 2.0.7)

Возвращает все разрешения, которые пользователь наследует от ролей, назначенных ему.

защищённый yii\rbac\Permission[] getInheritedPermissionsByUser ( $userId )
$userId строка|целое число

Идентификатор пользователя (см. yii\web\User::$id)

return yii\rbac\Permission[]

Все унаследованные разрешения, имеющиеся у пользователя. Массив индексирован по именам разрешений.

getItem() публичный метод

Возвращает элемент авторизации по имени.

публичный yii\rbac\Item getItem ( $name )
$name строка

Имя элемента авторизации.

return yii\rbac\Item

Элемент авторизации, соответствующий заданному имени. Возвращает Null, если такой элемент не найден.

getItems() публичный метод

Возвращает элементы заданного типа.

публичный yii\rbac\Item[] getItems ( $type )
$type целое число

Тип элемента авторизации (либо yii\rbac\Item::TYPE_ROLE, либо yii\rbac\Item::TYPE_PERMISSION

return yii\rbac\Item[]

Элементы авторизации указанного типа.

getPermissionsByRole() публичный метод

Возвращает все разрешения, представленные заданной ролью.

публичный yii\rbac\Permission[] getPermissionsByRole ( $roleName )
$roleName строка

Имя роли

return yii\rbac\Permission[]

Все разрешения, представленные ролью. Массив индексирован по именам разрешений.

getPermissionsByUser() публичный метод

Возвращает все разрешения, имеющиеся у пользователя.

публичный yii\rbac\Permission[] getPermissionsByUser ( $userId )
$userId строка|целое число

Идентификатор пользователя (см. yii\web\User::$id)

return yii\rbac\Permission[]

Все разрешения, имеющиеся у пользователя. Массив индексирован по именам разрешений.

getRolesByUser() публичный метод

Возвращает роли, назначенные пользователю через assign().

Обратите внимание, что дочерние роли, которые не назначены напрямую пользователю, не будут возвращены.

публичный yii\rbac\Role[] getRolesByUser ( $userId )
$userId строка|целое число

Идентификатор пользователя (см. yii\web\User::$id)

return yii\rbac\Role[]

Все роли, напрямую назначенные пользователю. Массив индексирован по именам ролей.

getRule() публичный метод

Возвращает правило с указанным именем.

публичный null|yii\rbac\Rule getRule ( $name )
$name строка

Имя правила

return null|yii\rbac\Rule

Объект правила или null, если указанное имя не соответствует ни одному из правил.

getRules() публичный метод

Возвращает все доступные правила системы.

публичный yii\rbac\Rule[] getRules ( )
return yii\rbac\Rule[]

Правила, индексированные по именам правил

getUserIdsByRole() публичный метод (доступен с версии 2.0.7)

Возвращает все идентификаторы пользователей, назначенные указанной роли.

публичный массив getUserIdsByRole ( $roleName )
$roleName строка
return массив

Массив строк с идентификаторами пользователей

hasChild() публичный метод

Возвращает значение, указывающее, существует ли дочерний элемент для родительского.

публичный логическое значение hasChild ( $parent, $child )
$parent yii\rbac\Item
$child yii\rbac\Item
return логическое значение

Является ли $child дочерним элементом $parent

init() публичный метод

Инициализирует компонент приложения.

Этот метод переопределяет родительскую реализацию, загружая данные авторизации из PHP-скрипта.

публичный void init ( )

invalidateScriptCache() защищённый метод (доступен с версии 2.0.9)

Отменяет кеширование скомпилированного скрипта (например, OPCache или APC) для указанного файла.

защищённый void invalidateScriptCache ( $file )
$file строка

Путь к файлу.

load() защищённый метод

Загружает данные авторизации из постоянного хранилища.

защищённый void load ( )

loadFromFile() защищённый метод

Загружает данные авторизации из файла PHP-скрипта.

См. также saveToFile().

защищённый массив loadFromFile ( $file )
$file строка

Путь к файлу.

return массив

Данные авторизации

removeAll() публичный метод

Удаляет все данные авторизации, включая роли, разрешения, правила и назначения.

публичный void removeAll ( )

removeAllAssignments() публичный метод

Удаляет все назначения ролей.

публичный void removeAllAssignments ( )

removeAllItems() защищённый метод

Удаляет все элементы авторизации указанного типа.

protected void removeAllItems ( $type )
$type целое

Тип элемента авторизации (Item::TYPE_PERMISSION или Item::TYPE_ROLE)

removeAllPermissions() public method

Удаляет все разрешения.

Все связи родитель-потомок будут соответствующим образом скорректированы.

public void removeAllPermissions ( )

removeAllRoles() public method

Удаляет все роли.

Все связи родитель-потомок будут соответствующим образом скорректированы.

public void removeAllRoles ( )

removeAllRules() public method

Удаляет все правила.

Все роли и разрешения, имеющие правила, будут скорректированы соответствующим образом.

public void removeAllRules ( )

removeChild() public method

Удаляет потомка из родительского элемента.

Обратите внимание, что элемент-потомок не удаляется. Удаляется только родительско-потомок связь.

public boolean removeChild ( $parent, $child )
$parent yii\rbac\Item
$child yii\rbac\Item
return boolean

Успешно ли выполнено удаление

removeChildren() public method

Удаляет всех потомков из родительского элемента.

Обратите внимание, что элементы-потомки не удаляются. Удаляются только родительско-потомок связи.

public boolean removeChildren ( $parent )
$parent yii\rbac\Item
return boolean

Успешно ли выполнено удаление

removeItem() public method

Удаляет элемент авторизации из системы RBAC.

public boolean removeItem ( $item )
$item yii\rbac\Item

Удаляемый элемент

return boolean

Успешно ли удалена роль или разрешение

throws Исключение

если проверка данных или сохранение не удались (например, имя роли или разрешения не уникально)

removeRule() protected method

Удаляет правило из системы RBAC.

protected boolean removeRule ( $rule )
$rule yii\rbac\Rule

Правило для удаления

return boolean

Успешно ли удалено правило

throws Исключение

если проверка данных или сохранение не удались (например, имя правила не уникально)

revoke() public method

Лишает пользователя роли.

public boolean revoke ( $role, $userId )
$role yii\rbac\Role
$userId строка|целое

Идентификатор пользователя (см. yii\web\User::$id)

return boolean

Успешно ли выполнена операция лишения

revokeAll() public method

Лишает пользователя всех ролей.

public boolean revokeAll ( $userId )
$userId mixed

Идентификатор пользователя (см. yii\web\User::$id)

return boolean

Успешно ли выполнена операция лишения

save() protected method

Сохраняет данные авторизации в постоянное хранилище.

protected void save ( )

saveAssignments() protected method

Сохраняет данные назначений в постоянное хранилище.

protected void saveAssignments ( )

saveItems() protected method

Сохраняет данные элементов в постоянное хранилище.

protected void saveItems ( )

saveRules() protected method

Сохраняет данные правил в постоянное хранилище.

protected void saveRules ( )

saveToFile() protected method

Сохраняет данные авторизации в файл PHP-скрипта.

См. также loadFromFile().

protected void saveToFile ( $data, $file )
$data массив

Данные авторизации

$file строка

Путь к файлу.

updateItem() protected method

Обновляет элемент авторизации в системе RBAC.

protected boolean updateItem ( $name, $item )
$name строка

Имя обновляемого элемента

$item yii\rbac\Item

Обновлённый элемент

return boolean

Успешно ли обновлён элемент авторизации

throws Исключение

если проверка данных или сохранение не удались (например, имя роли или разрешения не уникально)

updateRule() public method

Обновляет правило в системе RBAC.

public boolean updateRule ( $name, $rule )
$name строка

Имя обновляемого правила

$rule yii\rbac\Rule

Обновлённое правило

return boolean

Успешно ли обновлено правило

throws Исключение

если проверка данных или сохранение не удались (например, имя правила не уникально)

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-rbac-phpmanager.html

Spec-Zone.ru

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