Распределённый доступ к записям типов контента

InstantCMS 2.X
#1 28 октября 2022 в 14:49

Всем привет, использую движок Инстант в качестве ведения части производства.

Задача:

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

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

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

То есть админ видит всё в одной куче, а другие группы видят только свои записи и те, которые для них создал АДМИН

На первый взгляд просто, но чё-то у меня не получается, долго не сидел правда, но че-то с первого раза прям вот не получилось.

Вкратце порядок действий какой бы вы сделали?

#2 28 октября 2022 в 16:40

Вкратце порядок действий какой бы вы сделали?

IceBreaker

Я бы для себя написал компонент по разграничению доступов. Но в вашем случае достаточно создать поле типа «Список»  с названиями групп и их идентификаторами. И потом писать два хука, один для фильтрации в списке, другой для просмотра записи. В которых проверять эти записи на доступность группам пользователей. Это сработает при условии, что одну запись может видеть только одна группа пользователей и администратор. Если надо одну запись показывать нескольким группам, то тут уже надо создавать таблицу в базе данных и писать полноценный компонент. Как-то так это выглядит вкратце ))

#3 30 октября 2022 в 16:52

Вкратце порядок действий какой бы вы сделали?

IceBreaker

Я бы для себя написал компонент по разграничению доступов. Но в вашем случае достаточно создать поле типа «Список»  с названиями групп и их идентификаторами. И потом писать два хука, один для фильтрации в списке, другой для просмотра записи. В которых проверять эти записи на доступность группам пользователей. Это сработает при условии, что одну запись может видеть только одна группа пользователей и администратор. Если надо одну запись показывать нескольким группам, то тут уже надо создавать таблицу в базе данных и писать полноценный компонент. Как-то так это выглядит вкратце ))

Loadырь

Здравствуйте, я бы всё-таки если бы мог написал бы тоже :)) А вы можете оценить свою работу? Мне кажется полезная разработочка получится, правда наверное когда-то такая вещь должна бы конечно в коробку попасть. 

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

Там еще много затей, решил по частям делать, потому как полностью разработку мне самому описать сложно, да и разработчики вникать не хотят в сложный продукт, туда бы кстати ваш КАЛЬКУЛЯТОР еще вставить, там есть правда глючки, надо будет как-нибудь вам показать ( и как я когда-то писал, сделать бы его с константами вводимыми  и прочим, я готов)

Добавлено спустя 7 минут

Вкратце порядок действий какой бы вы сделали?

IceBreaker

Я бы для себя написал компонент по разграничению доступов. Но в вашем случае достаточно создать поле типа «Список»  с названиями групп и их идентификаторами. И потом писать два хука, один для фильтрации в списке, другой для просмотра записи. В которых проверять эти записи на доступность группам пользователей. Это сработает при условии, что одну запись может видеть только одна группа пользователей и администратор. Если надо одну запись показывать нескольким группам, то тут уже надо создавать таблицу в базе данных и писать полноценный компонент. Как-то так это выглядит вкратце ))

Loadырь

Кстати с кем-то обсуждал, но дело так и не дошло, нужен компонентец, который при смене значения какого-то поля (например «готовность заказа») отправлял уведомление или внутренним сообщением на сайте или прямым сообщением на почту пользователю, который создал заказ или которого указали в качестве заказчика при создании заказа) 

Такая фишешчка маленькая еще

Пригодится может вообще во многих случаях, когда, например кто-то отредактировал какое-то поле в каком-то типе контента, хозяину придёт уведомление, «тот-то тот-то испоганил ваш пост от 21.09.2002 года своими правками в поле таком-то), возможно было бы прикольно указывать за какими полями следит система.

#4 30 октября 2022 в 19:28

А вы можете оценить свою работу?

IceBreaker

Конечно могу. Для себя я всегда всё делаю бесплатно, вот только сроки всегда прогорают )).

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

IceBreaker

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

#5 30 октября 2022 в 21:06

А вы можете оценить свою работу?

IceBreaker

Конечно могу. Для себя я всегда всё делаю бесплатно, вот только сроки всегда прогорают )).

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

IceBreaker

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

Loadырь

Мне кажется из магазина это будет сложнее, сейчас опишу вообще прынцып:

Есть производство (маленькое, но всемогущее), работает буквально 5 человек, но номенклатура большая, есть резка стекла, есть покраска (и стекла тоже), есть ЧПУ станок, есть столярные станки, теперь еще мебельный цех есть и там тоже заказы свои отдельные. 

Также есть заказчики, есть прямые, есть перекупы, есть совместные с перекупами и прочее. на каждом участке, есть монитор с открытым сайтом на странице с заказами, работники видят что нужно делать и в какой последовательности AtlantisWeb мне сделал сервис с задачами, но там какбы всё зашито в программе и ничего нельзя регулировать, сложно с полями новыми и прочим (я не обвиняю, просто наверное дал слабое ТЗ, в надежде, что регулировка (добавление полей, их отображение, смена порядка и прочее — само собой разумеющееся), поэтому пока не использую.

Так вот в связи с таким обезьянником, надо всё упорядочивать, с одним перекупом сейчас просто на типах контента здорово получается, он создаёт заказ, мы его оцениваем, выполняем, ставим отметку, что готово и заказ попадает в виджет «Готовые» с фильтром по полю готовность — готовые.

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

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

Я говорю прикиньте по денежке что-бы стоило всё это дело

#6 31 октября 2022 в 09:13

А если такой вариант:

Создать несколько типов контента (ТК) с почти одинаковым набором полей. В первом собирать все заказы. Далее оперуполномоченный берет заказ, проверяет его, дополняет нужной инфой, типа цена и прочие и переносит его в другой ТК, который привязан к определенному участку (стекла, покраска, мебель и т.п.). И этот ТК доступен только админам и тем кто работает на этом участке. Соотвественно, часть полей может быть скрыта стандартными правами доступа для групп. Когда заказ готов, то запись переносится в третий тип контента или просто скрывается из общего списка фильтрацией в наборе.

#7 31 октября 2022 в 13:51

 Loadырь, Идею надо проверить, я честно говоря еще никода не переносил из одного ТК записи в другой ТК средствами системы, вы имеете ввиду написать небольшую програмку или средствами системы это возможно?

#8 31 октября 2022 в 14:13

В стандартных средствах переноса записей нет. У меня есть компонент, который может копировать и переносить записи типов контента. Просто подумайте над этим вариантом, может он вам зайдет как с одним из заказчиков.

#9 11 ноября 2022 в 20:29

В стандартных средствах переноса записей нет. У меня есть компонент, который может копировать и переносить записи типов контента. Просто подумайте над этим вариантом, может он вам зайдет как с одним из заказчиков.

Loadырь

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

Если есть время, желание, потребность в денежных знаках, озвучивайте покумекаем :)) И калькулятор надо добить, он классный очень, есть косячки, связанные с условиями, но в целом он работает

#10 12 ноября 2022 в 12:46

И калькулятор надо добить

IceBreaker

Так вы бы собрались с духом, да напечатали список багов и хотелок по калькулятору. Баги у меня исправляются бесплатно, что-то из хотелок тоже могу сделать бесплатно, особенно то, что привнесет в компонент пользу не только вам, но и другим. Что касается доступов к записям для определенных групп, то можно сделать некоторым компонентом, в котором хранить инфу о привязке записей к группам и обрабатывать запросы к базе данных, но это в двух словах не объяснить. Так что «велкам» в личку с багами и предложениями. Единственное, у меня сейчас назревает проект по мультишопу, поэтому могу с «решением» для вас немного затянуть.

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