【发布时间】:2013-11-22 19:36:01
【问题描述】:
我做了cakephp acl controlled application tutorial
我的问题出在这一步:
我们的控制器和模型现在已准备好添加一些初始数据,并且我们的 Group 和 User 模型绑定到 Acl 表。因此,通过浏览http://example.com/groups/add 和http://example.com/users/add 添加一些使用烘焙表单的组和用户。我做了以下几组:
当我尝试打开 */groups/add 或 */users/add 时,我收到错误消息“您无权访问该位置。”
我该如何解决这个问题?
这里是我的 GroupModel 和 UserModel。
组:
<?php
App::uses('AppModel', 'Model');
/**
* Group Model
*
*/
class Group extends AppModel {
/**
* Display field
*
* @var string
*/
public $displayField = 'name';
public $actsAs = array('Acl' => array('type' => 'requester'));
public function parentNode() {
return null;
}
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow();
}
}
用户:
<?php
App::uses('AppModel', 'Model');
/**
* User Model
*
*/
App::uses('AuthComponent', 'Controller/Component');
class User extends AppModel {
public $belongsTo = array('Group');
public $actsAs = array('Acl' => array('type' => 'requester'));
public function parentNode() {
if (!$this->id && empty($this->data)) {
return null;
}
if (isset($this->data['User']['group_id'])) {
$groupId = $this->data['User']['group_id'];
} else {
$groupId = $this->field('group_id');
}
if (!$groupId) {
return null;
} else {
return array('Group' => array('id' => $groupId));
}
}
public function beforeSave($options = array()) {
$this->data['User']['password'] = AuthComponent::password($this->data['User']['password']);
return true;
}
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow();
}
}
【问题讨论】:
-
将教程写到最后解释如何授予访问权限可能是个好主意...
标签: php cakephp cakephp-2.4