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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Adrenalin
Отправлено: 02 Октября, 2018 - 22:32:58
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Магазин на базе 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, ну или показываем всем пока кто то не кликнул на кнопку взял заказ например он исчезает из входящего пула и становиться доступен только ответственному человеку. Вообще такая система реализована в битриксе, как бы логически продумать ее у себя, там очень гибко можно правила настраивать. Есть по сути только менеджеры и доступ к сущностям как бы стандартная система уровня доступов.

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

Спасибо за помощь!
 
 Top
andrewkard
Отправлено: 04 Октября, 2018 - 15:29:27
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Связь многие ко многим

relations

id user_id country_id

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


И в этом методе реализовать выборку из этой таблицы, если запись есть, значит есть доступ
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB