1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - новый и перспективный форумный движок от бывших создателей vBulletin.

Управление правами доступа в XenForo

Тема в разделе "Основные вопросы по XenForo", создана пользователем FractalizeR, 11 окт 2010.

Загрузка
  1. Exile

    Exile Местный

    Регистрация:
    27.06.11
    Сообщения:
    999
    Симпатии:
    546
    Версия XF:
    1.4.4
    mxm, ставите разделу статус приватного. В редактировании прав доступа к нему, всем группам ставите в зеленое положение право "Просмотр узла", все остальное наследуется. Группам, которые не должны видеть содержимое тем, все остальные права кроме этого ставите в красное положение (никогда). Попробуйте так сделать. Точно не уверен, но по логике должно сработать.

    То есть вот права для группы, которая должна видеть и сам узел и темы в нем и вообще там общаться:
    2015-02-03 02-46-12 Скриншот экрана.png

    А вот права для группы, которая должна видеть только список тем в узле:
    2015-02-03 02-47-37 Скриншот экрана.png
     
  2. mxm

    mxm Новичок

    Регистрация:
    02.01.15
    Сообщения:
    4
    Симпатии:
    0
    Попробовал такой вариант. Не получается :(
    Если права группы "Зарегистрированные" поставить в положение "Никогда",
    то и группа "Premium" тоже не может просматривать темы (хотя ей разрешено).
    И даже администратор не может просматривать, т.к. у него тоже основная группа "Зарегистрированные".
    Группа "Premium" может просматривать темы только в том случае, если поставить у пользователя
    эту группу как основную. Можно было бы так и сделать, но как быть с администратором?
    При таких настройках он не может работать в закрытом разделе пока находится в группе "Зарегистрированные".
     
  3. Exile

    Exile Местный

    Регистрация:
    27.06.11
    Сообщения:
    999
    Симпатии:
    546
    Версия XF:
    1.4.4
    mxm, ну вообще всегда основная группа должна быть зарегистрированные, тут вы правы. Есть вариант один, который точно сработает - опишу как это вижу.

    Есть основная группа "зарегистрированные". Все пользователи всегда находятся в ней. Есть несколько вторичных групп - "администраторы", "модераторы", "premium". Надо добавить еще одну служебную вторичную группу и назвать ее, например, "проверенные". Группе "зарегистрированных" настраиваете базовые права, которые должны быть у всех на форуме, остальным группам настраиваете по своему усмотрению. Создаете повышение групп пользователей - из "зарегистрированных" в "проверенных". В эту вторую группу условием перемещения выставляете что ни в каких других дополнительных группа ("администраторы", "модераторы", "premium") пользователь не состоит ну и условие что пользователь авторизован как базовое.

    Раздел делаете приватным, всем группам ставите разрешение на "просмотр узла", остальные права наследуются у тех кто должен содержимое тем видеть (как выше описывал), а вот у тех кто видеть не должен содержимое тем (в нашем примере группа "проверенные") - ставите оранжевое право (отозвать) на все, кроме "просмотр узла", который разрешен.

    Таким образом получаем:
    • администратор: основная группа "зарегистрированные", вторичная группа "администратор" - раздел видит, все в нем делать может (согласно своим правам)
    • premium: основная группа "зарегистрированные", вторичная группа "premium" - раздел видит, все в нем делать может (согласно своим правам)
    • проверенный: основная группа "зарегистрированные", вторичная группа "проверенный" - раздел видит, но просматривать темы, отвечать и вообще что-то в нем делать не может, потому что через группу "проверенные" мы в этом узле у него нужные права отозвали
    То есть в вашем конкретном случае вам действительно надо использовать систему отзыва прав, но только на вторичных группах, и чтобы отзывать ее у всех "не администраторов, модераторов, премиумов", вам надо создать эту самую служебную вторичную группу, куда будут помещаться все кто не в разрешенных группах.

    Я очень надеюсь что описал понятно, если вопросы будут задавайте.
     
    Sergey M. нравится это.
  4. infis

    infis Местный Команда форума

    Регистрация:
    27.06.11
    Сообщения:
    5.525
    Симпатии:
    3.321
    Версия XF:
    1.5.9
    Никогда не используйте право "Никогда" :)
    Исключение - группы типа забаненных.
    В остальных случаях необходимо использовать "Отозвать".

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

    Если использовать "Отозвать", то необходимо учитывать, что оно перекрывает только "Наследование". Если хоть в какой-то группе участника будет указано явное "Разрешено", то оно перекроет любое количество "Отозвать".

    Этим и отличаются "Никогда" и "Отозвать".

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

    И вообще все это описано достаточно подробно в теме Система прав XenForo.
    --- добавлено : Feb 3, 2015 12:59 PM ---
    Лучше такую группу сразу обозвать типа "Без раздела XXX". Тогда даже несколько подобных групп будут вполне наглядными при редактировании пользователей (изменении участия в группах). А то со временем и увеличением количества закрытых разделов получим трудноуправляемое хозяйство. А названия групп никаким образом не отображаются на форуме в паблике (только в админке), поэтому можно за названия групп не переживать вовсе.
     
    Последнее редактирование модератором: 11 фев 2015
    TAIFUN нравится это.
  5. canfly

    canfly Пользователь

    Регистрация:
    21.01.15
    Сообщения:
    25
    Симпатии:
    1
    Помогите, пожалуйста, уважаемые ксеноводы! После битвы с многими проблемами, появилась новая, как я понимаю, связана она с правами. Замечу, что форум был импортирован с SMF. Сейчас картина такая: пропала возможность добавления подписи и аватара, причем у всех групп, кроме группы "Moderating". При добавлении группы к отдельному юзеру, эти возможности появляютя, ну с админами ладно, но у простых юзеров (если сделать им дополнительную группу), соответственно появляются и права. Не знаю уже, где рыть...:cry:
     
    Последнее редактирование: 3 фев 2015
  6. infis

    infis Местный Команда форума

    Регистрация:
    27.06.11
    Сообщения:
    5.525
    Симпатии:
    3.321
    Версия XF:
    1.5.9
    Ну так посмотрите, в чем отличие этих групп. Не для узла, а общие права.
     
  7. canfly

    canfly Пользователь

    Регистрация:
    21.01.15
    Сообщения:
    25
    Симпатии:
    1
    Разобрался, не нужно было давать дополнительные права пользователям..
     
  8. mxm

    mxm Новичок

    Регистрация:
    02.01.15
    Сообщения:
    4
    Симпатии:
    0
    Спасибо за предложенный вариант.
    У меня получилось реализовать эту задачу следующим образом:
    Создал группу "Premium".
    Пользователям, которым нужно предоставить доступ к просмотру топиков в закрытом разделе,
    установил доп.группу "Premium".
    Группе "Зарегистрированные" в настройках прав доступа к узлу установил "Просмотр содержимого тем" - Отозвать.
    Группе "Premium" в настройках прав доступа к узлу установил "Просмотр содержимого тем" - Разрешено.

    В итоге работает как надо.
     
  9. mizha

    mizha Пользователь

    Регистрация:
    02.02.16
    Сообщения:
    37
    Симпатии:
    2
    Версия XF:
    1.5.5
    Здравствуйте! Не стал создавать новую тему... У меня такой вопрос:
    Я создал свой аддон и хочу к нему примерить группу прав которую так же сам создал и связал её со свои аддоном.
    В правах появилось моё созданное право, но ничего не меняется когда я выставляю один из пунктов. Попробовал заключить код шаблона в такую структуру, но результата тоже не дало:
    <xen:if is="{$visitor.permissions.myPermGroupID.myPermID">
    //код шаблона
    </xen:if>

    В чём может быть проблема?
     

Поделиться этой страницей