habe folgende Tabellen:
Users:
id,int(5),auto_increment, primary key
name,varchar(64)
username,varchar(64),unique
password,varchar(64)
email,varchar(128)
created,datetime
modified,datetime
enabled,tinyint(1)
mit folgendem Model:
- Code: Alles auswählen
und die Tabelle usergroups:
id,int(4),auto_increment,primary key,
group,varchar(100)
mit folgendem Model:
- Code: Alles auswählen
<?php
class Usergroup extends AppModel {
var $name = 'Usergroup';
var $hasAndBelongsToMany = array(
'User'
);
}
?>
und die Verknüpfungstabelle usergroups_users:
usergroup_id,int(4)
user_id,int(5)
Bin nach dem Buch "Webentwicklung mit CakePHP" folgendermaßen vorgegangen:
1. Habe ACL initialisiert -> cake acl initdb (natürlich vorher in das app-Verzeichnis der Applikation gewechselt)
2. Habe zum testen ein ACO definiert -> cake acl create aco / ROOT, cake acl create Users index
3. Habe die Models angepasst
- Code: Alles auswählen
<?php
class User extends AppModel {
var $name = 'User';
var $validate = array(
'name' => array('notempty'),
'username' => array('notempty'),
'password' => array('notempty')
);
var $hasAndBelongsToMany = array(
'Usergroup',
'Document'
);
var $actsAs = array('Acl' => 'requester');
function bindNode($user) {
if (empty($user['Usergroup']['id'])) {
return null;
} else {
return array('model' => 'Usergroup');
}
}
}
?>
- Code: Alles auswählen
<?php
class Usergroup extends AppModel {
var $name = 'Usergroup';
//The Associations below have been created with all possible keys, those that are not needed can be removed
var $hasAndBelongsToMany = array(
'User'
);
var $actsAs = array('Acl' => 'requester'); //Zuweisung des Acl-Behaviours
var $components = array('Acl', 'Auth');
function parentNode() {
return 'Usergroups';
}
}
?>
4. Habe sowohl in den UsersController als auch in den UsergroupsController folgendes Zeile geschrieben
- Code: Alles auswählen
5. Habe dann meine Anwendung aufgerufen - ich erhalte folgende Fehlermeldung:
Warning (512): Callback parentNode() not defined in User [CORE\cake\libs\model\behaviors\acl.php, line 62]
Kann jemand helfen?