2015-03-22 1 views
0

Я работаю над социальным веб-приложением, и я действительно колеблюсь между использованием списков ACL или использованием моей собственной системы разрешений. Я работаю в течение нескольких дней с ACL, чтобы увидеть их поведение и савойи, что я мог и не мог сделать.CakePHP, ACL или нет?

В моем приложении участники могут устанавливать разрешения на то, что у них есть (профиль, фотоальбом и т. Д.). Мне также необходимо установить разрешения для модераторов, которые могут проверять содержимое профиля и фотоальбомы, но не имеют права на модификаторы или удаляются, однако администратор имеет права.

Для профиля, пользователь может решить, что делать, сделать общедоступным, только для пользователей или друзей. Для этого я мог бы создать отличную таблицу ProfileSettings с разными полями, чтобы увидеть, какая информация видна, и получить доступ к профилю. Проблема в том, что я хочу реализовать выбор в соответствии со списком друзей на Facebook. Я представил сценарий с ACL, но я боюсь, что запрошенные ресурсы огромны. Создать профиль для каждого aco не так уж плохо, особенно если запрашиваемая база данных включает 300 членов, не говоря уже о необходимости сохранения всех разрешений по мере необходимости и выбора пользователя. Поэтому я думаю, что не разрешать членам определять, какие пользователи могут получить доступ к своим объектам, а только к группам.

По-прежнему остается вопрос об ACL. В моем случае это хорошая идея? Я также должен устанавливать разрешения на форумах, например, модератор может обновлять поток/сообщение, форум может быть виден только администратором/модератором и т. Д.

Где я боюсь использовать ACL, это то, что малейшая ошибка может наносят серьезный ущерб, но в то же время он позволяет мне быстрее устанавливать разрешения.

Спасибо за вашу помощь и ваши советы :)

ответ

0

Правильный ответ, вероятно, «Да, ваш вариант использования имеет смысл использовать ACL торта.»

Однако, я несколько раз пытался использовать ACL. Кривая обучения была слишком высокой/времени для меня. Я использовал его в приложении, и через несколько месяцев у вас была проблема, о которой вы говорили, - одна небольшая проблема, и все развалилось. И, не зная точно, что я делал/что мне нужно было сделать, чтобы решить, это стало кошмаром. Не только это, но когда я хотел продлить его или сделать что-то другое, кроме конкретного примера, я не мог заставить его работать.

С этого момента я только что построил свои собственные для конкретных потребностей проекта.

Если у вас есть кто-то, кого вы знаете, кто его регулярно использует и может научить вас вхождениях ACL в Cake, тогда, возможно, будет хорошо его использовать. В противном случае я бы построил свой собственный. Даже если это не «лучше», по крайней мере, если/когда что-то пойдет не так, вы поймете это достаточно, чтобы исправить это.

+0

Я изучал ACLs CakePHP в течение нескольких дней, и я вполне понимаю операцию. В случае проблем я мог бы это исправить, но у меня будет болезненная операция, которая сломает все. Я также предпочитаю создавать свою собственную систему, но это заставит меня изобретать колесо, поэтому я все еще удивляюсь. – shingosan

 Смежные вопросы

  • Нет связанных вопросов^_^