Плагин Редактор Ролей Пользователей WordPress

Редактор Ролей Пользователей

User Role Editor


Плагин для WordPress “Редактор ролей пользователей” (User Role Editor) позволяет изменять стандартные роли пользователей WordPress несколькими кликами мыши. Достаточно пометить галочками разрешения, которые нужно включить в выбранную роль и нажать кнопку “Сохранить” для сохранения изменений в базе данных WordPress. Вот и вся процедура.
Добавляйте и настраивайте ваши собственные роли. При создании новой роли можно взять за основу любую из существующих. Затем можно вновь созданные роли назначать пользователям. Удаляйте не нужные больше роли из созданных вами. Роль можно удалить, если она не присвоена ни одному пользователю. Измените роль, присваиваемую пользователям по-умолчанию. Плагин поддерживает WordPress в много-сайтовой (сетевой) конфигурации.
Зачем редактировать роли? Предположим вы желаете, чтобы ассистенты (contributors) вашего блога могли загружать свои изображения для включения в свои статьи. Стандратная роль WordPress “contributor” не включает такого разрешения. В этой ситуации вы могли бы изменить включенные в роль пользователя разрешения вручную, используя SQL-клиента, как описано в статье “Как изменить разрешения роли пользователя WordPress”, если вы обладаете достаточными знаниями и опытом в этой области. Но что делать в обратном случае? Хорошая новость – теперь эта задачка решается просто, установите и используйте плагин “Редактор ролей пользователя” (User Role Editor) :).

Доступна к загрузке версия 4.23.2.
Количество загрузок: 2498476 раз.
Щёлкните расположенную ниже кнопку “Скачать”, если вы желаете опробовать этот плагин.

Указатель

скачать

Ниже приведено изображение главной формы плагина “User Role Editor”:

Редактор ролей пользователей - плагин WordPress

Редактор ролей пользователей

  • Выберите роль для редактирования из выпадающего списка в верхней части экрана. Страница автоматически обновится и отобразит разрешения доступные для данной роли. Внесите изменения, включая/исключая соответствующие разрешения, и нажмите кнопку “Сохранить”, для сохранения результатов вашей работы в базе данных WordPress.
  • Если вы считаете более удобным видеть названия разрешений в виде “Редактировать страницы” вместо стандартного для WordPress “edit_pages” поставьте галочку “Показ возможностей в читабельной форме” в правом верхнем углу этой формы. Для того, чтобы увидеть альтернативное имя, переместите курсор мыши над наименованием разрешения/возможности и вы увидите его в виде всплывающей подсказки.
  • Согласно WordPress Codex Уровни Пользователей были введены в WordPress 1.5, затем были заменены на Роли и Возможности (Разрешения) в WordPress 2.0, и окончательно признаны устаревшими в WordPress 3.0. Так что вы можете скрыть их чтобы они не мешали вам в работе с ролями. Просто оставьте элемент “Показать устаревшие разрешения” в правом верхнем углу формы выключенным. Если по какой-то причине вам нужно будет увидеть разрешения для пользовательски уровней (level_1 – level_10), включите/пометьте этот элемент.
  • Если вы не желаете сохранять сделанные вами изменения, используйте кнопку “Отмена”.
  • Используйте кнопку “Восстановить” для восстановления набора ролей, который был у вас на момент установки плагина “User Role Editor”.
    Когда пользователь первый раз открывает эту форму, плагин проверяет, создана ли уже резервная копия. Если резервная копия не обнаружена, плагин создаст её автоматически. Таким образом, если вы когда-либо нажмете кнопку “Восстановить”, плагин использует ранее сохраненные данные ролей вашего блога из резервной копии. Будьте предельно остороржны при использовании этой функции. После восстановления ролей из резервной копии вы совершенно точно потеряете все изменения, внесенные вами в роли с момента первого запуска этого плагина.
Плагин WordPress Редактор ролей пользователей - дополнительные модули

Редактор ролей пользователей - дополнительные модули

  • Если вам нужно создать собственную роль с уникальным набором разрешение (возможностей) используйте блок “Добавить новую роль”. Введите наименование новой роли в текстовое поле формы, выберите роль для использования в качестве основы для создания новой роли и нажмите кнопку “Добавить”. В наименовании ролей допускается использовать только латинские буквы, цифры и знак подчеркивания “_”.
  • Измените роль, которая назначается автоматически каждому вновь зарегистрированному пользователю. Для этого выберите новую роль по-умолчанию из выпадающего списка в блоке с заголовком “Роль по-умолчанию” и нажмите кнопку “Изменить”, чтобы сохранить изменения.
  • Добавленная вами роль при необходимости может быть удалена с использованием блока “Удалить Роль”. Выберите удаляемую роль из выпадающего списка и нажмите кнопку “Удалить” для выполнения операции. Только роли добавленные пользователем доступны в списке ролей к удалению. Если одна из созданных вами ролей присвоена пользователю или установлена в качестве роли по-умолчанию, она не появится в списке ролей к удалению. Если список ролей к удалению пуст, то блок “Удалить Роль” на экран не выводится.
  • Для добавления новой возможности используйте блок “Добавить новую Возможность”. В наименовании возможностей допускается использовать только латинские буквы, цифры и знак подчеркивания “_”. Для использование вновь добавленной возможности нужно включить её в одну из ролей и проверять наличие этой возможности у пользователя в одном из активных плагинов или в файле functions.php, входящем в состав темы вашего блога. Например,
     if (!current_user_can('some_capability_you_added')) {
       echo 'Вы не обладаете достаточными правами для совершения этой операции!';
       return;
    }
  • Для удаления добавленных вами или другими плагинами возможностей используйте блок “Удалить Возможность”. Редактор ролей пользователей не позволяет удалять стандартные возможности WordPress и возможности, включенные хотя бы в одну из ролей. Если не используемые в ролях возможности отсутствуют, блок “Удалить Возможность” не отображается.

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

