chesnokov
Total posts: 5
12 Aug 2014 07:13

Добрый день! Создал раздел, в нем 50 категорий. Есть 30 пользователей-модераторов (registered), которые могут создавать и редактировать новые записи в категориях. Как настроить так, чтобы 10 категорий могли полностью редактировать только супер-пользователи, при этом пользователи-модераторы тоже могут только редактировать поля, но не могут изменить категорию и удалить?

Last Modified: 15 Sep 2014


Sergey
Total posts: 13,748
12 Aug 2014 11:23

chesnokov Как настроить так, чтобы 10 категорий могли полностью редактировать только супер-пользователи, при этом пользователи-модераторы тоже могут только редактировать поля, но не могут изменить категорию и удалить?

Ну модераторы вообще не могут редактировать категории так как они не могут зайти в админку, а категории только с админки можно изменять удалять.

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


Guest
12 Aug 2014 11:42

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


Sergey
Total posts: 13,748
12 Aug 2014 22:42

Guest "но не могут изменить категорию и удалить"

Ну а какие доступы стоят для добавления в категории в настроках типа? Сделайте для зарегистрированых.


Guest
13 Aug 2014 13:43

Добавлять могут только зарегистрированные - настройка доступа


Sergey
Total posts: 13,748
14 Aug 2014 00:16

Ну может поставить это супер юзер. Тогда только они смогут категорию редактировать. А модераторы не смогут.


Guest
11 Sep 2014 10:42

Решил скрыть поле выбора категории для отдельной группы пользователей вот таким кодом (кодил шаблон default_form_default): `id; if (count($groups) == 0 || $user_id == 0) return false; return (count(array_intersect(JFactory::getUser($user_id)->getAuthorisedGroups(), $groups))>0); } unset($groups); $groups = array(2); if(getAccess( $groups)){ ?>

loadTemplate('category_'.$params->get('tmpl_params.tmpl_category', 'default')); ?>

loadTemplate('category_'.$params->get('tmpl_params.tmpl_category', 'default')); ?>
`

Подскажите пожалуйста, как внести сюда ограничение по категории (т.е. строка не должна отображаться у пользователей из всех групп, кроме группы - 2 + в определенной категории)?


Guest
11 Sep 2014 10:44

Еще раз код, а то выше он не полный

<?php 
function getAccess($groups=array(), $user_id=0)
{
   if ($user_id == 0) $user_id = JFactory::getUser()->id;
   if (count($groups) == 0 || $user_id == 0) return false;
   return (count(array_intersect(JFactory::getUser($user_id)->getAuthorisedGroups(), $groups))>0);
}

unset($groups);
$groups = array(2); 
if(getAccess( $groups)){ ?>

<?php echo $this->loadTemplate('category_'.$params->get('tmpl_params.tmpl_category', 'default')); ?>

<?php } else { ?>
                <div style="display:none">
                <?php echo $this->loadTemplate('category_'.$params->get('tmpl_params.tmpl_category', 'default')); ?>
                </div>
                <?php  } ?>

Sergey
Total posts: 13,748
11 Sep 2014 13:45

Я не совсем понимаю. А куда будут добавлять те кому нельзя выбирать категорию? Если статьи должны быть в категориях, то выбор должен работать для всех.

А вообще это можно сделать так

<?php if(in_array(2, JFactory::getUser()->getAuthorisedGroups())): ?>
   ПОказать категории
<?php else: ?>
   Не показывать категории. Или вставить спрятяный инпут для назначения категории.
<?php endif; ?>

Guest
12 Sep 2014 04:40

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


Sergey
Total posts: 13,748
12 Sep 2014 08:28

Тогда просто надо добавить яваскрипт в шаблон вормы что бы делал поле выбора категории только для чтения. Или вставлять это подменяя текст из шаблона.


Guest
15 Sep 2014 04:34

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

Powered by Cobalt