RU/hasObjectPermissionTo

From Multi Theft Auto: Wiki
Jump to navigation Jump to search

Эта функция возвращает, имеет ли данный объект доступ для выполнения данного действия.

[[{{{image}}}|link=|]] Note: Работают только определенные названия действий. Эта функция, возвращает ноль и выводит ошибку неверного аргумента при проверке, если команда начинается не с function., command. или resource. слово.
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 )

Смотрите также