Сначала можно посмотреть лекции Крокфорда (хотя бы вторую).
Потом можно почитать Eloquent JavaScript (может как базовую книгу кто-то посоветует другую)
Потом пройти туториал Резига
Потом досмотреть все лекции Крокфорда.
А дальше можно пересмотреть все оставшиеся ссылки из статьи (wtfjs, js patterns...)
Не поспоришь. Но это был совсем хардкор и экзотика. Никогда до NodeJS не видел вакансии серверный JavaScript разработчик. А сейчас регулярно вижу. Технология ожила, ей действительно пользуются
По сути одно и то же. Но я использовал два термина, чтобы подчеркнуть разницу в подходах.
Следующая тонкость — в моем описании есть небольшая подмена понятий. Группа (которая отражает принадлежность к иерархической структуре в реальном мире) и группа (роль) в системе разделения прав не всегда одно и тоже. Специально оставил, так как сам наступал на эти грабли (думаю, не я один). Нужно разделить понятия группа и роль. Тогда можно будет сделать соотношение между ролями и пользователями многие ко многим.
Все просто если отделить бизнес логику от ACL. Назначение модератора в раздел это бизнес логика. Объясню на примере:
Пользователь является автором поста не потому, что он может редактировать пост, а потому что он написал этот пост и при создании поста система записала в базу текст поста и текущего пользователя как автора.
Эта информация может использоваться для разделения прав, а может и не использоваться. Может использоваться для получения списка всех постов данного пользователя.
Если на ситуацию смотреть под таким ракурсом, то любая задача решается. Была бы соответствующая бизнес логика, а навернуть сверху разделение прав всегда можно.
Вот если модератор — надо в лог записать, что модератор совершил действие.
Тут надо различать два действия: редактирование автором и редактирование модератором.
За ними стоит разная бизнес логика:
— при редактировании автором запись происходит только в таблицу с постами
— при редактировании модератором запись происходит в таблицу с постами и в таблицу с логами (в таблицу, если их потом надо просматривать конечному пользователю)
потому что универсальные, позволяют решить задачу в общем виде
Базовый интерфейс (а именно функция can) тоже может решить задачу в общем виде.
У меня нет опыта использования Yii (поправляйте, если что-то неправильно понял). Вот, что я понял из документации:
— нельзя назначить много ролей юзеру (вместо этого предлагают использовать наследование ролей)
— нет готового решения для задачи с атрибутами ресурсов
Что значит не стабилен? О какой именно не стабильности вы говорите?
Я думал, что в этом они одинаковые так как используют одни и те же веб-технологии (html, css, js). Или я что-то не понимаю?
Можете подробней объяснить, что вы хотели сказать?
Потом можно почитать Eloquent JavaScript (может как базовую книгу кто-то посоветует другую)
Потом пройти туториал Резига
Потом досмотреть все лекции Крокфорда.
А дальше можно пересмотреть все оставшиеся ссылки из статьи (wtfjs, js patterns...)
Выбирайте здесь или здесь (вот эта ссылка есть в посте)
А Джава (если верить русской википедии) — это поселок в Осетии ))
Иностранцы, ее произносят как Джава. Но я думаю, что это дело вкуса. Поэтому исправил на JavaScript.
allow('guest', 'read', 'posts[not_only_for_moderators]')
Админам можно все
allow('admin', 'all', 'all')
allow('members', 'read', 'posts[not_only_for_moderators,not_fitst_month]') allow('members', [read, 'post'], 'posts[not_only_for_moderators,fitst_month]')
allow('moderators', 'all', 'posts[where_moderator]') allow('moderators', ['read', 'post'], 'posts[only_for_moderators]')
Все просто если отделить бизнес логику от ACL. Назначение модератора в раздел это бизнес логика. Объясню на примере:
Пользователь является автором поста не потому, что он может редактировать пост, а потому что он написал этот пост и при создании поста система записала в базу текст поста и текущего пользователя как автора.
Эта информация может использоваться для разделения прав, а может и не использоваться. Может использоваться для получения списка всех постов данного пользователя.
Если на ситуацию смотреть под таким ракурсом, то любая задача решается. Была бы соответствующая бизнес логика, а навернуть сверху разделение прав всегда можно.
Тут надо различать два действия: редактирование автором и редактирование модератором.
За ними стоит разная бизнес логика:
— при редактировании автором запись происходит только в таблицу с постами
— при редактировании модератором запись происходит в таблицу с постами и в таблицу с логами (в таблицу, если их потом надо просматривать конечному пользователю)
Базовый интерфейс (а именно функция can) тоже может решить задачу в общем виде.
— нельзя назначить много ролей юзеру (вместо этого предлагают использовать наследование ролей)
— нет готового решения для задачи с атрибутами ресурсов