Как ограничить доступ пользователя только к его собственной информации

#cakephp #acl

#cakephp #acl

Вопрос:

Я следую примеру Acl в руководстве по cake .
При достижении успеха у меня возникает еще один вопрос по применению Acl к моему проекту

  function initDB() {
    $group = amp; $this->User->Group;
    //Allow admins to everything
    $group->id = 1;
    $this->Acl->allow($group, 'controllers');

    //allow managers to posts and widgets
    $group->id = 2;
    $this->Acl->deny($group, 'controllers');
    $this->Acl->allow($group, 'controllers/Posts');
    $this->Acl->allow($group, 'controllers/Widgets');

    //allow users to only add and edit on posts and widgets
    $group->id = 3;
    $this->Acl->deny($group, 'controllers');
    $this->Acl->allow($group, 'controllers/Posts/add');
    $this->Acl->allow($group, 'controllers/Posts/edit');
    $this->Acl->allow($group, 'controllers/Widgets/add');
    $this->Acl->allow($group, 'controllers/Widgets/edit');
    //we add an exit to avoid an ugly "missing views" error message
    echo "all done";
    exit;
} 
  

В коде
1.Как ограничить доступ пользователя только к его собственной информации
2. Мне нужно предупреждать, когда пользователь отказывается в доступе к действию
3. при входе в систему с любой ролью я не могу выполнить действие выхода

Спасибо

Ответ №1:

вам нужен acl на основе строк, а не тот, который вы показали, основанный на действии http://jmcneese.wordpress.com/2009/04/07/update-row-level-model-access-control-for-cakephp /

Комментарии:

1. БОЖЕ, похоже, что следующий шаг будет сложнее, я также понимаю, что ACL невелик, можете ли вы объяснить мне разницу между ACL и Permissionable

Ответ №2:

Компонент ACL CakePHP может немного разочаровывать. По сравнению с компонентом ACL в Zend Framework, он кажется довольно отсутствующим.

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

Мое единственное беспокойство по поводу использования плагина на данный момент заключается в том, что CakePHP 2.0 теперь выпущен как альфа-версия, и использование этого плагина может задержать / помешать вам в обновлении, если вы решите. Однако разработка этого плагина, похоже, ведется довольно активно, поэтому есть большая вероятность, что он будет обновлен для работы с 2.0 (если возникнут проблемы с самого начала).

Комментарии:

1. это мой первый проект cake. Вы можете указать мне, использовать Acl или нет