MutableAclProvider
class MutableAclProvider extends AclProvider implements MutableAclProviderInterface, PropertyChangedListener
Реализация интерфейса MutableAclProviderInterface с использованием Doctrine DBAL.
Константы
| MAX_BATCH_SIZE |
Методы
| __construct(Connection $connection, PermissionGrantingStrategyInterface $permissionGrantingStrategy, array $options, AclCacheInterface $cache = null) Конструктор. | ||
| array | findChildren(ObjectIdentityInterface $parentOid, bool $directChildrenOnly = false) Возвращает все дочерние идентификаторы объектов из базы данных | из AclProvider |
| AclInterface | findAcl(ObjectIdentityInterface $oid, array $sids = array()) Возвращает ACL, соответствующий заданному идентификатору объекта | из AclProvider |
| SplObjectStorage | findAcls(array $oids, array $sids = array()) Возвращает ACL, соответствующие заданным идентификаторам объектов | |
| MutableAclInterface | createAcl(ObjectIdentityInterface $oid) Создаёт новый ACL для заданного идентификатора объекта. | |
| deleteAcl(ObjectIdentityInterface $oid) Удаляет ACL для заданного идентификатора объекта. | ||
| deleteSecurityIdentity(SecurityIdentityInterface $sid) Удаляет идентификатор безопасности из базы данных. | ||
| propertyChanged(mixed $sender, string $propertyName, mixed $oldValue, mixed $newValue) Реализация PropertyChangedListener | ||
| updateAcl(MutableAclInterface $acl) Сохраняет любые изменения, внесённые в ACL или связанные с ним записи контроля доступа. | ||
| updateUserSecurityIdentity(UserSecurityIdentity $usid, string $oldUsername) Обновляет идентификатор безопасности пользователя при изменении имени пользователя |
Подробности
__construct(Connection $connection, PermissionGrantingStrategyInterface $permissionGrantingStrategy, array $options, AclCacheInterface $cache = null)
Конструктор.
Параметры
| Connection | $connection | |
| PermissionGrantingStrategyInterface | $permissionGrantingStrategy | |
| array | $options | |
| AclCacheInterface | $cache |
array findChildren(ObjectIdentityInterface $parentOid, bool $directChildrenOnly = false)
Возвращает все дочерние идентификаторы объектов из базы данных
Параметры
| ObjectIdentityInterface | $parentOid | |
| bool | $directChildrenOnly |
Возвращаемое значение
| array | возвращает массив дочерних объектов 'ObjectIdentity' |
AclInterface findAcl(ObjectIdentityInterface $oid, array $sids = array())
Возвращает ACL, относящийся к данному идентификатору объекта
Параметры
| ObjectIdentityInterface | $oid | |
| array | $sids |
Возвращаемое значение
| AclInterface |
Исключения
| AclNotFoundException | если ACL не найден |
SplObjectStorage findAcls(array $oids, array $sids = array())
Возвращает ACL, относящиеся к заданным идентификаторам объектов
Параметры
| array | $oids | массив реализаций ObjectIdentityInterface |
| array | $sids | массив реализаций SecurityIdentityInterface |
Возвращаемое значение
| SplObjectStorage | отображение переданных идентификаторов объектов к ACL |
Исключения
| AclNotFoundException | если ACL не найден для всех идентификаторов |
MutableAclInterface createAcl(ObjectIdentityInterface $oid)
Создает новый ACL для данного идентификатора объекта.
Параметры
| ObjectIdentityInterface | $oid |
Возвращаемое значение
| MutableAclInterface |
Исключения
| AclAlreadyExistsException | если для данного идентификатора объекта уже существует ACL |
deleteAcl(ObjectIdentityInterface $oid)
Удаляет ACL для данного идентификатора объекта.
Это автоматически приведет к удалению дочерних ACL. Если вы не хотите удалять дочерние ACL, вам нужно установить их родительский ACL в null.
Параметры
| ObjectIdentityInterface | $oid |
deleteSecurityIdentity(SecurityIdentityInterface $sid)
Удаляет идентификатор безопасности из базы данных.
Записи ACL имеют опцию CASCADE для внешнего ключа, поэтому они также будут удалены
Параметры
| SecurityIdentityInterface | $sid |
Исключения
| InvalidArgumentException |
propertyChanged(mixed $sender, string $propertyName, mixed $oldValue, mixed $newValue)
Реализация PropertyChangedListener
Это позволяет отслеживать, какие значения были изменены, поэтому нам не нужно выполнять полное интроспекцию при вызове ->updateAcl().
Параметры
| mixed | $sender | |
| string | $propertyName | |
| mixed | $oldValue | |
| mixed | $newValue |
Исключения
| InvalidArgumentException |
updateAcl(MutableAclInterface $acl)
Сохраняет любые внесенные изменения в ACL или связанные с ним записи контроля доступа.
Изменения в родительских ACL не сохраняются.
Параметры
| MutableAclInterface | $acl |
updateUserSecurityIdentity(UserSecurityIdentity $usid, string $oldUsername)
Обновляет идентификатор безопасности пользователя при изменении имени пользователя
Параметры
| UserSecurityIdentity | $usid | |
| string | $oldUsername |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.2/Symfony/Component/Security/Acl/Dbal/MutableAclProvider.html