Древовидный список пользователей
Добавлено: 07 июл 2023, 00:04
Доброго времени суток!
Возможно кто что подскажет Возникла необходимость сделать дерево пользователей в новом проекте.
Условие 1. Нужно, чтобы в дереве пользователь видел своего "создателя" и дерево под собой: кого он зарегал и кто-кого зарегал ниже.
Условие 2. Также пользователь не видит параллельных соседей, которых регает его "создатель". Что-то наподобие: директор, завуч, куратор, учитель, ученик. Или более понятно - млм структура.
Условие 3. Разрешить создание пользователя только под себя, т.е. грубо говоря, не добавлять подчиненным подчиненных.
Для теста создал 2 группы доступа: ур1 и ур2. Группе с ур1 запрещен доступ к сущности Пользователи. Группе с ур2 разрешено просматривать только назначенные и открыт доступ к созданию пользователей.
Создал пользователей: первый из админки, второй под себя одного и так несколько, чтобы прописалось у каждого пользователя создателя ([created_by]). Настроил древовидный список, добавил поле Вычисление с вложенными записями с количеством своих подчиненных.
Далее вопросы по скринам, которые я приложил:
Скрин 1. В админке вся получившаяся структура как надо выглядит. Единственное когда все друг друга зарегали, никакого дерева не получилось. Админ всех раскидал по веткам и все норм.
Скрин 2. Если войти под irina, то все отлично кроме того, что она видит пользователя ruslan, которого создал admin. Т.е. условие 1 работает, усл. 2 нет. Как сделать чтоб работало усл 2.? И я правильно понимаю, так получилось потому, что admin создал ее и ruslan, т.е. у них общий автор = просматривать только назначенные или это не так? Хотя дал юзеру ruslan ур2 и зашел под ним. В дереве пусто, а в таблице он только себя видит, т.е. норм.
Скрин 3. sasha в табличном списке отлично видит и себя и своего зареганного и его зареганного, но в древовидном списке не видит никого. Вопрос почему?
Как можно реализовать условие 3? В голову пока приходит только визуально скрыть кнопки + ниже по ступеням, но возможно есть вариант без костылей.
И последний вопрос: с помощью какого инструмента сделать автоматическое построение дерева? Т.е. нажал кнопку "Добавить пользователя", а он в дереве сразу сел под тебя. Например, на том же 3м скрине sasha зарегал gosha и тот упал в корень.
Заранее благодарен за ответы
Возможно кто что подскажет Возникла необходимость сделать дерево пользователей в новом проекте.
Условие 1. Нужно, чтобы в дереве пользователь видел своего "создателя" и дерево под собой: кого он зарегал и кто-кого зарегал ниже.
Условие 2. Также пользователь не видит параллельных соседей, которых регает его "создатель". Что-то наподобие: директор, завуч, куратор, учитель, ученик. Или более понятно - млм структура.
Условие 3. Разрешить создание пользователя только под себя, т.е. грубо говоря, не добавлять подчиненным подчиненных.
Для теста создал 2 группы доступа: ур1 и ур2. Группе с ур1 запрещен доступ к сущности Пользователи. Группе с ур2 разрешено просматривать только назначенные и открыт доступ к созданию пользователей.
Создал пользователей: первый из админки, второй под себя одного и так несколько, чтобы прописалось у каждого пользователя создателя ([created_by]). Настроил древовидный список, добавил поле Вычисление с вложенными записями с количеством своих подчиненных.
Далее вопросы по скринам, которые я приложил:
Скрин 1. В админке вся получившаяся структура как надо выглядит. Единственное когда все друг друга зарегали, никакого дерева не получилось. Админ всех раскидал по веткам и все норм.
Скрин 2. Если войти под irina, то все отлично кроме того, что она видит пользователя ruslan, которого создал admin. Т.е. условие 1 работает, усл. 2 нет. Как сделать чтоб работало усл 2.? И я правильно понимаю, так получилось потому, что admin создал ее и ruslan, т.е. у них общий автор = просматривать только назначенные или это не так? Хотя дал юзеру ruslan ур2 и зашел под ним. В дереве пусто, а в таблице он только себя видит, т.е. норм.
Скрин 3. sasha в табличном списке отлично видит и себя и своего зареганного и его зареганного, но в древовидном списке не видит никого. Вопрос почему?
Как можно реализовать условие 3? В голову пока приходит только визуально скрыть кнопки + ниже по ступеням, но возможно есть вариант без костылей.
И последний вопрос: с помощью какого инструмента сделать автоматическое построение дерева? Т.е. нажал кнопку "Добавить пользователя", а он в дереве сразу сел под тебя. Например, на том же 3м скрине sasha зарегал gosha и тот упал в корень.
Заранее благодарен за ответы