Включение редактирования прав гостей в администраторской

+32
4.86K
В этот знаменательный день (1 сентября) карма пересекла величину порога, позволяющая создать блог на сайте InstantCMS (ICMS2), поэтому решено зафиксировать данное событие публикацией первого поста.

Т.к. информация для публикации не была подготовленна к данной дате, поэтому решено продублировать материал, опубликованный на форуме.

Материал носит ознакомительный характер и предназначен в первую очередь для разработчиков дополнений ICMS2 в которых неоходимо манипулирование правилами группы "Гостей".

Выполним простейшие действия:
1. Найдем файл system\controllers\admin\actions\users.php;
2. Заменим строку 15
  1. $groups = $users_model->getGroups();
на
  1. $groups = $users_model->getGroups(true);
3. Переходим в администраторскую, выбираем в меню "Пользователи" и убеждаемся, что появилась группа "Гости" (рисунок 1).
Иллюстрация
Рисунок 1

4.Аналогичные действия выполняем в файлах:
system\core\backend.php (строки 86, 108)
system\controllers\admin\actions\ctypes_perms.php (строка 20)
system\controllers\admin\actions\ctypes_perms_save.php (строка 14)
В результате имеем:
Иллюстрация
Рисунок 2. Компонент

Иллюстрация
Рисунок 3. Контент

5. Редактируем правила доступа на свой вкус.
+6
My-InstantCMS.Ru My-InstantCMS.Ru 9 лет назад #
Всё так просто?)
Тайны двойки раскрываются hoho
+4
Aryuts Aryuts 9 лет назад #
"Тайны мадридского двора" rofl
+3
А.Саган А.Саган 9 лет назад #
А есть ли возможность, с помощью предложенных манипуляций, закрыть гостям просмотр "вообще всего"?
Чтобы гости могли видеть только некий приветственный текст и возможность войти или зарегистрироваться.
А иначе для чего все эти городушки?
+5
Aryuts Aryuts 9 лет назад #
Если немного пошаманить, то да.
+4
А.Саган А.Саган 9 лет назад #
На мой взгляд, это очень важная и необходимая функция - уровень доступа к контенту по группам, в том числе и группы Гости.
Для начала, было бы не плохо закрыть от них комментарии...
+4
Aryuts Aryuts 9 лет назад #
Я с Вами согласен, что правило скрытия контента очень необходимо. К сожалению разработчики не всесильны (в сутках 24 часа). Со многим в двойке пока не разобрался, а что знаю, то пишу на форуме, а теперь и здесь.
+5
SpaceSel SpaceSel 9 лет назад #
Отлично!
PS: Поздравляю с открытием блоГа.
+4
Aryuts Aryuts 9 лет назад #
Благодарствую. Надеюсь будет полезен всем.
HostelB HostelB 9 лет назад #
Комментарий удален
+1
Aryuts Aryuts 9 лет назад #
Что за вопрос? Конечно напишите, а все Вам спасибо скажут.
+4
СергейП СергейП 9 лет назад #
Поздравляю со стартом v и плюсую за 1 статью в новом блоге smile
+1
Aryuts Aryuts 9 лет назад #
Премного благодарен.
+2
jorgovich jorgovich 9 лет назад #
Здравствуйте, а сами проверяли изменения у Вас работают?
У меня при всех этих действиях практического эффекта 0, галочки да можно ставить но ни на что они не влияют...
Порядок действий такой: провел все манипуляции описанные у Вас, создал свой тип контента otzyvi, добавил галочки в настройках группы Гости на создание записи в этом типе контента, в самом типе контента указал что гости имеют права на создание записи, выхожу из системы набираю адрес site.ru/otzyvi/add - выдает 404...
Что не так может быть?
+2
Андрей Андрей 9 лет назад #
Aryuts:
5. Редактируем правила доступа на свой вкус.
Видимо для автора этого достаточно. Будем любоваться на галочки в админке.
Вообще-то нужно ещё как создать в БД (таблица "users") юзера с ID=0. Потом открыть "/var/www/icms/system/core/user.php" и после строки 109
там где заканчивается условие
Код PHP:
  1. if ($this->id){
добавить:
Код PHP:
  1. else{
  2. $this->perms = self::getPermissions(array(GUEST_GROUP_ID),GUEST_GROUP_ID);
  3. $this->karma = 0;
  4. }
После этого вроде работает, но за безопасность не ручаюсь. Но автору спасибо за наводку.
+2
Андрей Андрей 9 лет назад #
Поправка. Правильнее так:
Код PHP:
  1. $this->perms = self::getPermissions(array(GUEST_GROUP_ID),$this->id);
+1
webtotma webtotma 9 лет назад #
Спасибо - потестируем.
+1
webtotma webtotma 9 лет назад #
Установил для теста гостям право добавлять Новости. Добавить получается. Новость отправляется на модерацию. Открываю под админом/модератором, пытаюсь разрешить публикацию - 404. И урл - типа mysite/news/.html

Странно, но из 4 добавленных новостей - одна каким-то чудом, хоть и с ошибкой 404, но модерацию прошла.

Про создание юзера с id=0 поподробнее поясните плиз. Вроде создал, но терзают сомнения.
+4
webtotma webtotma 9 лет назад #
Я сам сначала задавался таким вопросом, но

Материал носит ознакомительный характер и предназначен в первую очередь для разработчиков дополнений ICMS2 в которых необходимо манипулирование правилами группы "Гостей".

В дефолтных компонентах результат будет 0. Там гостей стороной пока обошли. Вероятно можно как-то подправить.

Профи отзовитесь - как это сделать, укажите хотя бы направление!
0
m0skit m0skit 9 лет назад #
Есть какое-то продвижение по этому вопросу? Очень интересует возможность добавления объявлений незарегистрированными пользователями.
0
Василий Василий 8 лет назад #
да уж, тоже этот вопрос мучает, необходимо добавлять объявления гостям, чтоб без регистрации... решение случайно не нашли??
0
Скела Скела 8 лет назад #
Время идет - тема стоит. Безопасный метод изобретен? Или может в обновлении будет решение?
0
Василий Василий 8 лет назад #
тоже интересно, появилось ли решение
0
Capitan Capitan 7 лет назад #
пока тема мертва и решения нет :(
0
Олег с клещами Олег с клещами 5 лет назад #
Срочно нужно решение!!
+1
SmartControl SmartControl 5 лет назад #
Гостевые публикации в каталоге

Без правок системных файлов, все реализовано отдельным компонентом.
0
Zau4man Zau4man 5 лет назад #
Доработать бы.
- Расширить базовое "уведомление отправлено модератору" на более понятное.
- Что-то выводить при "сохранении в черновики" или скрыть эту кнопку от гостя.
0
SmartControl SmartControl 5 лет назад #
Это нельзя доработать - там уже вносить изменения в шаблон. Все что можно было вынести в компонент - я вынес. Дальше либо хаками, либо правками шаблона. Могу лишь добавить инструкцию какие строчки поправить.
0
Василич Василич 5 лет назад #
Попытка добавить изображение:
+1
SmartControl SmartControl 5 лет назад #
Да, похоже совсем без вмешательство в код не получится (если нужно дать права на загрузку иллюстраций). Загрузка иллюстраций неавторизованными пользователями сразу возвращает ошибку.

У себя на демо я поправил, добавлю в описание в каталоге.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.