Создание контента только в группах

Права доступа на создание контента

 
Посетитель
small user social cms
Сообщений: 23
Приветствую друзья)
Есть у меня один тип контента, к примеру новости группы. Его можно создавать только в группах, стоит соответствующая галочка в админке. Но создавать его могут все пользователи состоящие в группе, если пользователь состоит в 10 группах, то он может в них создать новости, Нужно сделать так что бы этот тип контента могли создавать только админы группы. Этот /system/controllers/content/actions/item_add.php файлик отвечает за создание контента. есть там такой код

Код PHP:
  1. // Если этот контент можно создавать в группах (сообществах) то получаем список групп
  2. $groups_list = array();
  3.  
  4. if ( (($ctype['is_in_groups'] || $ctype['is_in_groups_only'])) ){
  5.  
  6. $groups_model = cmsCore::getModel('groups');
  7. $groups = $groups_model->getUserGroups($user->id);
  8.  
  9. if (!$groups && $ctype['is_in_groups_only'] ){
  10. cmsUser::addSessionMessage(LANG_CONTENT_IS_IN_GROUPS_ONLY, 'error');
  11. $this->redirectBack();
  12. }
  13. //Нужно где то здесь запилить проверку, что бы выводились только те группы в которых пользователь является администратором, а не все в которых он состоит.
  14. $groups_list = ($ctype['is_in_groups_only']) ? array() : array('0'=>'');
  15. $groups_list = $groups_list + array_collection_to_list($groups, 'id', 'title');
  16.  
  17. }
  18.  
PHP знаю, не очень хорошо, а точнее плохо, по этому ХЕЛП!!
Редактировалось: 1 раз (Последний: 4 декабря 2015 в 14:06)
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
TopDevice:
Нужно сделать так что бы этот тип контента могли создавать только админы группы
В настройках же это есть.В графе "Доступ".Или я недопонял?
Реклама
cms
Посетитель
small user social cms
Сообщений: 23
Lora:

TopDevice:
Нужно сделать так что бы этот тип контента могли создавать только админы группы
В настройках же это есть.В графе "Доступ".Или я недопонял?

В графе доступ задаются настройки для групп пользователей(может эта группа пользователей создать данный тип контента ), мне же нужно сделать, что бы определенный тип контента могли создавать только администраторы группы,
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
Что то я не как не въеду. В первом посте вы пишите что у вас есть определённый тип контента.Если он уже есть зачем его снова создавать?А здесь

TopDevice:
В графе доступ задаются настройки для групп пользователей(может эта группа пользователей создать данный тип контента ),

TopDevice:
мне же нужно сделать, что бы определенный тип контента могли создавать только администраторы группы
по моему одно и тоже написано.
И разве можно создать тип контента не из админки?Можно производить действия "внутри",т.е. добавлять посты,записи,редактировать и т.п.Но создавать сам тип контента, что то я не нашёл такого.
Посетитель
small user social cms
Сообщений: 23
Lora:

Что то я не как не въеду. В первом посте вы пишите что у вас есть определённый тип контента.Если он уже есть зачем его снова создавать?А здесь

TopDevice:
В графе доступ задаются настройки для групп пользователей(может эта группа пользователей создать данный тип контента ),

TopDevice:
мне же нужно сделать, что бы определенный тип контента могли создавать только администраторы группы
по моему одно и тоже написано.
И разве можно создать тип контента не из админки?Можно производить действия "внутри",т.е. добавлять посты,записи,редактировать и т.п.Но создавать сам тип контента, что то я не нашёл такого.

Попробую с самого начала)
Есть тип контента "Товар", в админке стоит галочка, создавать только в группах. нужно добавить еще одно условие, что бы это тип контента создавался только администраторами групп.
То есть идея в том, что человек заходит на сайт, создает свою группу, и эту группу наполняет товаром.
Сейчас товар может добавить любой человек состоящий в группе.
Редактировалось: 1 раз (Последний: 7 декабря 2015 в 09:28)
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
TopDevice:
Сейчас товар может добавить любой человек состоящий в группе
Нет.Если в доступе стоит только администратор, то и добавлять запись может только тот член группы, кто является администратором.По крайней мере у меня так.
Посетитель
small user social cms
Сообщений: 23
В настройках типа контента в вкладке доступ есть 4 группы пользователей(Новые, пользователи, модераторы, администраторы), человек который только пришел на сайт автоматически относится к группе пользователей "НОВЫЕ", Если он создал группу, он становится ее администратором, но для всего сайта он остается обычным пользователем, относящимся к группе "Новые". Группа пользователей администраторы в настройках типа контента, относится к администраторам всего сайта, а не к администраторам групп. В приведенном куске кода в первом посте, выводится список групп в которых состоит пользователь, мне нужно вывести список групп в которых пользователь является админом, Если сможете подсказать как это сделать, буду благодарен.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
А что это за администратор группы? Знаю есть владелец или создатель, а кто ещё есть?
Посетитель
small user social cms
Сообщений: 23
Lora:

А что это за администратор группы? Знаю есть владелец или создатель, а кто ещё есть?

На скрине показал, в настройках группы создатель может назначить дополнительно администраторов.
Прикрепленные файлы:
_nvvtd.png | 34.93 Кб | Скачали: 263
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
Хорошо,понятно.Но просто прописать условие не получится.Нужно найти файл где выполняется запрос и там править.Попробую найти, так как сам юзаю первую ветку.
Посетитель
small user social cms
Сообщений: 23
Lora:

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

У меня 2.3.0 /system/controllers/content/actions/item_add.php думаю ковырять нужно этот файл
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
TopDevice:
У меня 2.3.0 /system/controllers/content/actions/item_add.php думаю ковырять нужно этот файл
Повторяю
Lora:
Нужно найти файл где выполняется запрос в базу и там править
Принадлежность к группе администраторов задаёт переменая $groups['role'] равная 2, но задать условие нельзя, так как будут выводиться все группы в которых есть администраторы.
Посетитель
small user social cms
Сообщений: 23
Проблема решина,
Код PHP:
  1.  
  2. if ( (($ctype['is_in_groups'] || $ctype['is_in_groups_only'])) ){
  3.  
  4. $groups_model = cmsCore::getModel('groups');
  5. $groups = $groups_model->getUserGroups($user->id);
  6.  
  7. if (!$groups && $ctype['is_in_groups_only'] ){
  8. cmsUser::addSessionMessage(LANG_CONTENT_IS_IN_GROUPS_ONLY, 'error');
  9. $this->redirectBack();
  10. }
  11.  
  12.  
  13. $groups_model = cmsCore::getModel('groups');
  14. $groups_model->filterEqual('role', 2);
  15. $groups = $groups_model->getUserGroups($user->id);
  16.  
  17.  
  18. if( $group['owner_id'] != $user->id){
  19. $groups_list = ($ctype['is_in_groups_only']) ? array() : array('0'=>'');
  20. $groups_list = $groups_list + array_collection_to_list($groups, 'id', 'title');
  21.  
  22. }
  23. if (!$groups_list) {
  24. cmsUser::addSessionMessage(LANG_CONTENT_IS_IN_GROUPS_ONLY, 'error');
  25. $this->redirectBack();
  26. }
  27.  
  28.  
  29.  
  30. }
  31.  
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: