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


Права доступа клиентам


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

#1 aolin

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

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

Отправлено 28 Февраль 2014 - 16:49

Есть таблица счета (стандартная) там есть поле На кого (на кого из контрагентов выписан счет)
Нужно сделать чтобы контрагент заходя по своей учетной записи - видел только свои счета.
Через расширенные права доступа - смысла делать нет, т.к. клиенты используют запись только для просмотра, не внося никаких изменений.
С одной стороны клиент выступает в роли пользователя - а отфильтровать его записи надо по полю "на кого" (где он - контрагент).
Пробовал с помощью фильтра - не получилась.
Хотя мысль была написать фильтр по полю "На кого" = {текущий} (по аналогии с пользователем) но в результате
клиент не видит ни одной записи. Через фильтр быстрее всего, но не могу правильно условие написать ...

X
Как реализовать задумку?

Сообщение отредактировал aolin: 28 Февраль 2014 - 17:36


#2 CbCoder

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

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

Отправлено 28 Февраль 2014 - 17:43

Шаблон "{текущий}" выдает исключительно id текущего пользователя и потому имеет смысл только в полях с типом "пользователь". Непонятно, каким образом вы надеялись использовать его в поле связи с контрагентом. Ясное дело, что это не сработает никак, тут придется применить более сложный подход.

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

#3 aolin

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

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

Отправлено 28 Февраль 2014 - 17:59

Да, все получилось. Спасибо.
Для остальных.

1. Добавляем доп.поле в таблицу Счета, вешаем на него вычисление на отображение(ну или куда еще по обстоятельствам)
$line['id_kg'] = $line['На кого']['Пользователь'];
2. Добавляем фильтр 'id_kg'={текущий}
По этому фильтру выставляем права доступа и ВУАЛЯ.
Клиент заходит и видит ТОЛЬКО СВОИ СЧЕТА.

#4 aolin

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

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

Отправлено 28 Февраль 2014 - 18:17

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

#5 CbCoder

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

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

Отправлено 01 Март 2014 - 11:51

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





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

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