Редактор ролей пользователей - из списка пользователей

Редактор ролей пользователей - из списка пользователей


Перейдя по этой ссылке, вы можете назначить пользователю другие роли и добавить ему возможности не вошедшие в назначенную роль:
Редактор ролей пользователей - права пользователя

Редактор ролей пользователей – права пользователя


Возможности, предоставленные пользователю через роль, заблокированы и редактору не доступны. Добавляйте/исключайте другие возможности. Эти изменения будут применены напрямую к пользователю, как только вы нажмете кнопку “Сохранить”.

Сведения о ролях пользователей WordPress можно прочесть в этой статье на английском языке Roles and Capabilities.

Люди, поддержавшие разработку этого плагина финансами

Если вы желаете принять участие в финансировании разработки плагина “Редактор ролей пользователей” (User Role Editor), возможные пути отправки денежных средств разработчику перечислены на странице “Поддержать”.

Журнал изменений

[4.23.2] 03.02.2016

  • Fix: PHP warning "Strict Standards: Static function URE_Base_Lib::get_instance() should not be abstract" was generated

[4.23.1] 01.02.2016

  • Fix: 'get_called_class()' function call was excluded for the compatibility with PHP 5.2.*
  • Fix: ure-users.js was loaded not only to the 'Users' page.

[4.23] 31.01.2016

  • Fix: "Users - Without Role" button showed empty roles drop down list on the 1st call.
  • Update: Own task queue was added, so code which should executed once after plugin activation is executed by the next request to WP and may use a selected WordPress action to fire with a needed priority.
  • Update: Call of deprecated mysql_server_info() is replaced with $wpdb->db_version().
  • Update: Singleton patern is applied to the URE_Lib class.
  • Minor code enhancements

[4.22] 15.01.2016

  • Unused 'add_users' capability was removed from the list of core capabilities as it was removed from WordPress starting from version 4.4
  • bbPress user capabilities are supported for use in the non-bbPress roles. You can not edit roles created by bbPress, as bbPress re-creates them dynamically for every request to the server. Full support for bbPress roles editing will be included into User Role Editor Pro version 4.22.
  • Self-added "Other Roles" column removed from "Users" list, as WordPress started to show all roles assigned to the user in its own "Role" column.
  • 'ure_show_additional_capabilities_section' filter allows to hide 'Other Roles' section at the 'Add new user', 'Edit user' pages.

[4.21.1] 16.12.2015

  • Fix: 'Update' button did not work at User's Capabilities page due to confirmation dialog call error.

[4.21] 11.12.2015

  • It's possible to switch off the update role confirmation (Settings - User Role Editor - General tab).
  • Standard JavaScript confirm box before role update was replaced with custom one to exclude 'Prevent this page from creating additional dialogs' option in the Google Chrome browser.
  • Fix: Removed hard coded folder name (user-role-editor) from the used paths.

[4.20.1] 15.11.2015

  • Fix: "Primary default role" drop-down menu was not shown at "Settings - User Role Editor - Default Roles" tab for WordPress single site installation.

[4.20] 15.11.2015

  • "Additional options" section was added to the user role editor page. Currently it contains the only "Hide admin bar". The list of options may be customized/extended by developers via "ure_role_additonal_options" filter.
  • "Default Role" button is hidden to not duplicate functionality. Use "Settings - User Role Editor - Default Roles" tab instead. This button is available only for the single sites of WP multisite now.
  • Code restructure, optimization: administrator protection parts extracted to the separate class.

[4.19.3] 14.10.2015

  • Fix: minor CSS change.
  • Automatically add all available custom post types capabilities to the administrator role under the single site environment. Custom posts types selection query updated to include all custom post types except 'built-in' when adding custom capabilities for them
  • Special flag was set to indicate that single site administrator gets raised (superadmin) permissions temporary especially for the 'user-new.php' page, but current user is not the superadmin really. (This temporary permissions raising is done to allow single site administrator to add new users under multisite if related option is active.)

[4.19.2] 01.10.2015

  • Fix: multiple default roles assignment did not work under the multisite environment, when user was created from front-end by WooCommerce, etc.
  • Update: the translation text domain was changed to the plugin slug (user-role-editor) for the compatibility with translations.wordpress.org
  • Update: CSS enhanced to exclude column wrapping for the capabilities with the long names.

[4.19.1] 20.08.2015

  • Default role value has not been refreshed automatically after change at the "Default Role" dialog - fixed.
  • More detailed notice messages are shown after default role change - to reflect a possible error or problem.
  • Other default roles (in addition to the primary role) has been assigned to a new registered user for requests from the admin back-end only. Now this feature works for the requests from the front-end user registration forms too.

4.19

  • 28.07.2015
  • It is possible to assign to the user multiple roles directly through a user profile edit page.
  • Custom SQL-query (checked if the role is in use and slow on the huge data) was excluded and replaced with WordPress built-in function call. Thanks to Aaron.
  • Bulk role assignment to the users without role was rewritten for cases with a huge quant of users. It processes just 50 users without role for the one request to return the answer from the server in the short time. The related code was extracted to the separate class.
  • Code to fix JavaScript and CSS compatibility issues introduced by other plugins and themes, which load its stuff globally, was extracted into the separate class.
  • Custom filters were added: 'ure_full_capabilites' - takes 1 input parameter, array with a full list of user capabilities visible at URE, 'ure_built_in_wp_caps' - takes 1 input parameter, array with a list of WordPress core user capabilities. These filters may be useful if you give access to the URE for some not administrator user, and wish to change the list of capabilities which are available to him at URE.
  • Dutch translation was updated. Thanks to Gerhard Hoogterp.

4.18.4

  • 30.04.2015
  • Calls to the function add_query_arg() is properly escaped with esc_url_raw() to exclude potential XSS vulnerabilities. Nothing critical: both calls of add_query_arg() are placed at the unused sections of the code.
  • Italian translation was updated. Thanks to Leo.

4.18.3

  • 24.02.2015
  • Fixed PHP fatal error for roles reset operation.
  • Fixed current user capability checking before URE Options page open.
  • 3 missed phrases were added to the translations files. Thanks to Morteza
  • Hebrew translation updated. Thanks to atar4u
  • Persian translation updated. Thanks to Morteza

4.18.2

  • 06.02.2015
  • New option "Edit user capabilities" was added. If it is unchecked - capabilities section of selected user will be shown in the readonly mode. Administrator (except superadmin for multisite) can not assign capabilities to the user directly. He should make it using roles only.
  • More universal checking applied to the custom post type capabilities creation to exclude not existing property notices.
  • Multisite: URE's options page is prohibited by 'manage_network_users' capability instead of 'ure_manage_options' in case single site administrators does not have permission to use URE.
  • URE protects administrator user from editing by other users by default. If you wish to turn off such protection, you may add filter 'ure_supress_administrators_protection' and return 'true' from it.
  • Plugin installation to the WordPress multisite with large (thousands) subsites had a problem with script execution time. Fixed. URE does not try to update all subsites at once now. It does it for every subsite separately, only when you visit that subsite.
  • Fixed JavaScript bug with 'Reset Roles' for FireFox v.34.

Click here to look at the full list of changes of User Role Editor plugin.


Полный список изменений можно прочесть здесь

Часто задаваемые вопросы

  • Работает ли User Role Editor c WordPress 3.2 в мультиблоговой или сетевой (multi-site) конфигурации?
    Да, плагин рабоатет с WordPress 3.2 в мультиблоговой конфигурации. По-умолчанию плагин работает с каждым блогом из вашей мультиблоговой сети как с единственным блогом без мультиблоговой поддержки.
    Плагин WordPress Редактор ролей пользователей - многоблоговый

    Редактор ролей пользователей - многоблоговый


    Чтобы изменить выбранную роль сразу для всех сайтов Сети необходимо отметить опцию “Применить ко всем сайтам”.
  • Почему администраторы отдельных сайтов в сетевой конфигурации не видят “Редактор Ролей Пользователей” (User Role Editor) в меню пользователи?
    – User Role Editor может быть доступен теперь и администратам отдельных сайтов (Administrator role) вашей многосайтовой сети. Для этого нужно определить константу URE_ENABLE_SIMPLE_ADMIN_FOR_MULTISITE в конфигурационном файле wp-config.php вашего блога. Вставьте в него эту строку кода

     define('URE_ENABLE_SIMPLE_ADMIN_FOR_MULTISITE', 1);

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

  • “Редактор Ролей Пользователей” не сохраняет изменения в ролях на все сайты большой (сотни сайтов) сети. Что делать?
    – Используйте версию 3.5. Для решения этой проблемы (скорее всего превышен установленный на сервере лимит времени выполнения PHP скрипта) реализован альтернативный метод репликации изменений в ролях на все сайты сети. Мои тесты показали повышение быстродействия приблизительно в 30 раз. Заранее благодарен, если вы поделитесь вашим результатом. На сколько изменилось быстродействие? Для выбора альтернативного метода репликации ролей на все сайты добавьте эту строку в конфигурационный файл вашего блога wp-config.php

     define('URE_MULTISITE_DIRECT_UPDATE', 1);
  • – Как изменить роль “Администратор”? Я не вижу ее в выпадающем списке ролей.
    Роль “Администратор” исключена из списка ролей по-умолчанию.
    Вы можете просматривать/изменять роль “Администратор”, начиная с версии 3.4. Для этого вставьте эту строку кода

      define('URE_SHOW_ADMIN_ROLE', 1);

    в файл wp-config.php и войдите в WordPress как администратор.
    If for any reason your “Administrator” role missed some capabilities added by plugins or themes, you can fix that now. But be careful with changing “Administrator” role, do not turn off accidentally some critical capabilities to not block your admin users.

  • Возможно ли использовать этот плагин с более ранними версиями WordPress, чем версия 3.0?
    Начиная с версии 2.2 плагин работает только с WordPress 3.0 и выше. Для более ранних версий WordPress используйте версию плагина 2.1.10.

скачать

Я готов ответить на ваши вопросы по использованию плагина “Редактор ролей пользователей WordPress” (User Role Editor). Используйте для обсуждения систему комментариев к этой статье.

