我有以下ARO树:
---------------------------------------------------------------
Aro tree:
---------------------------------------------------------------
[1] rental_registry_users
[2] rental_registry_admin
[3] User.1
[11] User.7
[4] rental_registry_owner
[5] User.3
[6] rental_registry_agent
[7] User.4
[8] User.5
[9] User.6
[10] rental_registry_management_company创建新用户时,我希望将它们自动添加到“rental_registry_admin”ARO中。
这就是我的用户模型的样子:
<?php
App::uses('AppModel', 'Model');
App::uses('BlowfishPasswordHasher', 'Controller/Component/Auth');
/**
* User Model
*
*/
class User extends AppModel {
var $actAs = array('Acl' => array('type'=>'requester'));
/**
* Display field
*
* @var string
*/
public $displayField = 'username';
/**
* Validation rules
*
* @var array
*/
public $validate = array(
'username' => array(
'email' => array(
'rule' => array('email'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'password' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
);
/**
* beforeSave method -- executed before model is comitted to the database
* @return true
*/
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$passwordHasher = new BlowfishPasswordHasher();
$this->data[$this->alias]['password'] = $passwordHasher->hash(
$this->data[$this->alias]['password']
);
}
return true;
}
public function parentNode() {
switch ($this->data[$this->alias]['role']) {
case 'admin':
return 'rental_registry_admin';
case 'owner':
return 'rental_registry_owner';
default:
case 'agent':
return 'rental_registry_agent';
}
}
}但是,当保存新用户时,它们不会添加到ARO中。我遗漏了什么?此代码是基于CakePHP书第285页上的示例编写的。用户不会被添加到任何一个AROs中,所以并不是它被分配到错误的一个。
发布于 2015-02-19 21:04:37
最后,我改变了权限级别的处理方式。相反,我向用户表中添加了一个“角色”字段,并使用该字段来确定控制器内部的访问权限。
https://stackoverflow.com/questions/28307054
复制相似问题