Pull to refresh

Comments 19

Что сложного может быть с ACL?

И, кстати, представьте, что проект начал развиваться и понадобилось сделать привязку юзера к нескольким группам, а то и сделать права только для одного юзера. Сколько вы кода будете переписывать? Зачем делать *такие* велосипеды?
Да, согласен. Указывать имена пользователей не так уж сложно, хотя если у Вас там армия модераторов, но для таких проектов эдакое пятиминутное решение не подойдёт — надо более изысканно.
А так, может пригодится…
Зачем использовать с самого начала значительно более слабое решение? Оно быстрее в реализации? Есть какие-то ограничения со стороны хостинга? Еще какие-то причины?
Его быстрее реализовать, оно быстрее работает (как минимум на количество запросов к ACL).
И да, иногда достаточно разделения по группам и действиям.

Опять таки, в определенных пределах решение расширяемо.
Насколько быстрее? На один час? Какой ценой встанет такая «экономия»? Стоит ли экономить миллисекунды тут?

Иногда? Вы уверены, что сможете на 100% спрогнозировать, что в вашем проекте этого будет достаточно?

Вы знаете, я уверен что разработчики Битрикса думали также. Теперь в популярной коммерческой CMS нельзя ограничить доступ к отдельным разделам каталога. Это нормально?!

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

> Не так много как может показаться, буквально одну функцию isAuthorized, ну и почистить лишнюю переменную permissions которая перестанет быть нужной.
Да? А проверки прав добавлять не нужно будет? А новые модели данных?
> Иногда? Вы уверены, что сможете на 100% спрогнозировать, что в вашем проекте этого будет достаточно?
Я уверен, что я легко смогу это изменить если мне потребуется.

> Вы знаете, я уверен что разработчики Битрикса думали также. Теперь в популярной коммерческой CMS нельзя ограничить доступ к отдельным разделам каталога. Это нормально?!
А вы в своих проектах предусматриваете всё? А кофе он варит?

> Используя изначально слабый по набору функциональностей компонент, вы гарантируете, что при внесении новых фич, вам придется переписывать значительный кусок кода.
Покажите мне слабый компонент в данной связке.

> Да? А проверки прав добавлять не нужно будет? А новые модели данных?
Нет. Тоже самое с возможностью выдачи прав по пользователям делается еще легче и тем же компонентом.

Не так много как может показаться, буквально одну функцию isAuthorized, ну и почистить лишнюю переменную permissions которая перестанет быть нужной.
на самом деле было бы получше, если бы вы показали не «как это работает», а формальное описание предложенной вами схемы. Мне кажется, что так было бы понятнее
Я не совсем понял, что такое формальное описание предложенной схемы.
И что не понятно сейчас?
формальное описание — это «есть множество пользователей… есть множество прав… есть еще что-то там… пользователю разрешается доступ, если...», схемку бы какую-то.
Ну так нагляднее вообще-то, чем читать код, или то что вы написали в «как это работает», что по сути опять же есть описание кода.
В одной группе пользователей может быть много пользователей, но это очевидно из условий задачи.

Права мы в коде контроллера привязываем к названию группы пользователя (за что меня тут уже попинали).

Простите :( не понимаю как упростить дальше.
UFO just landed and posted this here
Велосипед, причем одноколесный, потому как нет такого, например, функционала:
— юзер может быть членом нескольких групп (ролей), разрешения определяются по сумме разрешений всех групп
— юзер — абстракция группы из одного члена, т.е. разрешения и запреты можно выдавать конкретному юзеру.
— юзеру или группе можно напрямую запретить, прямой запрет перекрывает соответствующие разрешения, если они есть

Безусловно в нем нет такого функционала, но если он потребуется поставьте настройку Auth в например actions и у вас все это появится, достаточно будет только сделать красивый интерфейс что бы реализовать раздачу прав по описанному функционалу.

Эта задача для тех случаев когда это всё не требуется, ну или не требуется на первоначальном этапе.
Да что вы на человека накинулись!?
Он лишь написал статью с примером реализации прав! СПАСИБО ему за это!
Вам не нравится?! НЕ ПОЛЬЗУЙТЕСЬ!
В чём проблема? Кому то для дом.страницы может приготится!
сколько можно писать ООП код на синтаксисе php4?
да еще и другим советовать решения на нём
class UsersController extends AppController {
 var $name = 'Users';
 function beforeFilter() {
  //...
 }
}
Чем докажите, что это не php5?
Sign up to leave a comment.

Articles

Change theme settings