<?php
/**
* Main
*
* @version $Id$
* @copyright 2009
*/
class mod_admin {
/* Fonction is_Auth
Arguments:
string $droit
Return: int $acces
0 acces interdit
-1 super interdit
1 autorisé
2 autorisé avec replication */
static function is_Auth ($droit, $user=NULL) {
$sql = DB_Driver::Open();
$sql->table = 'admin';
$droit = explode('/', $droit);
if ($user === NULL) {
$user = mod_user::GetUserInfo();
} else {
$users = mod_user::GetAllUser();
$user = $users['id'.$user];
unset($users);
}
if ($user == false) {
return false;
}
//Recherche des droits d'accès
$actu = '';
$acces = 0;
foreach($droit as $me){
$actu .= '/'.$me;
//Récupération du droit
$result = $sql->Select(
array(
'user'=>$user['id'],
'droit'=>$actu
),
array('acces')
);
//Contrôle du droit
$result = (mysql_num_rows($result))?(mysql_result($result, 0, 'acces')):(0);
if ($result==-1) {
return -1;
} elseif ($result > $acces){
$acces = $result;
}
}
return $acces;
}
static function autoload(){
$page = page::Open();
$page->assign('kool', 'oooooooooooo');
}
static function init(){
$page = page::Open();
$page->module = 'admin';
module::GlobalInclude('admin.php');
}
function _exp(){
//var_dump(mod_user::GetUserInfo());
//var_dump(self::is_Auth('admin/eze/dzdz'));
$page = page::Open();
if (!self::is_Auth('admin')) {
$page->ExeTpl('403.tpl');
return true;
}
foreach(module::ListMod() as $item){
$mod = 'admin_'.$item;
if (class_exists($mod) && self::is_Auth($item) > 0) {
$info = get_class_vars($mod);
$page->append('module', array('name'=>$item, 'info'=>$info));
}
}
$page->ExeTpl('index.tpl');
}
function index_exp(){
$url = URL_Analyser::Open();
$module = $url->GetUrlDir(1);
if (!self::is_Auth($module.'/admin')) {
$page = page::Open();
$page->ExeTpl('403.tpl');
exit;
}
if (!class_exists('admin_'.$module) || !ExeModFun('admin_'.$module)) {
trigger_error("Module $module n'existe pas ou non administrable", E_USER_ERROR);
}
}
}
?>