matthijn
  • 0
Новичок

WordPress управляет пользователями без прав администратора

  • 0

Можно ли разрешить пользователю без прав администратора (например, редактору/автору или другой роли) управлять пользователями? Я работаю над веб-сайтом WordPress, где несколько человек управляют веб-сайтом, и будет кто-то, кто должен иметь возможность управлять пользователями, но ему не нужен доступ ко всем функциям администратора.

Спасибо.

Share
  1. Во-первых, нет общей возможности «управлять пользователями». В этой рубрике есть несколько индивидуальных способностей. См. http://codex.wordpress.org/Roles_and_Capabilities.

    В любом случае, у вас есть пара вариантов.

    1. Вы можете добавить определенные возможности существующим пользователям или
    2. вы можете создать новую пользовательскую роль с нужными вам возможностями.

    Если нужна совершенно новая роль, ее можно создать с помощью add_role() и add_cap():

    $role = add_role('foo_doer', 'Foo Doer');
    
    $role->add_cap('do_foo');
    
    $role->add_cap('do_bar');
    

    Если вы хотите конкретно манипулировать пользователем:

    // get user by user ID
    $user = new WP_User( $id );
    
    // or get user by username
    $user = new WP_User( null, $name )
    

    тогда

    // add $cap capability to this role object
    $role_object->add_cap( $capability_name );
    

    Это основы. Полное и элегантное изложение здесь: http://www.garyc40.com/2010/04/ultimate-guide-to-roles-and-capabilities/

    • 0
    • Позор текущей пользовательской системы заключается в том, что у человека может быть только «одна роль», было бы проще, если бы у человека могло быть несколько ролей, чтобы вы могли комбинировать функции, к которым у пользователя есть доступ.

      • 0
    • @Matthijn: я думаю, вы неправильно поняли. Вы можете сделать это. Вы можете создать пользовательскую роль с любой из возможностей. Вы можете комбинировать или создавать новые роли по своему усмотрению.

      • 0
    • Да, вы можете комбинировать роли по принципу ACL. Однако было бы удобно, если бы вы могли просто проверить на странице пользователя, например, «вы можете сделать это, это и это».

      • 0
    • @Matthijn: хорошо, я думаю, что плагин в первом ответе может делать такие вещи. Это, вероятно, лучший ответ для вас, если этот не кажется таким удобным. FWIW, я думаю, что подобные решения увеличивают раздувание подключаемых модулей и замедляют работу сайтов. Всегда лучше делать подобные вещи напрямую, если вы знаете, как это сделать.

      • 0
    • Это будет закодировано, но подход к тому, как это обрабатывается, я думаю, немного неуклюж. Было бы проще сделать что-то вроде нескольких «основных ролей» (как сейчас), но иметь возможность определять критерии для каждого пользователя $user->add_capability(‘edit_users’); или что-то в этом роде, вместо того, чтобы создавать роль на основе другой роли. Потому что, если есть много пользователей, которые все должны иметь возможность делать что-то отличное от другого, вы должны создать и «подклассировать» множество ролей.

      • 0
  2. Да, это возможно.

    Чтобы пользователь мог видеть список других пользователей в wp-admin, ему или ей нужна возможность list_users, чтобы иметь возможность редактировать существующие профили, ему или ей нужно edit_users, чтобы добавлять новые add_users и удалять старые удалить_пользователей.

    Для управления сайтом с несколькими специфическими ролями пользователей, которые должны иметь определенные возможности и не иметь других, я настоятельно рекомендую использовать сочетание двух плагинов:

    Adminimize дает вам контроль над тем, какая часть интерфейса администратора отображается для какой роли

    Пользователи позволяют редактировать возможности определенной роли и добавлять новые роли по мере необходимости.

    • 0
  3. Да, это очень возможно и довольно просто.

    Вы захотите использовать подключаемый модуль RoleScoper, чтобы включить дополнительные разрешения для роли «Редактор» или даже создать совершенно новую роль для управления пользователями. Это очень простой в использовании плагин, хорошо документированный на его веб-сайте.

    • 0

Оставить ответ

You must login to add an answer.