<?php
/**
* Administration des utilisateurs
*
* @version $Id$
* @copyright 2009
*/
class admin_admin {
var $name = 'Gestion des droits';
var $description = 'Administration des differents droits d\'accès';
function index(){
$page = page::Open();
$url = URL_Analyser::Open();
$page->module = 'admin';
switch($url->GetUrlDir(2)){
case '':
case 'index':
self::home();
break;
case 'user':
self::user_acc($url->GetUrlDir(3));
break;
case 'droit':
self::droit(
basename($url->GetUrlDir(-1), '.htm'),
$url->GetUrlDir(3),
$url->GetVarValue('dir'
));
break;
default:
return false;
} // switch
}
private static function droit($action, $userid, $droit){
$droit = trim($droit, '/\\');
$sql = new Data('admin');
$me = mod_user::GetUserInfo();
if (mod_admin::is_Auth($droit) < 2 || $userid == $me['id']) {
$page = page::Open();
$page->ExeTpl('403.tpl');
exit;
}
switch(strtolower($action)){
case 'add':
$sql->InsertInto(array('user'=>$userid, 'droit'=>'/'.$droit, 'user'=>$userid));
break;
case 'user':
$sql->Update(array('acces'=>'1'), array('user'=>$userid, 'droit'=>'/'.$droit));;
break;
case 'refus':
$sql->DeleteFrom(array('user'=>$userid, 'droit'=>'/'.$droit));
break;
case 'admin':
$sql->Update(array('acces'=>'2'), array('user'=>$userid, 'droit'=>'/'.$droit));;
break;
} // switch
self::user_acc($userid);
}
private static function home() {
$page = page::Open();
$page->assign('user', mod_user::GetAllUser());
$page->ExeTpl('home.tpl');
}
private static function user_acc($id){
$page = page::Open();
$sql = new Data('admin');
$user = mod_user::GetAllUser();
$me = mod_user::GetUserInfo();
$sql2 = new Data('admin');
if (isset($user['id'.$id])) {
$page->assign('current', $user['id'.$id]);
//parcours des droits de l'utilisateur
$sql->Select(array('user' => $me['id']));
while($sql->next()){
$sql2->Select(array('user'=>$id, 'droit'=>$sql->row['droit']));
$sql2->next();
$page->append('list', array(
'acc'=>array(
'id'=>$sql->row['id'],
'droit'=>$sql->row['droit'],
'acces'=>($sql2->row['acces']==false)?(0):($sql2->row['acces'])
),
'me'=>mod_admin::is_Auth(trim($sql->row['droit'],'/'))
));
} // while
}
$page->ExeTpl('user.tpl');
}
}
?>