Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Управление юзерами в системе со многими ролями
Michael  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 6065
Пользователь №: 18498
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 256




Привет.
Есть стандартный набор:
"разрешения", это кирпичики системы прав, например "Управлять комментариями".
"роли", ролям отмечается какие разрешения им позволены(галками в админке). Эти роли могут добавляться динамично из админки.
"пользователь". А пользователям уже присваиваются роли(сколько угодно) и так определяется кто что может.
Сделано это поверх RBAC у Yii2.

Вот теперь думаю как получше организовать систему управления одними пользователями других.
Чтобы поболее покрывало реальные юзер кейсы.
Изменяемая информация на каждого пользователя тут: базовая инфа(*), такая как ник, пароль + его роли(**)

Можно, например, выделить такие права:
п1) назначать пользователям роли
п2) управление пользователями
п3) и для каждой роли создать по праву:
- управлять пользователями с Данной ролью X.

Workflow получится такое:
1) главный админ заходит на редактирование/удаление любого пользователя, тут без ограничений
2) Юзер без админских прав заходит только на страницу своего профиля и может редактировать свою базовую инфу (см.*)
2) Некий модератор(юзер с админскими правами) заходит:
2.а) на свой профиль, тоже видит только свою базовую инфу(*). Роли сам себе не может назначать.
2.б) заходит на чужой профиль.
И тут такая проверка:
Есть право п2) ?
Если да, то проверка по всем ролям редактируемого пользователя, чтобы у данного модератора
были права п3) на редактирование каждой его роли
Если и тут окей, то
- Показываем Базовую инфу(*) к редактированию
- Если есть право п1) то и можем установить роли, список которых также берется из п3)

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


--------------------
There never was a struggle in the soul of a good man that was not hard
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5491
Пользователь №: 35718
На форуме: 4 года, 14 дней
Карма: 167




Michael, линуксовая иерархия прав вроде же и выдумывать ничего не надо


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22689
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 27 дней
Карма: 599




Michael
Цитата
1) главный админ заходит на редактирование/удаление любого пользователя, тут без ограничений

Никаких удалений из Базы Данных. Только перемещаем в удалённую таблицу или помечаем как удалённый.

А в целом, мне кажется, что эта схема лишь самое простое из данной задачи и проблем не увидел. Вот Valick пишет про Юниксовую систему, *всем доступно*, *доступно ролям*, *доступно владельцу*. Всем мы в коде не пишем, владельцу if(я == мои_данные), в итого остаются *группы*, они же *роли*. Ты же тоже самое и написал, собственно.


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Michael  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 6065
Пользователь №: 18498
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 256




К этой системе просто у меня есть требования:
- она должна иметь дружественный пользователю интерфейс. Это часть ядра cmf.
- должна покрыть как можно больше реальных типичных ситуаций, чтобы при уже специфичных хотелках предметной области, эти хотелки вписались в эту систему, без хакания ядра.

Смотрел в друпале 7, но там сильно просто - есть право "Управлять пользователями", у кого оно есть тот может забанить хоть админа. А назначение ролей там захардкодено главному админу.


--------------------
There never was a struggle in the soul of a good man that was not hard
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Michael  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 6065
Пользователь №: 18498
На форуме: 7 лет, 4 месяца, 7 дней
Карма: 256




Ну и если по аналогии с линуксовой системой , то какие разрешения надо определить в БД ?


--------------------
There never was a struggle in the soul of a good man that was not hard
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса