Cotonti / Open Source PHP Content Management FrameworkContent Management Framework

Foren / National / Russian / Модули и плагины / Плагин, ограничивающий доступ к старницам

Oughtem
#1 2. November 2016, 14:33

Есть ли плагин, с помощью которого можно тем или иным группам юзеров дать доступ к странице на сайте?

CrazyFreeMan
#2 2. November 2016, 18:05
Чем встроенный механизм прав не подходит?
Oughtem
#3 3. November 2016, 14:36

встроенный механизм прав? вы имеете ввиду права, которые можно выставить для категорий? Для страницы я не вижу такого механизма.

Macik
#4 5. November 2016, 02:26

А каков реальный сценарий использования?  

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Oughtem
#5 5. November 2016, 15:10

Есть локальный сайт компании. Есть сотрудники из разных отделов. Есть Бизнее-процесс - документ, опысывающий взаимодействие отделов и порядок работы на предпритии, т.е. кому, что и когда делать. У него есть разделы, например "ПОРЯДОК РАБОТЫ ОТДЕЛА ЗАКУПОК" - это раздел на сайте. В нём есть страницы. К этим страницам надо дать доступ всем менеджерам по закупкам, Начальнику отдела финансов, Начальнику отдела продаж, Начальнику склада. Такие сотрудники как сборщик на складе, менеджер по продажам, офис-менеджер и прочие не должны иметь к нему доступ.

CrazyFreeMan
#6 5. November 2016, 16:32

Так установите доступ для категории в которой страница, или так же не подходит? 

Macik
#7 5. November 2016, 22:18

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

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Oughtem
#8 7. November 2016, 12:46

вы не совсем поняли. Конкретно:

ПОРЯДОК РАБОТЫ СКЛАДА - это раздел, на который можно проставить свои права, но оно не очень то и нужно.

  1. Общие положения - это страница, к которой должны иметь доступ такие группы юзеров: Сборщик, Приёмщик, Проверяющий, Логист, Маркировщик, Начальник склада
  2. Начальник склада - это страница, к которой должны иметь доступ такие группы юзеров: Сборщик, Приёмщик, Проверяющий, Логист, Маркировщик, Начальник склада
  3. Приёмка товара - это страница, к которой должны иметь доступ такие группы юзеров: Приёмщик, Логист, Маркировщик, Начальник склада
  4. Порядок работы службы складской логистики - это страница, к которой должны иметь доступ такие группы юзеров: Логист, Маркировщик, Начальник склада
  5. ...

Мне надо дать разграничение прав именно по страницам. Сделать внутри группы "ПОРЯДОК РАБОТЫ СКЛАДА" ещё подгруппу и накидать туда нужные страницы я не могу, т.к. эти страницы должны будут входить и в другие созданные подгруппы.

CrazyFreeMan
#9 7. November 2016, 13:03

на хуке page.main обработчик  и проверять доступ для группы

Oughtem
#10 7. November 2016, 14:00
#42300 CrazyFreeMan:

на хуке page.main обработчик  и проверять доступ для группы

CrazyFreeMan, спасибо. Я не программист, поставить программное решение и настроить его могу, но поработать с хуком не могу. Можете объяснить что конкретно надо сделать?

Denisbox
#11 7. November 2016, 19:59
#42299 Oughtem:

вы не совсем поняли. Конкретно:

ПОРЯДОК РАБОТЫ СКЛАДА - это раздел, на который можно проставить свои права, но оно не очень то и нужно.

  1. Общие положения - это страница, к которой должны иметь доступ такие группы юзеров: Сборщик, Приёмщик, Проверяющий, Логист, Маркировщик, Начальник склада
  2. Начальник склада - это страница, к которой должны иметь доступ такие группы юзеров: Сборщик, Приёмщик, Проверяющий, Логист, Маркировщик, Начальник склада
  3. Приёмка товара - это страница, к которой должны иметь доступ такие группы юзеров: Приёмщик, Логист, Маркировщик, Начальник склада
  4. Порядок работы службы складской логистики - это страница, к которой должны иметь доступ такие группы юзеров: Логист, Маркировщик, Начальник склада
  5. ...

Мне надо дать разграничение прав именно по страницам. Сделать внутри группы "ПОРЯДОК РАБОТЫ СКЛАДА" ещё подгруппу и накидать туда нужные страницы я не могу, т.к. эти страницы должны будут входить и в другие созданные подгруппы.

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

Вот примерно так:

<!-- IF {PHP.usr.maingrp} == 5 -->
<ul>
<li><a href="#">aaa</a></li>
<li><a href="#">bbb</a></li>
<li><a href="#">ccc</a></li>
</ul>
<!-- ENDIF -->

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

contact: fonts (at) otlab . ru
CrazyFreeMan
#12 8. November 2016, 20:55

К примеру в модуле Users создать файл users.page.main.php в котором забить масивы  с параметрами

$arr[4] = array(1,2,3);
$arr[5] = array(5,6,7);​

Где 4 и 5 это ИД груп пользователей а 1,2,3,5,6,7 это ИД страниц к которым есть доступ для конкретной группы, проверять in_array()

if(!in_array($id,$arr[$usr['user_maingrp']])){
    cot_block();
}

Имхо простой и рабочий вариант и относительно не сложно добавить доступы 

Oughtem
#13 10. November 2016, 16:54

CrazyFreeMan, вы могли бы мне за деньги оформить это решение? Для меня "проверять in_array()" - это вопрос где и как его проверять)

Мои контакты: support@opt-k.com, +380933041843 Максим