Благодарю за внимание,
Владимир, ShinePHP.com

Tags: ,

  • Ws256

    Спасибо за плагин. Но у меня не получилось его использовать. Страница настроек не открывается, время выполнения скрипта стоит 80.

    [Wed Jul 13 09:38:20 2011] [warn] mod_fcgid: read data timeout in 40 seconds
    [Wed Jul 13 09:38:21 2011] [warn] (110)Connection timed out: mod_fcgid: ap_pass_brigade failed in handle_request function

    “Плагин позволяет назначать отдельным пользователям новые возможности напрямую в дополнение к присвоенной пользователю роли. Для того чтобы сделать это, откройте список пользователей щелкнув по пункту меню «Пользователи». Найдите в списке нужного пользователя, подведите к нему курсор и выберите ссылку «Возможности».”

    А вот «Возможности» – работают, добавил редактору доступ к управлению плагином – и он не появился у него в консоли.

    WP 3.2.1

    • http://shinephp.com Vladimir Garagulya

      Это уже третий сигнал. Предполагаю, что не хватает времени проверить использование возможностей/разрешений (capabilities) всеми пользователями, если их зарегистрировано достаточно большое количество. Сейчас в боксе для удаления возможностей плагин отображает не все существующие возможности, а только не используемые. Для этого и отрабатывает такая проверка. У вас много пользователей зарегистрировано на сайте? Не нужно точное количество, 100, 200, 1000?
      Я планирую добавить опцию для отключения такой проверки. А также вынесу дополнительные функции, как добавить возможность, удалить возможность в отдельное меню, чтобы не блокировали в случаях, подобных вашему, основной функционал.
      Сейчас можете закомментировать вызов заполнения бокса для удаления возможностей. В файле ure-role-edit.php замените строку 45
      $capabilityRemoveHTML = getCapsToRemoveHTML();
      на
      $capabilityRemoveHTML = ”;
      Это должно помочь до выхода очередного обновления для этого плагина.

      • http://shinephp.com Vladimir Garagulya

        Попробуйте версию 3.2. Надеюсь, мне удалось решить эту проблему.

  • Gast

    могу ли я использовать этот Плагин для изменения ролей в Buddypress? Например разрешить определённым пользователям доступ на все группы в Buddypress и другим пользователям только доступ на группы, которым они принадлежат. Заранее благодарен.

    • http://shinephp.com Vladimir Garagulya

      Скорее всего не можете.
      Мне пока не приходилось активно использовать BuddyPress. После его установки на тестовый сайт я не увидел новых ролей в списке ролей WordPress. Похоже, что BuddyPress их не создаёт. Не использует BuddyPress стандартную систему разрешений (capabilities) WordPress и для управления группами пользователей. На сколько я успел разобраться, группы пишутся в отдельные таблицы BuddyPress в базе данных. Среди членов группы могут быть выделены администраторы (поле is_admin в таблице bp_group_members)- скорее всего это делается через интерфейс самого BuddyPress либо с использованием его (BuddyPress) плагинов.

  • Denis Tabac

    Что означают level_0 – level_10?

    • http://shinephp.com Vladimir Garagulya

      Пользовательские уровни level_0-level_10 были введены для разграничения доступа, начиная с версии WordPress 1.5. В WordPress 2.0 они были заменены Ролями (Role) и Возможностями/Разрешениями (Capability). Начиная с WordPress 3.0 пользовательские уровни более не используются WordPress и остаются в базе данных только для совместимости со старыми плагинами и темами.
      Подробнее об пользовательских уровнях можно прочитать здесь
      http://codex.wordpress.org/User_Levels
      Подробнее о ролях, разрешениях и о том, как соотносятся пользовательские уровни с ролевой системой можно прочесть здесь
      http://codex.wordpress.org/Roles_and_Capabilities

  • http://twitter.com/exytab exytab

    Есть ли возможность удалить стандартную роль (например, Contributor)? Или сделать так, что бы её ни кто не видел?

    • http://twitter.com/exytab exytab

      Уже нашел.
      remove_role( ‘contributor’ );

      • http://shinephp.com Vladimir Garagulya

        Отлично. А если нужно только скрыть, можно использовать фильтр

        add_filter(‘editable_roles’, ‘hide_role’);

        function hide_role($roles) {

        if (isset($roles[‘contributor’])){
        unset( $roles[‘contributor’] );
        }

        return $roles;

        }
        // end of hide_role()

  • http://twitter.com/exytab exytab

    У меня очень странная проблема. Все пользователи (кроме администратора) не могут редактировать и удалять свои коментарии (создавать могут). В чём может быть проблема?

    • http://shinephp.com Vladimir Garagulya

      Комментарии в WordPress могут модерировать (редактировать, удалять) только администратор и автор статьи. Если администратор и автор статьи – один и тот же пользователь, получаем в точности вашу проблему.

  • http://1100sovetov.ru/ Алёна

    Спасибо за пост, пригодился.

  • http://1100sovetov.ru/ Алёна

    А если пользователь с правами участник может писать статьи, но не может добавлять фотографии – это права возможно добавить с помощью этого плагина?

  • Kost9

    Добрый день.
    Во первых спасибо за Ваш плагин! Очень удобный и понятный UI.
    Надеюсь вы сможете помочь мне решить некую проблему:
    С помошью вашего плагина была создана отдельная группа с правами:
    +Удалять страницы
    +Удалять статьи
    +Удалять опубликованные страницы
    +Удалять опубликованные статьи
    +Изменять страницы
    +Изменять статьи
    +Редактировать опубликованные страницы
    +Редактировать опубликованные статьи
    +Модерировать комментарии
    +Публиковать страницы
    +Публиковать статьи
    +Чтение
    +html без фильтра
    +Загружать файлы
    По идее пользователь Петя, которые входит в эту группу может: редактировать статьи/страницы которые он публиковал, публиковать новые страницы/статьи. А так же некоторые другие функции.
    Все это работает на УРА! НО! Страницы и статьи для которых в ручную, через свойства, был поставлен “Петя” как автор, для редактирования ему не доступны. Точнее в списке они есть, отображаются как “страница автора”. А вот при нажатии “изменить” получаем вот такое см. картинку.
    Новые страницы/статьи которые изначально созданы “Петей” доступны ему для редактирование без каких либо проблем.

    Буду Вам очень признателен за помощь!

    • Kost9

      Апдейт, для справки.
      Если установить для группы “Редактировать чужие страницы” то Петя получает возможность редактировать страницы с измененным авторством, и все другие так же.

      • http://shinephp.com Vladimir Garagulya

        Добрый день,

        У меня такой пользователь спокойно редактирует присвоенную ему страницу.
        Да и судя по вашей картинке с доступом и у вас всё в порядке. Возможен конфликт с другим плагином. Попробуйте отключить все плагины и проверить, что изменится.
        Ещё можно добавить в wp-config.php такой параметр
        define(‘WP_DEBUG’, true);
        Может быть WordPress сам проговорится, в чем у него проблема.

        • Kost9

          Спасибо за наводку… Усилил ковыряние, оказалось что проблема в плагине “All in ONE SEO”. Так как он используется при работе со страницей. И еще с некими другими завязанными на редактирование страницы…

          Проблема исчезла когда добавил “Управлять установками”. Эта директива я так понял дает права на работу с плагинами?
          Но к сожалению, она так же дала доступ к настройкам сайта :) Что не приемлемо… и очень опасно.

          Пришлось ставить еще один плагин “Advanced Access Manager” в котором для отдельных групп можно отключать конкретные меню в админке. Пока что вот такие костыли…

          Может быть Вам так же реализовать функционал для отключения некоторых “Меню” админки отдельным пользователям / группа? Ваш плагин самый удобный из сотен пробуемых мною.

          • http://shinephp.com Vladimir Garagulya

            Спасибо за оценку и идею. Может быть со временем. С ним всегда, как понимаете проблемы.
            Опять же на этом поле уже есть ряд неплохих решений. Могу из своего опыта добавить плагин ‘Adminimize’.

          • Виктор

            В тему – Я пользуюсь плагинами Shareaholic и vSlider. К сожалению, ваш плагин позволяет авторам не только видеть оба плагина, но также редактировать или даже удалять второй.

          • http://shinephp.com Vladimir Garagulya

            Не совсем понятно, при чем здесь User Role Editor. Я вижу два варианта: либо разработчик упомянутого плагина выбрал слишком низкий уровень доступа для своего плагина, либо вы отредактировали роли таким образом, что авторы могут позволить себе больше, чем вам хотелось бы.

  • http://garfo.ru/ CyberMax

    Хороший плагин, работает. Но в многосайтовой сети всё таки не полностью. Там если зайти в управление пользователями сети, нет этой ссылки “Возможности” возле имени пользователя. А так конечно можно роли создавать и переназначать их для отдельных пользователей. Но тут снова таки, вот например нельзя сделать такую роль которая бы давала администраторам отдельных блогов в сети некоторые права суперадминистратора всей сети. Так например нужно было сделать чтобы администратор блога в сети добавлял в виджет код счетчика с скриптом, у него на это нет прав, а у суперадминистратора есть такая возможность. В общем пока решил это в помощью плагина allow-javascript-in-text-widgets, тем более что он специально под мультисайтовый WordPress сделан. А интересно можно ли с помощью функции “Добавить новую роль” в User Role Editor это сделать?

    • http://shinephp.com Vladimir Garagulya

      Спасибо.

      “Возможности” или “разрешения” пользователей храняться WordPress на “посайтовой” основе. То есть для каждого сайта свои и хранятся отдельно. Поэтому выносить редактор возможностей пользователя на уровень консоли управления сетью суперадминистратора, пока разработчики WordPress не реализовали что-то вроде сетевых (сразу на всю сеть) прав доступа для пользователей, нет смысла.

      В мультисайтовой сети только из соображений безопасности фильтр HTML-тэгов отключен только для суперадминистратора. Для обычных администраторов он всегда включен, независимо от наличия в роли возможности “unfiltered_html”. Таким образом, ответ на ваш второй вопрос отрицательный, с использованием User Role Editor проблему решить не удастся. Это исключение зашито в основной код WordPress, как отдельная логика, независимая от роли пользователя и набора её возможностей/разрешений/permissions/capabilities.
      Если считаете возможным делегировать это право ввода любого HTML-кода ВСЕМ администраторам, можно поставить плагин
      http://wordpress.org/extend/plugins/unfiltered-mu/
      Но я бы этого делать не стал. Сразу возникает масса проблем с безопасностью вашей мультисайтовой сети. Об этом, кстати, честно предупреждают и разработчики плагина. Разве что в случае, когда список администраторов ограничен, и все они – ваши доверенные лица.

      • CyberMax

        “пока разработчики WordPress не реализовали что-то вроде сетевых (сразу на всю сеть) прав доступа для пользователей”

        Если я правильно понял о чем вы, то там уже есть такая функция. Для этого надо зайти в панели администратора сети в Управление сетью > Пользователи, потом выбрать пользователя, зайти в Редактирование пользователя, там можно отметить галкой где “Дать этому пользователю права суперадминистратора сети” и администратор отдельного блога станет суперадминистратором сети. Но мне надо было дать администратору отдельного блога только некоторые функции суперадминистратора сети, поэтому и спрашивал.

  • http://apps-oracle.ru/ rudev

    Обнаружил проблему работы совместно с плагином Robots Meta.
    Для пользователя стоит роль “Участник”, при попытке в админке просмотреть свои записи, перекидывает на главную страницу.
    Но при этом дает просмотреть страницы по следующим ссылкам: Все, Опубликованные , Черновики , На утверждении.
    Ошибка именно про просмотре своих записей.

    • http://apps-oracle.ru/ rudev

      Если снять опцию “Disable the author archives” для плагина Robots Meta, начинает работать просмотр собственных записей.

      • http://shinephp.com Vladimir Garagulya

        Эта проблема – прямой результат работы Robots Meta. Если деактивировать User Role Editor, проблема остаётся. Так что это не вопрос совместной работы этих двух плагинов. Проблему нужно адресовать автору Robots Meta.

  • Tishenkoav

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

  • Alexey Petrenko

    Привет.

    Спасибо за плагин. Польза!

    Я с багрепортом или RFE, как смотреть.
    Названия ролей, на русском, языке в Вашем плагине не совпадают с переводом ролей в самом WP. Можно ли как-то брать названия ролей для редактора всё же в WP? А то сбивает с толку.

    • http://shinephp.com Vladimir Garagulya

      Добрый день, Алексей.

      Спасибо за информацию. Я как-то упустил этот момент. Со следующим обновлением поправлю.

      С уважением,
      Владимир.

      • Alexey Petrenko

        Спасибо.

  • Pingback: Опубликован User Role Editor 3.7 | ShinePHP.com - русское зеркало()

  • Анатолий

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

    • http://shinephp.com Vladimir Garagulya

      Я исхожу из предположения, что у вас установлен и активирован для всей сети плагин “Редактор ролей пользователей”. Тогда добавьте в файл user-role-editor.php сразу после строки
      add_action( ‘wpmu_new_blog’, ‘duplicate_roles_for_new_blog’, 10, 2 );
      следующией код:

      function admin_to_editor($blog_id, $user_id) {
      switch_to_blog($blog_id);
      $user = new WP_User($user_id);
      if ($user->exists()) {
      $user->set_role(‘editor’);
      }
      restore_current_blog();
      }
      add_action( ‘wpmu_new_blog’, ‘admin_to_editor’, 10, 2 );

      В результате автоматически добавляемый во вновь создаваемый блог пользователь будет получать вместо ‘administrator’ роль ‘editor’.

  • http://miui.su/ Zenk

    Приветствую!
    У меня на сайте самодельный плагин. Как через РРП ограничить доступ к нему определенным группам пользователей?

    • http://shinephp.com Vladimir Garagulya

      День добрый,

      Плагин, определяя пункт меню, использует либо роль, либо пользовательское разрешение.

      Например,

      $thanks_page = add_options_page(‘Thank You Counter Button Settings’,
      ‘Thanks CB’, ‘create_users’, $base_name, ‘thanks_options’);

      Здесь ключевым является ‘create_users’, вот эту позицию и нужно включить
      в роль пользователя, чтобы предоставить ему доступ к плагину. Кроме
      этого нужно ещё разрешение, которое используется для доступа к меню в
      целом.

      С этим может помочь таблица из этой статьи

      http://shinephp.com/wordpress-admin-menu-permissions/

      Чтобы дать более точные рекомендации нужно взглянуть на код плагина.

  • Чеснок По-ЧесТному

    Мне необходимо определённой роли запретить постить везде, кроме одной рубрики. Как это сделать?

    • http://shinephp.com Vladimir Garagulya

      Спасибо за вопрос. Есть быстрый ответ, но он на английском. Если это для вас не проблема, то читайте здесь.
      http://shinephp.com/block-posting-to-selected-categories/
      Если список категорий не большой и редко меняется, то код можно использовать, как есть.
      Для более универсальной реализации список категорий для блокировки нужно получать программно из базы данных. Я опубликую пост на эту тему в ближайшие дни.

      • http://shinephp.com Vladimir Garagulya

        Статья на русском по блокировке списка рубрик/категорий для определенной роли доступна по этой ссылке http://ru.shinephp.com/block-categories-for-role/

  • Роман

    Как можно оставить пользователю в админке только права на изменение собственного профиля и Модерирования комментариев?
    Дело в том, что для модерирования комментов нужно установить права edit_others_posts, edit_published_posts,
    moderate_comments, read. Только moderate_comments и read не дают эффекта (тогда только просмотр комментов остается), а при полном наборе edit’ов пользователь уже может редактировать записи через меню, имеющееся сверху экрана у залогиненного пользователя при просмотре сайта (wpadminbar, см. картинку).

    • http://shinephp.com Vladimir Garagulya

      Совершенно верно. Право edit_post и сопряжённые с ним, являются здесь ключевыми. Судя по описанию, этот плагин может вам помочь
      http://chooseplugin.com/plugin-info/baw-moderator-role
      Хотя сам я его ещё не тестировал.

      • Роман

        Спасибо за наводку – это то, что нужно. Свои функции выполняет (появляется новая роль – Moderator с правами модерирования комментов).

        • http://shinephp.com Vladimir Garagulya

          Глянул исходный код. Роль Moderator в действительности наполнена указанными вами правами. Плагин прячет “лишние” для модератора комментариев пункты меню и блокирует прямой вызов скриптов, связанных с этими пунктами.
          Полезное дополнение к системе разграничения доступа WordPress.

  • sashic

    Плагин работает с custom post types и custom taxonomy?

    • http://shinephp.com Vladimir Garagulya

      Плагин работает с хранилищем прав и ролей. Если для custom post type определены особые права, то есть в определении пользовательского типа передан параметр типа
      ‘capability_type’ => ‘your_custom_cap’,
      то они будут работать в соотвествующих ролях после добавления всего нужного набора, описан здесь (english)
      http://shinephp.com/capabilities-set-for-custom-post-type/
      вручную через User Role Editor или программно.

  • Viktor

    Мои авторы видят только собственные посты и страницы, что превосходно. Но не так с галереями. Я использую плагин nextgen gallery. Нельзя ли как нибудь сделать так, чтобы каждый автор видел только свои собственные галерей? Они видят все, а это им незачем как и в слючае постов/статей.

    • http://shinephp.com Vladimir Garagulya

      Пока не знаю. За предложение спасибо. Посмотрю, что можно сделать. Но быстрой реализации не обещаю.

  • Виктор

    Нельзя ли сделать так, чтобы авторы видели только свои nextgen галерей, как и вслучае постов и страниц? Это очень удобно.

  • Serg

    Хороший плаг, но чего не хватает – импорта-экспорта ролей и прав юзеров.

    Не планируется?

    • http://shinephp.com Vladimir Garagulya

      Да, планирую добавить функционал экспорта-импорта. Но точный срок реализации пока назвать не могу.

  • Виталий

    Функция “применить ко всем сайтам” не работает.

    Роли изменяются только на основном сайте. На всех остальных сайтах сети роли остаются без изменений. Я использую WordPress MU 3.5.1 и User Role Editor 3.10
    Подскажите, пожалуста, в чем может быть проблема?

    • http://shinephp.com Vladimir Garagulya

      Странно, это 1-ый сигнал за более чем месяц после выпуска 3.10.
      “Применить ко всем сайтам” используется не как функция, а скорее как опция. Нужно включить этот checkbox, а затем включить/выключить какое-нибудь из разрешений (capabilities) выбранной роли и сохранить изменения, нажав кнопку “Update”. При включенном “применить ко всем сайтам” роли текущего сайта должны после этого записаться на все остальные сайты сети.

  • Vitek9208

    Добрый день!
    Подскажите пожалуйста, как убрать пункт “Добавить товар” для некоторых пользователей?

    • http://shinephp.com/ Vladimir Garagulya

      Добрый день,

      Какой плагин используете для работы с “Товарами”?

  • OMSKMEBEL

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

    • http://shinephp.com/ Vladimir Garagulya

      Доброе время суток!
      Посмотрите, что можно взять полезного из этого плагина. Он давно не обновлялся, но думаю, что основная идея должна работать:
      http://chooseplugin.com/plugin-info/wp-roles-at-registration

  • David

    Привет. Плагин что надо. Только вот у меня пользователи почему то видят разделы Tools и плагин vSlider. Последний могут даже редактировать. А мне этого не надо. Можете предложить решение?

  • kenzhik

    Как можно оставить пользователю в админке только права на изменение собственного профиля и Модерирования комментариев?
    И еще нельзя ли как нибудь сделать так, чтобы каждый автор видел комментарий только к своим собственным постам.

  • Dmitry

    Здравствуйте, Владимир! Серьезный плагин, спасибо. Подскажите пожалуйста, как реализовать новую функцию для ролей – возможность добавлять в любой пост дополнительный контент новыми блоками, каждый юзер новый блок, без возможности изменения уже имеющегося и без изменения Url? Например разработчик плагина Post Forking сделал возможность добавлять контент к существующему посту, но по названию плагина создается “вилка” т.е. автоматом добавляется новая страница, естественно с новым url, а если 10 человек добавляют контент, то 10 новых страниц с 10-ю новыми url – это ни в какие ворота не лезет ))) Помогите пожалуйста! С уважением, Дмитрий.

    • http://shinephp.com/ Vladimir Garagulya

      Здравствуйте, Дмитрий.

      Не вижу другой возможности реализовать описанный функционал, кроме как написать под эту задачу отдельный плагин. К примеру плагин создаёт пользовательский тип статей (custom post type), для которого позволяет выбрать к какому стандартному посту добавить этот блок. Далее плагин автоматически добавляет новые блоки к стандартным постам в хронологическом порядке при формировании страницы для отображения в браузере.

  • Серж

    Здравствуйте прошу помочь мне разобраться как добавить свою возможность, а именно запретить определённым пользователям с определённой ролью оставлять комментарии.

    • http://shinephp.com/ Vladimir Garagulya

      На случай, если вы ещё не нашли решение. Можно добавить в functions.php активной темы такой код:

      if (current_user_can(‘your_role’)) {
      add_action(‘pre_comment_on_post’, ‘block_wp_comments’);
      }
      function block_wp_comments() {
      wp_die( __(‘Sorry, comments are closed for this item.’) );
      }

  • AlexB59

    Можно ли использовать плагин для создания приватной группы в форуме (плагине) bbpress и если можно, то как правильно такую связку настроить?

    • http://shinephp.com/ Vladimir Garagulya

      Ответ отрицательный. Пока плагин не поддерживает работу с ролями bbPress.
      bbPress не хранит свои роли в базе данных, как это делает WordPress. bbPress грузит свои роли в память из PHP-кода при каждом запросе страницы. Так как основная функция “User Role Editor” – работа с хранилищем ролей WordPress, я исключил роли bbPress из обработки.

  • Олег

    Подскажите, как с помощью плагина User Role Editor разрешить пользователям редактирование конкретной страницы или нескольких страниц, но не всех? Спасибо.

  • Виктор Захаров

    Добрый день, Владимир.

    Есть плагин “Contact Form 7”. Как добавить “новую возможность” чтобы скрыть у редактора в левом меню пункт меню доступа к данному плагину?

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

    • http://shinephp.com/ Vladimir Garagulya

      Добрый день, Виктор.

      Этот код удаляет меню “Contact” плагина Contact Form 7 для роли editor. Можете заменить эту роль на свою собственную возможность. Но это возможно лишнее.
      Код вставьте в functions.php активной темы.

      if (current_user_can(‘editor’)) {
      add_filter(‘wpcf7_map_meta_cap’, ‘hide_contact_form_7’);
      function hide_contact_form_7($meta_caps) {
      unset($meta_caps[‘wpcf7_read_contact_forms’]);
      unset($meta_caps[‘wpcf7_edit_contact_forms’]);

      return $meta_caps;
      }
      }

      • Виктор Захаров

        Спасибо.

  • Влад

    Здравствуйте, Владимир.
    У вас спрашивали пару лет назад:
    “”Нельзя ли как нибудь сделать так, чтобы каждый автор видел только свои собственные галерей? Они видят все, а это им незачем…””

    Вы там говорили, что подумаете)
    Нашлось ли решение?
    У себя установил плагин типа дjбавления статей пользователями через “фроненд”, там возможность добавления картинок реализована через стандарnный интерфейс добавления картинок WP. Там пользователь видит все картинки из папки “аплоад”, что неприемлемо…
    Можно ли как то права доступа изменить…?

  • Виталий

    Здравствуйте! Столкнулся с такой с такой проблемой!
    Установил плагин Ajax Edit Comments
    https://wordpress.org/plugins/wp-ajax-edit-comments/
    Пользователи регистрируются как с ролью “Участник”
    Появились кнопки для этой роли “редактировать” и “удалить” не работает кнопка редактирование, удаление работает (тоже самое для роли “Автор”)
    Когда добавляю в user role editor возможность moderate_comments тогда редактируются комментарии всех ролей

    А мне нужно чтобы “Участник” и “Автор” могли редактировать только свои комментарии

    Подскажите пожалуйста можно ли добавить новую возможность по моим критериям для user role editor или же хаком можно этого добиться?

    Заранее спасибо!

  • Roof

    Здравствуйте. Подскажите, как дать редактору возможность работать с плагином галереи. Я использую не NextGen, для которого там есть настройки. и редакторы не видят плагин фотогалереи, который нужен для работы.

    • http://shinephp.com/ Vladimir Garagulya

      Здравствуйте,

      Укажите ссылку для загрузки используемого Вами плагина фотогалереи. Я проверю, какие права он требует.

      • Roof
        • http://shinephp.com/ Vladimir Garagulya

          Photo Gallery от Web Dorado использует для своего меню право пользователя ‘manage_options’ . Если дать редактору это право, то вместе с доступом галлерее он получит доступ к настройкам и меню других плагинов, также использующих manage_options. Возможное решение предлагает Pro версия User Role Editor. Например, этот пост описывает решение похожей проблемы:
          https://www.role-editor.com/wp-statistics-access-other-roles/

          • Roof

            спасибо за ответ!

  • София

    Здравствуйте!

    Благодарю за статью!
    Не могли бы Вы подсказать – позволяет ли плагин User Role Editor прописать роли исключительно для интегрированного в WordPress форума bbPress? (Чтобы эти роли не действовали в отношении всего сайта на WordPress).

    • http://shinephp.com/ Vladimir Garagulya

      Здравствуйте, София.

      User Role Editor не работает с ролями bbPress. Я специально исключаю их из списка доступных для редактирования ролей. bbPress не хранит роли в базе данных, как это делает WordPress. bbPress создаёт свои роли программно при каждом вызове, поэтому изменять их и сохранять в базе данных с использованием bbPress нет смысла.
      Нужно менять их также “на лету”, программно.

      • София

        Здравствуйте, Владимир.
        Спасибо за ответ.
        Не подскажете, как можно настроить роли в bbPress «программно»?

  • Евгений

    Здравствуйте! Пожалуйста, очень важно, подскажите, а можно ли дать чуваку роль где он сможет публиковать в своей роли других чуваков, но только в своей, то есть они регятся и просятся к нему, а он либо подтверждает либо нет. Спасибо.