extranet/includes/user/permissions.php

172 lines
5.4 KiB
PHP
Raw Normal View History

<?php
//Définition du tableau des permissions
2009-07-02 15:50:12 +00:00
$definePerms = array(
2010-01-14 10:22:49 +00:00
'KBIS' => array( 'init' => '', 'txt' => 'Extrait RCS'),
'ACTES' => array( 'init' => '', 'txt' => 'Pièces officielles'),
2010-04-09 09:12:16 +00:00
'IDPROCOL' => array( 'init' => '', 'txt' => 'Fiche procédure collective'),
'PRIVILEGES' => array( 'init' => '', 'txt' => 'Privilèges'),
2010-01-14 10:22:49 +00:00
'IPARI' => array( 'init' => '', 'txt' => 'Investigation par l\'image IparI&copy;'),
'MARQUES' => array( 'init' => '', 'txt' => 'Marques déposées'),
2010-01-14 10:22:49 +00:00
'INDISCORE' => array( 'init' => '', 'txt' => 'indiScore&copy;'),
'INDISCORE2' => array( 'init' => '', 'txt' => 'Rapport synthetique'),
'INDISCORE3' => array( 'init' => '', 'txt' => 'Rapport complet'),
'SCORECSF' => array( 'init' => '', 'txt' => 'Score CSF'),
'EVENINSEE' => array( 'init' => '', 'txt' => '&Eacute;vènements INSEE'),
2010-01-14 10:22:49 +00:00
'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'),
2010-01-14 10:22:49 +00:00
'SURVBILAN' => array( 'init' => '', 'txt' => 'Surveillance des bilans'),
'SURVSCORE' => array( 'init' => '', 'txt' => 'Surveillance des événements sur le score'),
2010-01-14 10:22:49 +00:00
'SURVACTES' => array( 'init' => '', 'txt' => 'Surveillance des actes'),
'SURVDIRIGEANTS'=> array( 'init' => '', 'txt' => 'Surveillance des dirigeants'),
2010-04-02 16:00:57 +00:00
'SURVPRIV' => array( 'init' => '', 'txt' => 'Surveillance des privilèges'),
2010-01-14 10:22:49 +00:00
'SURVLISTE' => array( 'init' => '', 'txt' => 'Liste des surveillances'),
'PORTEFEUILLE' => array( 'init' => '', 'txt' => 'Portefeuille'),
2010-01-14 10:22:49 +00:00
'INVESTIG' => array( 'init' => '', 'txt' => 'Investigation'),
'ENQUETEC' => array( 'init' => '', 'txt' => 'Enquête commerciale'),
2010-01-14 10:22:49 +00:00
'INTERNATIONAL' => array( 'init' => '', 'txt' => 'Recherche Internationale'),
'BDF' => array( 'init' => '', 'txt' => 'Banque de France'),
2010-01-14 10:22:49 +00:00
'MONPROFIL' => array( 'init' => '', 'txt' => 'Mon profil'),
'EDITION' => array( 'init' => '', 'txt' => 'Mode Edition'),
2010-01-14 10:22:49 +00:00
);
2009-07-02 15:50:12 +00:00
/*
* Attribut si l'utilisateur possède le droit d'accèder au service
2009-07-02 15:50:12 +00:00
* @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
2009-07-02 15:50:12 +00:00
* @return boolean
*/
2010-01-04 08:29:20 +00:00
function hasPerm($perm, $userInfos = '')
{
2009-07-09 15:07:38 +00:00
$return = TRUE;
if( $userInfos == '' && isset($_SESSION['tabInfo']['droits']) ){
$userInfos = $_SESSION['tabInfo'];
}elseif( $userInfos == '' && !isset($_SESSION['tabInfo']['droits']) ||
!isset($userInfos['droits']) ){
$userInfos = array( 'droits' => '' );
}
if ( !preg_match('/\b'.$perm.'\b/i', $userInfos['droits'])){
$return = FALSE;
}
//Surcharger les droits
2010-01-28 09:32:35 +00:00
if ( !overridePerm($perm) ){ $return = FALSE; }
return $return;
}
2009-07-09 15:07:38 +00:00
/*
* Vérifie les permissions sur chaque page
2009-07-09 15:07:38 +00:00
* @param string $page
* Nom de la page
* @param string $perm
* Nom du droit
* @return boolean
*/
2010-01-04 08:29:20 +00:00
function checkPerm($page, $perm = '')
{
2009-07-09 15:07:38 +00:00
$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, $firephp;
$return = '';
FB::log($userInfos, 'userInfos');
$listeDroits = array_key_exists('droitsClients',$userInfos) ?
explode(' ', $userInfos['droitsClients']) : array();
foreach($definePerms as $perm => $infos){
if ( overridePerm($perm) && in_array(strtolower($perm), $listeDroits) ){
hasPerm($perm, $userInfos) ?
$checked = 'checked' : $checked = $infos['init'];
($_SESSION['tabInfo']['profil']=='Administrateur' ||
$_SESSION['tabInfo']['profil']=='SuperAdministrateur') ?
$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',
'fzicaro',
'sbeaugrand',
'tjactel');
$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' ||
$_SESSION['tabInfo']['profil']=='SuperAdministrateur') ) ){
$isAuthorized = TRUE;
}
return $isAuthorized;
}
function hasModeEdition()
{
$userInfos = $_SESSION['tabInfo'];
$perm = 'EDITION';
if ($userInfos['mode_edition']==1 ||
preg_match('/\b'.$perm.'\b/i', $userInfos['droits'])){
return true;
} else {
return false;
}
}
/*
* 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';
}
?>