Cake php auth и acl unlogged группа пользователей - PullRequest
0 голосов
/ 18 июля 2009

Я хочу контролировать доступ для незарегистрированных / незарегистрированных пользователей с помощью Acl - я настроил его, протестировал его работу, могу создавать новые группы, пользователей, добавлять пользователей в группы и настраивать права доступа группы для определенных действий контроллера

Я создал группу пользователей с именем незарегистрированный и пользователь с именем temp, но понятия не имею, как назначить (сопоставить) незарегистрированного человека, который зашел на страницу, этому пользователю и группе?

Ответы [ 2 ]

0 голосов
/ 14 октября 2009

Вы на правильном пути - вы определили «анонимного» пользователя и группу. Следующий шаг, который вам нужно сделать, это автоматически войти в систему любого анонимного пользователя как «анонимный» пользователь (это звучит глупо, но поверьте мне). Таким образом, вы можете настроить разрешения ACL в таблицах так же, как если бы они были зарегистрированным пользователем.

@ Travis Leleu - Таблицы для авторизации уже существуют, чтобы определить разрешения для зарегистрированных пользователей / групп, так почему есть вторая отдельная таблица для незарегистрированных анонимных пользователей?

0 голосов
/ 18 июля 2009

Почему вы указали правило разрешения по умолчанию в структуре ACL?

Предположим, вы хотите разрешить анонимный доступ к следующим действиям: зарегистрироваться, о, someotherpage

И вы хотите контролировать доступ через ACL для: редактирования, ответа, профиля

В компоненте Auth вы можете установить свойство Auth :: allow, которое определяет различные действия контроллера, к которым вы хотите разрешить доступ всем (как вошедшим, так и не вошедшим в систему пользователям). Таким образом, в вашем контроллере (может быть AppController для глобального применения или SpecificController для применения только к этому контроллеру) укажите (обычно в методе Controller :: beforeFilter ()):

$this->Auth->allow = array( 'register', 'about', 'someotherpage' );

Тогда Auth ограничит доступ только к другим страницам. Это должно быть намного проще, чем то, что вы пытались сделать, при условии, что я правильно прочитал ваш вопрос.

НТН!

...