Hi all.
After the authentication I've also
to manage the task and the group
of the user.
I've managed this code:
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL auto_increment,
`id_workgroup` smallint(5) unsigned NOT NULL default '0',
`uname` varchar(50) NOT NULL default '0',
`surname` varchar(50) NOT NULL default '0',
`username` varchar(32) NOT NULL default '0',
`password` char(40) NOT NULL default '0',
`email` varchar(100) NOT NULL default '0',
`logged` datetime NOT NULL default '0000-00-00 00:00:00',
`uid` char(40) NOT NULL default '0',
`is_admin` enum('0','1') NOT NULL default '0',
`type` enum('0','1') NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
UNIQUE KEY `username` (`username`),
KEY `uid` (`uid`)
)
CREATE TABLE `workgroups` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `tasks` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`id_workgroup` smallint(5) unsigned NOT NULL,
`settings_r` enum('0','1') NOT NULL default '0',
`settings_u` enum('0','1') NOT NULL default '0',
`operator_c` enum('0','1') NOT NULL default '0',
`operator_r` enum('0','1') NOT NULL default '0',
`operator_u` enum('0','1') NOT NULL default '0',
`operator_d` enum('0','1') NOT NULL default '0',
`user_c` enum('0','1') NOT NULL default '0',
`user_r` enum('0','1') NOT NULL default '0',
`user_u` enum('0','1') NOT NULL default '0',
`user_d` enum('0','1') NOT NULL default '0',
`category_c` enum('0','1') NOT NULL default '0',
`category_r` enum('0','1') NOT NULL default '0',
`category_u` enum('0','1') NOT NULL default '0',
`category_d` enum('0','1') NOT NULL default '0',
PRIMARY KEY (`id`)
)
and check by php with a thing like this:
private function setData(){
$sql= "SELECT u.id AS _id, u.id_workgroup AS wid, u.name AS uname , u.surname, u.username, u.email, u.logged, u.is_admin, u.type,
w.name, t.* FROM users AS u
LEFT JOIN workgroups AS w ON u.id_workgroup= w.id
LEFT JOIN tasks AS t ON u.id_workgroup= t.id_workgroup
WHERE u.uid='".$this->getUid()."'";
$sth= $this->pdo->prepare($sql);
$sth->execute();
$this->data= $sth->fetch(PDO::FETCH_ASSOC);
}
public function hasPrivilege($task){
if(isset($this->data[$task])){
return (bool)$this->data[$task];
}
return false;
}
What do you think about it ?
Bye.