Spec-Zone.ru › Yii 2.0

Класс yii\mongodb\rbac\MongoDbManager

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

MongoDbManager представляет собой менеджер авторизации, хранящий данные авторизации в MongoDB.

Менеджер использует 3 коллекции для хранения данных RBAC:

  • $itemCollection - хранит данные элементов и список их родителей
  • $assignmentCollection - хранит информацию о назначениях
  • $ruleCollection - хранит данные правил

Рекомендуется заранее создать эти коллекции с индексами по полям поиска.

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

Свойство Тип Описание Определено в
$assignmentCollection string|array Имя коллекции, хранящей назначения авторизационных элементов. yii\mongodb\rbac\MongoDbManager
$behaviors yii\base\Behavior[] Список прикреплённых к этому компоненту поведений yii\base\Component
$cache yii\caching\Cache|array|string Кэш, используемый для повышения производительности RBAC. yii\mongodb\rbac\MongoDbManager
$cacheKey string Ключ для хранения данных RBAC в кэше yii\mongodb\rbac\MongoDbManager
$db yii\mongodb\Connection|array|string Объект подключения к MongoDB или идентификатор компонента приложения MongoDB. yii\mongodb\rbac\MongoDbManager
$defaultRoleInstances yii\rbac\Role[] По умолчанию роли. yii\rbac\BaseManager
$defaultRoles array Список имён ролей, которые автоматически назначаются каждому пользователю без вызова assign(). yii\rbac\BaseManager
$itemCollection string|array Имя коллекции, хранящей авторизационные элементы. yii\mongodb\rbac\MongoDbManager
$permissions yii\rbac\Permission[] Все разрешения в системе. yii\rbac\BaseManager
$roles yii\rbac\Role[] Все роли в системе. yii\rbac\BaseManager
$ruleCollection string|array Имя коллекции, хранящей правила. yii\mongodb\rbac\MongoDbManager

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

Свойство Тип Описание Определено в
$items yii\rbac\Item[] Все элементы авторизации (имя => Элемент) yii\mongodb\rbac\MongoDbManager
$rules yii\rbac\Rule[] Все правила авторизации (имя => Правило) yii\mongodb\rbac\MongoDbManager

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

Метод Описание Определено в
__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\mongodb\rbac\MongoDbManager
assign() Назначает роль пользователю. yii\mongodb\rbac\MongoDbManager
attachBehavior() Присоединяет поведение к этому компоненту. yii\base\Component
attachBehaviors() Присоединяет список поведений к компоненту. yii\base\Component
behaviors() Возвращает список поведений, по которым должен вести себя этот компонент. yii\base\Component
canAddChild() Проверяет возможность добавления потомка к родителю yii\mongodb\rbac\MongoDbManager
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Component
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Component
checkAccess() yii\mongodb\rbac\MongoDbManager
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\mongodb\rbac\MongoDbManager
getAssignments() Возвращает всю информацию о назначении ролей для указанного пользователя. yii\mongodb\rbac\MongoDbManager
getBehavior() Возвращает объект поведения по имени. yii\base\Component
getBehaviors() Возвращает все присоединённые к этому компоненту поведения. yii\base\Component
getChildRoles() Возвращает дочерние роли указанной роли. Глубина не ограничена. yii\mongodb\rbac\MongoDbManager
getChildren() Возвращает дочерние разрешения и/или роли. yii\mongodb\rbac\MongoDbManager
getDefaultRoleInstances() Возвращает defaultRoles как массив объектов Role yii\rbac\BaseManager
getPermission() Возвращает разрешение по имени. yii\rbac\BaseManager
getPermissions() Возвращает все разрешения в системе. yii\rbac\BaseManager
getPermissionsByRole() Возвращает все разрешения, которые представляет указанная роль. yii\mongodb\rbac\MongoDbManager
getPermissionsByUser() Возвращает все разрешения, которые имеет пользователь. yii\mongodb\rbac\MongoDbManager
getRole() Возвращает роль по имени. yii\rbac\BaseManager
getRoles() Возвращает все роли в системе. yii\rbac\BaseManager
getRolesByUser() Возвращает роли, назначенные пользователю через assign(). yii\mongodb\rbac\MongoDbManager
getRule() Возвращает правило указанного имени. yii\mongodb\rbac\MongoDbManager
getRules() Возвращает все правила, доступные в системе. yii\mongodb\rbac\MongoDbManager
getUserIdsByRole() Возвращает все ID пользователей, назначенных указанной роли. yii\mongodb\rbac\MongoDbManager
hasChild() Возвращает значение, указывающее, существует ли потомок для родителя. yii\mongodb\rbac\MongoDbManager
hasEventHandlers() Возвращает значение, указывающее, присоединены ли обработчики к событию с указанным именем. yii\base\Component
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Component
hasProperty() Возвращает значение, указывающее, определено ли свойство для этого компонента. yii\base\Component
init() Инициализирует компонент приложения. yii\mongodb\rbac\MongoDbManager
invalidateCache() Очищает кэш, связанный с RBAC. yii\mongodb\rbac\MongoDbManager
loadFromCache() Загружает данные из кэша. yii\mongodb\rbac\MongoDbManager
off() Отсоединяет существующий обработчик события от этого компонента. yii\base\Component
on() Прикрепляет обработчик события к событию. yii\base\Component
remove() Удаляет роль, разрешение или правило из системы RBAC. yii\rbac\BaseManager
removeAll() Удаляет все данные авторизации, включая роли, разрешения, правила и назначения. yii\mongodb\rbac\MongoDbManager
removeAllAssignments() Удаляет все назначения ролей. yii\mongodb\rbac\MongoDbManager
removeAllPermissions() Удаляет все разрешения. yii\mongodb\rbac\MongoDbManager
removeAllRoles() Удаляет все роли. yii\mongodb\rbac\MongoDbManager
removeAllRules() Удаляет все правила. yii\mongodb\rbac\MongoDbManager
removeChild() Удаляет дочерний элемент из родительского. yii\mongodb\rbac\MongoDbManager
removeChildren() Удаляет всех дочерних элементов от родительского. yii\mongodb\rbac\MongoDbManager
revoke() Лишает пользователя роли. yii\mongodb\rbac\MongoDbManager
revokeAll() Лишает пользователя всех ролей. yii\mongodb\rbac\MongoDbManager
trigger() Вызывает событие. yii\base\Component
update() Обновляет указанную роль, разрешение или правило в системе. yii\rbac\BaseManager

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

