Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Права доступа для опредленных записей в базе
Форумы портала PHP.SU » » Вопросы новичков » Права доступа для опредленных записей в базе

Страниц (1): [1]
 

1. Adrenalin - 02 Октября, 2018 - 22:32:58 - перейти к сообщению
Магазин на базе Laravel 5.4.
Есть заказы на две страны: 1 и 2.
Мне нужно чтоб менеджер из 1 страны видел только заказы для страны 1, соответственно 2 менеджер видел только заказы с страны 2.
Понятно что в базе можно сделать поле, с отношением ... еще можно сделать связующую таблицу.
А что если завтра появиться третья страна и мне надо будет менеджеру 1 предоставить доступ к записям страны 3, и новому менеджеру 3 предоставить доступ к стране 3.
Как можно гибко это реализовать? И самое главное понять!!! smile

я так понимаю что мы имеем юзеров
1 2 3 … X
и имеем группы, фактически юзеры не имеют доступов ни к чему, имеют только группы.
Те создаем таблицу groups, и при создании в ней записи группы скажем
1 - managaers Russia
2 - managers Ukraine
Создаем таблицу связывающую таблицу users и groups, называем ее connection
где будут перечисляться ID юзеров и соответственно ID группы в которую он имеет отношение. И так может 1 юзер у нас иметь отношение сразу в несколько групп.

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

Вот я примерно так вижу, может сильно запутанно?

-----------

еще как вариант сделать ответственного за конкретный заказ, согласно каким то критериям, например. Зашел заказ… мы создаем правило:
если заказ содержит russia то мы направляем рандомному то из отдела managers russia, ну или показываем всем пока кто то не кликнул на кнопку взял заказ например он исчезает из входящего пула и становиться доступен только ответственному человеку. Вообще такая система реализована в битриксе, как бы логически продумать ее у себя, там очень гибко можно правила настраивать. Есть по сути только менеджеры и доступ к сущностям как бы стандартная система уровня доступов.

Есть проще вариант?

Спасибо за помощь!
2. andrewkard - 04 Октября, 2018 - 15:29:27 - перейти к сообщению
Связь многие ко многим

relations

id user_id country_id

PHP:
скопировать код в буфер обмена
  1. If ($user->can('country', $country_id)){
  2. //Наш код
  3. }


И в этом методе реализовать выборку из этой таблицы, если запись есть, значит есть доступ

 

Powered by ExBB FM 1.0 RC1