Можно ли разрешить пользователю без прав администратора (например, редактору/автору или другой роли) управлять пользователями? Я работаю над веб-сайтом WordPress, где несколько человек управляют веб-сайтом, и будет кто-то, кто должен иметь возможность управлять пользователями, но ему не нужен доступ ко всем функциям администратора.
Спасибо.
Во-первых, нет общей возможности «управлять пользователями». В этой рубрике есть несколько индивидуальных способностей. См. http://codex.wordpress.org/Roles_and_Capabilities.
В любом случае, у вас есть пара вариантов.
Если нужна совершенно новая роль, ее можно создать с помощью add_role() и add_cap():
Если вы хотите конкретно манипулировать пользователем:
тогда
Это основы. Полное и элегантное изложение здесь: http://www.garyc40.com/2010/04/ultimate-guide-to-roles-and-capabilities/
Позор текущей пользовательской системы заключается в том, что у человека может быть только «одна роль», было бы проще, если бы у человека могло быть несколько ролей, чтобы вы могли комбинировать функции, к которым у пользователя есть доступ.
@Matthijn: я думаю, вы неправильно поняли. Вы можете сделать это. Вы можете создать пользовательскую роль с любой из возможностей. Вы можете комбинировать или создавать новые роли по своему усмотрению.
Да, вы можете комбинировать роли по принципу ACL. Однако было бы удобно, если бы вы могли просто проверить на странице пользователя, например, «вы можете сделать это, это и это».
@Matthijn: хорошо, я думаю, что плагин в первом ответе может делать такие вещи. Это, вероятно, лучший ответ для вас, если этот не кажется таким удобным. FWIW, я думаю, что подобные решения увеличивают раздувание подключаемых модулей и замедляют работу сайтов. Всегда лучше делать подобные вещи напрямую, если вы знаете, как это сделать.
Это будет закодировано, но подход к тому, как это обрабатывается, я думаю, немного неуклюж. Было бы проще сделать что-то вроде нескольких «основных ролей» (как сейчас), но иметь возможность определять критерии для каждого пользователя $user->add_capability(‘edit_users’); или что-то в этом роде, вместо того, чтобы создавать роль на основе другой роли. Потому что, если есть много пользователей, которые все должны иметь возможность делать что-то отличное от другого, вы должны создать и «подклассировать» множество ролей.
Да, это возможно.
Чтобы пользователь мог видеть список других пользователей в wp-admin, ему или ей нужна возможность list_users, чтобы иметь возможность редактировать существующие профили, ему или ей нужно edit_users, чтобы добавлять новые add_users и удалять старые удалить_пользователей.
Для управления сайтом с несколькими специфическими ролями пользователей, которые должны иметь определенные возможности и не иметь других, я настоятельно рекомендую использовать сочетание двух плагинов:
Adminimize дает вам контроль над тем, какая часть интерфейса администратора отображается для какой роли
Пользователи позволяют редактировать возможности определенной роли и добавлять новые роли по мере необходимости.
Да, это очень возможно и довольно просто.
Вы захотите использовать подключаемый модуль RoleScoper, чтобы включить дополнительные разрешения для роли «Редактор» или даже создать совершенно новую роль для управления пользователями. Это очень простой в использовании плагин, хорошо документированный на его веб-сайте.