Метод Описание Определено
addItem() Добавляет элемент авторизации в систему RBAC. yii\mongodb\rbac\MongoDbManager
addRule() Добавляет правило в систему RBAC. yii\mongodb\rbac\MongoDbManager
checkAccessFromCache() Производит проверку доступа для указанного пользователя на основе данных, загруженных из кэша. yii\mongodb\rbac\MongoDbManager
checkAccessRecursive() Производит проверку доступа для указанного пользователя. yii\mongodb\rbac\MongoDbManager
detectLoop() Проверяет наличие цикла в иерархии элементов авторизации. yii\mongodb\rbac\MongoDbManager
executeRule() Выполняет правило, связанное с указанным элементом авторизации. yii\rbac\BaseManager
getChildrenList() Возвращает дочерние элементы для каждого родительского элемента. yii\mongodb\rbac\MongoDbManager
getChildrenRecursive() Рекурсивно находит всех потомков и правнуков указанного элемента. yii\mongodb\rbac\MongoDbManager
getItem() Возвращает элемент авторизации по имени. yii\mongodb\rbac\MongoDbManager
getItems() Возвращает элементы указанного типа. yii\mongodb\rbac\MongoDbManager
hasNoAssignments() Проверяет, пуст ли массив $assignments и пуст ли свойство $defaultRoles yii\rbac\BaseManager
populateItem() Заполняет элемент авторизации данными, извлеченными из коллекции. yii\mongodb\rbac\MongoDbManager
removeAllItems() Удаляет все элементы авторизации указанного типа. yii\mongodb\rbac\MongoDbManager
removeItem() Удаляет элемент авторизации из системы RBAC. yii\mongodb\rbac\MongoDbManager
removeRule() Удаляет правило из системы RBAC. yii\mongodb\rbac\MongoDbManager
updateItem() Обновляет элемент авторизации в системе RBAC. yii\mongodb\rbac\MongoDbManager
updateRule() Обновляет правило в системе RBAC. yii\mongodb\rbac\MongoDbManager

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

$assignmentCollection общественное свойство

Имя коллекции, хранящей назначения элементов авторизации. По умолчанию равно "auth_assignment".

public string|array $assignmentCollection = 'auth_assignment'

$cache общественное свойство

Кэш, используемый для повышения производительности RBAC. Может быть одним из следующих:

  • идентификатор компонента приложения (например, cache)
  • массив конфигурации
  • объект yii\caching\Cache

Если это свойство не задано, кэширование отключено.

Обратите внимание, что включение кэша RBAC кэширует все элементы авторизации, правила и отношения между родительскими и дочерними элементами авторизации и загружает их в память. Это повысит производительность проверки разрешений RBAC. Однако это требует дополнительной памяти и, как следствие, может быть неприемлемым, если ваша система RBAC содержит слишком много элементов авторизации. В этом случае следует рассмотреть другие реализации RBAC (например, RBAC на основе хранения в Redis).

Также обратите внимание, что если вы изменяете элементы RBAC, правила или отношения между родительскими и дочерними элементами вне этого компонента, вам необходимо вручную вызвать invalidateCache() для обеспечения согласованности данных.

public yii\caching\Cache|array|string $cache = null

$cacheKey общественное свойство

Ключ, используемый для хранения данных RBAC в кэше

См. также $cache.

public string $cacheKey = 'rbac'

$db общественное свойство

Объект подключения к MongoDB или идентификатор компонента приложения подключения к MongoDB. После создания объекта MongoDbManager, если вы хотите изменить это свойство, вы должны присвоить ему только объект подключения к MongoDB.

