Lee
Заблокированному доступ во все разделы закрыт, по-сути
К примеру заблокированному за неуплату аккаунту катастрофически необходим доступ к разделу оплаты и биллинга. Но в этот раздел гость попасть не может.
Lee
Так что в этой ситуации либо делать статус "блокед" и вешать сопли в коде. Либо сделать нормально через роль.
Lee
А в каком варианте — неправильно делать роль?
Сергей
Но в большинстве случаев у пользователя либо есть либо нет доступа))
Lee
А-ля в index.php сделать: if($user->is_blocked){ die('Заблокирован'); } Так что ли?
Lee
Тут от отношения к коду зависит.
Сергей
А-ля в index.php сделать: if($user->is_blocked){ die('Заблокирован'); } Так что ли?
Зачем? Я ещё в identity ищу по активным пользователям
Сергей
То есть заблокированный - даже не залогиниться
Lee
Ну тем более. А как он поймёт? Флеш-сообщение и форма входа?
Сергей
Если нужно заблоированнму догиниться и что-то делать - то роль. А если надо закрыть доступ - то статус. Так считаю
Lee
Какой смысл так ограничивать пользователя? Если с ролью меньше париться придётся, и это грамотнее.
Сергей
Как раз с ролью сложнее
Сергей
Есть 5 разделов, на каждый по роли, а если есть роль заблокированный - то надо запрещать доступ, даже если другая роль разрешает
Lee
Тогда логично делать роли доступа по разделам и назначать их если такие дела
Раздел — это экшн. Группировать экшны по ролям + наследовать роли. Разве это не самый простой и логичный способ?
Lee
Просто переназначить роль с User на Disabled и всё.
Сергей
Ну если у человека только одна роль может быть - то можно загнался конечно
Сергей
Прост всегда делал, что у человека несколько ролей может быть
Lee
Например?
Alexey
пермишном же это делается с бизрулом
Сергей
Ну есть редактор блога и редактор каталога, а есть тот, кто может и в каталоге и в блоге редактировать
Alexey
че загоняться-то :D
Сергей
Так это уже третья роль.
Когда разделов много - нет смысла делать кучу сочетаний ролей. Проще несколько ролей дать)
Alexey
делаешь базовую роль user, к ней цепляешь пермишн ACCESS_PAID_CONTENT, в руле проверяешь например
Lee
То есть, смысл нанимать людей с разными обязанностями — есть, а роли под них писать — нет?)
Lee
При том, для того чтобы сделать новую роль потратишь 10 кб памяти.
Сергей
Вот сидит 10 менеджеров по продажам. А один из них пишет в блог ещё. Мне для него новую должность и роль вводить? :)
Alexey
технически нет разницы между ролью и пермишном в иишном рбаке
Alexey
так что да, можно роль blog author сделать 😉
Сергей
Технически - понятно. А логически - нет :)
Сергей
Роль "Менеджер по продажам, пишущий в блог" очень странно выглядит
Lee
Вот сидит 10 менеджеров по продажам. А один из них пишет в блог ещё. Мне для него новую должность и роль вводить? :)
Вот человек работает на заводе крановщиком. А после работы таксует. Это две абсолютно разные роли. Смотря логически — это разделяется либо разными аккаунтами, либо совмещением ролей. Потому как это несмежные вещи. А в случае с редакторами в разных разделах — логичнее создавать роль по типу "глав. редактора". Ведь продукт — это система, и требует системного подхода.
Lee
Андрюх, привет.
Andreyyy
сорри) не сочтите за спам)) просто в тему)) https://hh.ru/vacancy/19584368
Сергей
Ну пример с блогом - есть роли менеджер по продажам, руководитель по продажам, директор, швея и руководитель швей. А ещё некоторые пишут в блог. То есть будут основные роли и дополнительные.
Lee
Окей. У кого из них статус "заблокирован"? :)
Сергей
У тех, кого уволили))))
Андрей
у директора
Lee
Так-то да, ставишь роль "manager", и ещё сверху роль "writer". А вообще, человек с таким количеством свободного времени должен получать больше нагрузки, а не выполнять чужую работу :)
Сергей
Может быть он просто эффективен )))
Lee
В этом и суть.
Andreyyy
Andreyyy
или это не мне)
Lee
Сайт — это инструмент оказывающий услугу.
Lee
Так что эти понятия тождественны в данном контексте.
Al
значит плохая архитектура прав
Al
раз не может даже зайти оплатить в лк к себе на сайт
Al
если блокировать за неуплату статусом в пользователе, чтобы даже не залогиниться. Выше было
Al
RBAC по идее должен только расширять права, а не ограничивать
Al
я бы очень огорчился если бы мне пришлось идти в банк оплачивать или в терминалах залипать. вместо того, чтобы на сайте продлить услугу.
Anonymous
RBAC по идее должен только расширять права, а не ограничивать
По идеи рбак это основанная на ролях система управления доступом.
Anonymous
Что мешает создать роль unpaid или banned, у которой не будет никаких прав на доступ, решительно не ясно
Al
и что в каждом контроллере проверять ?
Al
ударение на слово ЧТО
Al
да я знаю рбак
Сергей
Да это решается бизнес-правилом
Al
имхо, это решается нормально расписанными услугами доступными пользователю
Al
не в рбаке
Сергей
имхо, это решается нормально расписанными услугами доступными пользователю
Так услуга доступна пользователю, если есть деньги на балансе например. Это правило. А отдельная роль ни к чему
Al
ну я про роль и не говорю, но вам правило придется везде это тянуть
Сергей
Так правило будет в рбак привязано к нужным правам
Al
одно дело если доступ закрываем например за спам, взлом итд - тут конечно статусом в самом юзере, а услугу блочить - это статус услуги в таблице Услуги..
Al
а что если будет еще несколько услуг, и надо будет отдельно каждую контролить, поля в таблицу добавлять?)
Сергей
Зачем?
Al
или правила под каждое?
Сергей
Зависит от задачи
Lee
Чёто вы херню какую-то обсуждаете.
Сергей
Я слабо обнимаю