Продублирую свой вопрос в этом разделе более подходящем по тематике...
Начало истории тут: viewtopic.php?f=19&t=42821
И выдача прав. Нормально ли всякий раз при идентификации пользователя в системе назначать права?
Аутентификация для всех поддоменов общая, но права при этом должны быть разные на различных поддоменах.
Прав будет очень много, они будут зависеть от субдомена (тоесть один и тот же пользователь на разных доменах иметь должен разные права)
Плюс к этому пользователи "владельцы доменов" должны иметь возможность выдавать разрешения для зарегистрированных у них на домене посетителей.
К примеру домены:
site.ru
one.site.ru
two.site.ru
three.site.ru
И соответственно пользователи One Two Three
(если пользователь владелец - может делать всё на домене, если подписан - может читать комменты к постам и оставлять посты их, если не подписан - комменты к постам не видит, на усмотрение Владельца домена подписанным пользователям могут быть выделены дополнительные права, к примеру возможность писать посты или удалять комментарии)
на one.site.ru One - владелец, Two-подписан (при этом может писать посты т.к. One ему выдал разрешение), Three - подписан но без дополнительных разрешений от One (может лишь читать и писать комменты)
В итоге хочу добавить Single Sign On и в итоге к примеру если
One авторизовался на сайте site.ru и подписан на домене three.site.ru
Two авторизовался допустим на two.site.ru но не подписан на three.site.ru
Guest - обычный гость нигде не авторизован и вобще с поиска попал на three.site.ru
Далее по сценарию должно быть так при входе на three.site.ru:
One видит меню пользователя и соответственно может делать всё что разрешено подписавшемуся + то что разрешил Владелец
Two видит кнопку подписаться и нажав её видит меню (так же как One)
Guest - Может зарегистрироваться или авторизоваться, при регистрации автоматически подписывается
Сам вопрос в том где и в какой момент наделять этих пользователей правами ...
Я пока думаю про момент идентификации .... И не знаю... запихнуть это к примеру в findIdentity()
Ну и по системе авторизации может кто подскажет как это красивее/правильнее сделать согласно данным условиям
Выдача прав при идентификации
Re: Выдача прав при идентификации
На лету права/роли ассоциируют обычно в самых простых случаях, по какому нибудь полю с ролью пользователя в таблице пользователей.
А у вас сложная система, со многими правами, и когда одни пользователи могут назначать права другим.
Плюс права у вас динамические, в зависимости от появления нового "поддомена" в систему должны добавляться права для него.
Все разрешения не как то "на лету", а как по умолчанию - в Assignments хранилище
Для всего этого надо выбирать тот rbac что сохраняет в базе, ,он все такое позволяет реализовать.
Re: Выдача прав при идентификации
У меня в любом случае будет таблица user_subscribe в которой можно будет сохранить роль к примеру будет user_id|domen_id|role
Думал про такую реализацию....
Вы предлагаете не переопределять Роль/право для пользователя к примеру moderate_comment (что мне и не нравилось) А сохранять в базу Роли/права для домена к примеру по формату domen_moderate_commentmaleks писал(а): ↑2017.04.25, 11:12 А у вас сложная система, со многими правами, и когда одни пользователи могут назначать права другим.
Плюс права у вас динамические, в зависимости от появления нового "поддомена" в систему должны добавляться права для него.
Все разрешения не как то "на лету", а как по умолчанию - в Assignments хранилище
Для всего этого надо выбирать тот rbac что сохраняет в базе, ,он все такое позволяет реализовать.
Минус при создании домена нового, а они будут постоянно добавляться. придется добавлять роли для для всех пользователей...
А если их 100000 это не малый такой инсерт будет....
Как вариант опять же добавлять даже дефолтную роль только когда пользователь заходит на данный момент. (потому что большинство из этих 100000 никогда и не узнают про какой либо домен)
Re: Выдача прав при идентификации
Зачем и какие роли для всех пользователей добавлять?
Думайте не ролями, думайте разрешениями.
Re: Выдача прав при идентификации
Я прекрасно понимаю про разрешения просто надоело писать "Роль/право" поэтому и сократил до роли. К тому же в данном случае для нового домена наверное всё же делать привязку на базе какой то дефолтной роли с подготовленным списком разрешений всё же удобнее будет...