WordPress как на ладони
wordpress jino

Получить список всех возможностей ролей

Существует ли возможность получить список всех доступных возможностей (capabilities) как wp_roles()->roles только для возможностей?

0
horror 6 месяцев назад
  • 0
  • 0
    Kama4486

    Возможности это исключительно привилегия ролей и нет такой опции где они все хранятся... Поэтому чтобы получить список, тебе нужно получить все роли и пробежаться по ним и собрать все возможности...

    Если нужно просто посмотреть какие есть возможности, то поставь плагин User Role Editor. Получишь вот такой список:

    horror 6 месяцев назад

    Ну это не совсем так. Я же могу получить список всех возможностей, которые могут быть у абстрактного пользователя или роли по отношению к записи определенного типа. Если имеется запись типа 'realty', массив возможностей этой записи на экран можно вывести следующим образом:

    $post_type = get_post_type_object('realty');
    echo var_dump($post_type->cap);

    Почти также обстоит дело с возможностями таксономии. Если зарегистрирована пользовательская таксономия 'region', все ее возможности можно показать следующим образом:

    $taxonomy = get_taxonomy('region');
    echo var_dump($taxonomy->cap);

    То есть я могу получить посты и таксономии и в цикле вывести все их возможности.
    OK, какие еще могут быть объекты, для которых WP может устанавливать ограничения доступа с помощью проверки возможностей?

    Можно ли например получить массив возможностей всех пунктов админского меню, страниц админки?

    Я имею ввиду третий параметр функции add_menu_page().
    UserRole_editor откуда то их же берет.

    Kama 6 месяцев назад

    Весь прикол в том, что права ниоткуда не берутся... Они есть у записей такс, в админке еще где-то. Общего списка нет... Например, я могу придумать любое право допустим moe_pravo и при создании плагина наделить его каким-то доступом с помощью проверки if( current_user_can('moe_pravo') ). И потом чтобы юзер смог что-то сделать, ему нужно добавить это право в список прав. При этом оно больше нигде не будет фигурировать, кроме как в проверке current_user_can()...

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

    Или я чего-то не знаю про вордпресс, но с тем чтобы права где-то хранились или регались в какой-то общий список или массив - я такого не знаю...

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.