Перейти к содержимому


Условия в правилах для группы доступа

правила доступ

Сообщений в теме: 8

#1 BorisGlobal

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Отправлено 30 Сентябрь 2015 - 10:21

Задача: в организации 3 филиала. Соответственно в каждом есть менеджеры и НОП. Как сделать так чтоб НОП первого филиала видел записи свои и только своих менеджеров? Второй - соотв только своих менеджеров. Задача упрощается если есть какой-то механизм вручную на php формировать условия в правилах???

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Сентябрь 2015 - 11:08

Для трех филиалов в принципе можно сделать 3 отдельных правила, т.е. обойтись без вычислений.

#3 BorisGlobal

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Отправлено 30 Сентябрь 2015 - 11:59

Т.е. не совсем понимаю???? У меня есть: Иванов - НОП Ростов, Сидоров - мен Ростов, Петров - НОП Сочи, Серёгин - мен Сочи.... Плюс в последствии менеджеры могут добавляться в подразделении..
Мен нужно в условии для каждой таблицы писать если "Кто добавил" = Иванов или "Кто добавил" = Петров, чтоб сделать правило для Ростова?
И если в Ростов поступит Харитонов, то для каждой таблицы дописывать правила?

#4 BorisGlobal

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Отправлено 30 Сентябрь 2015 - 12:01

удобно было бы в пользователе добавить поле "Подразделение", а в условии указать что-то вроде "Кто добавил".Подразделение = Ростов. Что-т в этом роде можно реализовать?

#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Сентябрь 2015 - 13:09

Для менеджеров достаточно универсального правила "Менеджер равно текущий", раз они видят только свои записи. Речь шла о начальниках, если их всего 3 (по одному на филиал), то достаточно и персонального правила для каждого "Подразделение равно такому-то". Я именно так понял слово "НОП" (а вы не расшифровали, что это значит). Естественно, в этом случае в каждой таблице должно быть поле Подразделение, которое может заполняться автоматически вычислением, исходя из того, какой Менеджер добавил запись (для чего необходимо указывать подразделение каждого менеджера в таблице сотрудников).

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Сентябрь 2015 - 13:20

Цитата

удобно было бы в пользователе добавить поле "Подразделение", а в условии указать что-то вроде "Кто добавил".Подразделение = Ростов. Что-т в этом роде можно реализовать?

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

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

#7 BorisGlobal

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Отправлено 30 Сентябрь 2015 - 13:29

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

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Сентябрь 2015 - 14:23

Вы можете добавить предложение по доработке через программу (страница "Связь с разработчиком").

#9 Александр Пономарев

    Активный участник

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 30 Сентябрь 2015 - 20:38

Сделайте три поля типа "Пользователь" в таблице. Сделайте в них автозаполнение по содержанию аналогичных полей в таблице подразделения. В таблице подразделения в этих полях укажите пользователей, соответствующих начальнику, менеджеру, НОП. Если их несколько, сделайте поле множественным и тут и в нужной для разграничения таблице. Создайте фильтр видимости по условию
если Пользователь 1 равен текущему (или содержит текущего пользователя) или Пользователь 2 равен текущему (или содержит текущего пользователя) или Пользователь 3 равен текущему (или содержит текущего пользователя) выводить запись - и вуаля! При создании новой записи вы указываете подразделение, а коды доступа подтягиваются по ссылкам. Если будете обновлять ссылки при показе, это немного нагрузит систему, но будет поддерживать в актуальном состоянии и будет работать при смене менеджеров. Но лучше сделать условие "при сохранении" и кнопку пересчета или расчет при изменениия соответствующего поля в таблице подразделений. Там надо будет просто сделать перебор по таблице с заменой содержимого в полях пользователей на новые значения. Несколько сумбурно объяснил, наверно. Но у меня работает такой алгоритм.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных