extranet/includes/user/permissions.php
2009-08-10 15:50:43 +00:00

111 lines
3.9 KiB
PHP

<?php
//Définition du tableau des permissions
$definePerms = array(
'KBIS' => array( 'init' => '', 'txt' => 'Extrait RCS'),
'ACTES' => array( 'init' => '', 'txt' => 'Pièces officielles'),
'IPARI' => array( 'init' => '', 'txt' => 'Investigation par l\'image IparI&copy;'),
'MARQUES' => array( 'init' => '', 'txt' => 'Marques déposées'),
'INDISCORE' => array( 'init' => '', 'txt' => 'indiScore&copy;'),
'SCORECSF' => array( 'init' => '', 'txt' => 'Score CSF'),
'EVENINSEE' => array( 'init' => '', 'txt' => '&Eacute;vènements INSEE'),
'AVISINSEE' => array( 'init' => '', 'txt' => 'Avis de situation INSEE'),
'SURVANNONCE' => array( 'init' => '', 'txt' => 'Surveillance des annonces légales'),
'SURVINSEE' => array( 'init' => '', 'txt' => 'Surveillance des événements INSEE'),
'SURVBILAN' => array( 'init' => '', 'txt' => 'Surveillance des bilans'),
'SURVSCORE' => array( 'init' => '', 'txt' => 'Surveillance des événements sur le score'),
'SURVLISTE' => array( 'init' => '', 'txt' => 'Liste des surveillances'),
'INVESTIG' => array( 'init' => '', 'txt' => 'Investigation'),
'ENQUETEC' => array( 'init' => '', 'txt' => 'Enquête commerciale'),
'INTERNATIONAL' => array( 'init' => '', 'txt' => 'Recherche Internationale'),
'MONPROFIL' => array( 'init' => '', 'txt' => 'Mon profil'),
);
/*
* Attribut si l'utilisateur possède le droit d'accèder au service
* @param string $name
* Nom du droit
* @param array $userInfo
* Tableau d'informations de l'utilisateur, facultatif, si pas défini alors on regarde dans la session
* @return boolean
*/
function hasPerm($perm, $userInfos = ''){
$return = TRUE;
if($userInfos == ''){ $userInfos = $_SESSION['tabInfo']; }
if ( !preg_match('/'.$perm.'/i', $userInfos['droits'])) $return = FALSE;
//Surcharger les droits
if(!overridePerm($perm)){ $return = FALSE; }
return $return;
}
/*
* Vérifie les permissions sur chaque page
* @param string $page
* Nom de la page
* @param string $perm
* Nom du droit
* @return boolean
*/
function checkPerm($page, $perm = ''){
$return = TRUE;
if($page != 'recherche') $return = hasPerm($perm);
$return = $return && overridePermPage($page);
return $return;
}
/*
* Retourne le code HTML pour le formulaire de modification du compte
* @param string $name
* Nom du droits
* @param array $perms
* Tableau d'informations du droits
* @return string
*/
function formElementPerm($userInfos){
global $definePerms;
$return = '';
foreach($definePerms as $perm => $infos){
if(overridePerm($perm)){
(hasPerm($perm, $userInfos)==TRUE) ? $checked = 'checked' : $checked = $infos['init'];
($_SESSION['tabInfo']['profil']=='Administrateur') ? $disabled = '' : $disabled = 'disabled' ;
$return.= '<input type="checkbox" name="frmOptions[droits][]" value="'.strtolower($perm).'" '.$checked.' '.$disabled.' class="noborder"/>'.$infos['txt'].'<br/>'."\n";
}
}
return $return;
}
/*
* Vérifie le login de l'utilisateur pour le mode edition
* @param string $loginVu
* Login
* @return boolean
*/
function checkModeEdition($loginVu){
$isAuthorized = FALSE;
$authorizedUsers = array('ylenaour', 'jmartory', 'mheitz', 'mpurcarin', 'mcochet', 'aegasse', 'mricois', 'adebbagh');
$isUserAuthorized = FALSE;
foreach($authorizedUsers as $login){
if($_SESSION['tabInfo']['login']==$login){
$isUserAuthorized = TRUE;
break;
}
}
if($loginVu==$_SESSION['tabInfo']['login'] && $isUserAuthorized || ($_SESSION['tabInfo']['idClient']==1 && $_SESSION['tabInfo']['profil']=='Administrateur') ){
$isAuthorized = TRUE;
}
return $isAuthorized;
}
/*
* Retourne le code HTML pour le formulaire de modification du compte
* @return string
*/
function formElementModeEdition(){
if ($_SESSION['tabInfo']['mode_edition']==1) $strMode='checked'; else $strMode='';
return '<input type="checkbox" name="frmOptions[mode_edition]" value="1" '.$strMode.' class="noborder"/>Edition';
}
?>