RU/hasObjectPermissionTo
Эта функция возвращает, имеет ли данный объект доступ для выполнения данного действия.
if hasObjectPermissionTo ( player, "resource.YourResourceName.accessPrivateArea", false ) then -- Если доступ разрешен, выполняется действие else -- Если доступ запрещен end
Обратите внимание, что мы назвали "право" использование "resource.YourResourceName.accessPrivateArea" - это просто для аккуратности, чтобы администратор знал, какому ресурсу принадлежит право. Настоятельно рекомендуется следовать этой конвенции. Аргумент "false" указывает "defaultpermission", значение false указывает, что если у пользователя не было права разрешать или запрещать (т.е. Администратор не добавил его в конфигурацию), то по умолчанию он должен быть запрещен.
Единственным недостатком использования этого метода является то, что администратор должен изменить свою конфигурацию. Плюсы в том, что у администратора гораздо больше контроля, и ваш скрипт будет работать на любом сервере, как бы администратор его ни настроил.
Синтаксис
bool hasObjectPermissionTo ( string / element theObject, string theAction [, bool defaultPermission = true ] )
Синтаксис ООП Помогите! Я не понимаю, что это!
- Примечание: Эта функция также является статической функцией под классом ACL.
- Метод: ACL.hasObjectPermissionTo(...)
Обязательные аргумента
- theObject: Объект для проверки, если у него есть разрешение. Это может быть клиентский элемент (т.е. игрока), ресурс или строку в виде "user.<name>" or "resource.<name>".
- theAction: Действие для проверки, имеет ли данный объект доступ. То есть. "function.kickPlayer".
Дополнительные аргументы
Примечание. При использовании необязательных аргументов Вам может потребоваться предоставить все аргументы перед тем аргументом, который Вы хотите использовать. Для более подробной информации ознакомьтесь с необязательными аргументами.
- defaultPermission: Разрешение по умолчанию, если оно не указано ни в одной из групп, членом которых является данный объект. Если оставить это значение равным true, у данного объекта будут разрешения на выполнение действия, если только в ACL явно не указано обратное. Если значение равно false, действие будет отклонено по умолчанию, если явно не одобрено Access Control List.
Возвращаемые значения
Вернет true если у данного объекта есть разрешение на выполнение данного действия, в противном случае false. Возвращает nil, если функция не удалась из-за неверных аргументов.
Пример
В этом примере игрок получает удар ногой, если пользователь, использующий его, имеет доступ к функции "Кик игрока".
function onKickCommandHandler ( playerSource, commandName, playerToKick, stringReason ) if ( hasObjectPermissionTo ( playerSource, "function.kickPlayer", false ) ) then if ( hasObjectPermissionTo ( getThisResource (), "function.kickPlayer", true ) ) then kickPlayer ( playerToKick, playerSource, stringReason ) else outputChatBox ( "kick: The admin resource is not able to kick players. Please give this resource access to 'function.kickPlayer' in the ACL to use this function.", playerSource ) end else outputChatBox ( "kick: You don't have permissions to use this command.", playerSource ) end end addCommandHandler ( "kick", onKickCommandHandler )
Смотрите также
- aclCreate
- aclCreateGroup
- aclDestroy
- aclDestroyGroup
- aclGet
- aclGetGroup
- aclGetName
- aclGetRight
- aclGroupAddACL
- aclGroupAddObject
- aclGroupGetName
- aclGroupList
- aclGroupListACL
- aclGroupListObjects
- aclGroupRemoveACL
- aclGroupRemoveObject
- aclList
- aclListRights
- aclReload
- aclRemoveRight
- aclSave
- aclSetRight
- hasObjectPermissionTo
- isObjectInACLGroup