public yii\mongodb\Connection|array|string $db = 'mongodb'

$itemCollection общественное свойство

Имя коллекции, хранящей элементы авторизации. По умолчанию равно "auth_item".

public string|array $itemCollection = 'auth_item'

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

Все элементы авторизации (имя => Элемент)

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

$ruleCollection общественное свойство

Имя коллекции, хранящей правила. По умолчанию равно "auth_rule".

public string|array $ruleCollection = 'auth_rule'

$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

ID пользователя (см. yii\web\User::$id)

return yii\rbac\Assignment

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

throws Exception

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

canAddChild() public method

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

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

checkAccessFromCache() protected method

Выполняет проверку доступа для указанного пользователя на основе данных, загруженных из кэша.

Этот метод внутренне вызывается методом checkAccess(), когда включен $cache.

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

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

$itemName string

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

$params array

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

$assignments yii\rbac\Assignment[]

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

return boolean

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

checkAccessRecursive() protected method

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

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

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

ID пользователя. Это может быть целое число или строка, представляющая уникальный идентификатор пользователя. См. 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

ID пользователя (см. yii\web\User::$id)

return null|yii\rbac\Assignment

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

getAssignments() public method

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

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

ID пользователя (см. yii\web\User::$id)

return yii\rbac\Assignment[]

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

getChildRoles() public method (доступно с версии 2.1.2)

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

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[]

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

getChildrenList() protected method

Возвращает дочерние элементы для каждого родителя.

protected array getChildrenList ( )
return array

Список дочерних элементов. Каждый ключ массива — имя родительского элемента, а соответствующее значение — список имен дочерних элементов.

getChildrenRecursive() protected method

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

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

Имя элемента, потомки которого необходимо найти.

$childrenList array

Список дочерних элементов, полученный с помощью getChildrenList()

$result array

Потомки и правнуки (в качестве ключей массива)

getItem() protected method

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

protected yii\rbac\Item getItem ( $name )
$name string

Имя элемента аутентификации.

return yii\rbac\Item

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

getItems() protected method

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

protected yii\rbac\Item[] getItems ( $type )
$type integer

Тип элемента аутентификации (либо yii\rbac\Item::TYPE_ROLE, либо yii\rbac\Item::TYPE_PERMISSION)

return yii\rbac\Item[]

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

getPermissionsByRole() public method

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

public yii\rbac\Permission[] getPermissionsByRole ( $roleName )
$roleName string

Имя роли

return yii\rbac\Permission[]

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

getPermissionsByUser() public method

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

public yii\rbac\Permission[] getPermissionsByUser ( $userId )
$userId string|integer

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

return yii\rbac\Permission[]

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

getRolesByUser() public method

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

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

public yii\rbac\Role[] getRolesByUser ( $userId )
$userId string|integer

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

return yii\rbac\Role[]

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

getRule() public method

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

public null|yii\rbac\Rule getRule ( $name )
$name string

Имя правила

return null|yii\rbac\Rule

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

getRules() public method

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

public yii\rbac\Rule[] getRules ( )
return yii\rbac\Rule[]

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

getUserIdsByRole() public method

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

public array getUserIdsByRole ( $roleName )
$roleName string
return array

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

hasChild() public method

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

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

Является ли $child потомком $parent

init() public method

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

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

public void init ( )

invalidateCache() public method

Очищает кэш, связанный с RBAC

public void invalidateCache ( )

loadFromCache() public method

Загружает данные из кэша

public void loadFromCache ( )

populateItem() protected method

Заполняет элемент аутентификации данными, полученными из коллекции.

protected yii\rbac\Item populateItem ( $row )
$row array

Данные из коллекции элементов аутентификации

return yii\rbac\Item

Заполненный экземпляр элемента аутентификации (Роль или Разрешение)

removeAll() public method

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

public void removeAll ( )

removeAllAssignments() public method

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

public void removeAllAssignments ( )

removeAllItems() protected method

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

protected void removeAllItems ( $type )
$type integer

Тип элемента авторизации (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() protected method

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

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

Элемент для удаления

return boolean

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

throws Exception

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

removeRule() protected method

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

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

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

return boolean

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

throws Exception

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

revoke() public method

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

public boolean revoke ( $role, $userId )
$role yii\rbac\Role
$userId string|integer

ID пользователя (см. yii\web\User::$id)

return boolean

Успешность лишения прав

revokeAll() public method

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

public boolean revokeAll ( $userId )
$userId mixed

ID пользователя (см. yii\web\User::$id)

return boolean

Успешность лишения прав

updateItem() protected method

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

protected boolean updateItem ( $name, $item )
$name string

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

$item yii\rbac\Item

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

return boolean

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

throws Exception

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

updateRule() protected method

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

protected boolean updateRule ( $name, $rule )
$name string

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

$rule yii\rbac\Rule

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

return boolean

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

throws Exception

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

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

Spec-Zone.ru

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