mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-30 05:34:49 +01:00
c48a57df45
-> Les profils utilisateurs sont maintenant scalable. Il est possible de créer autant de profil voulu avec autant de droits alloués spécifiques -> LSsession :: whoami() et LSldapObject :: whoami() retourne la liste des profils correspondants à l'utilisateur connecté -> Les méthodes ont été modifiées pour prendre en compte cela en faisant la somme des droits de chaque profils : - LSsession :: canAccess() - LSsession :: relationCanAccess() - LSsession :: loadLSrights() - LSattribute :: myRigths() -> LSsession :: isAdmin() a été remplacé par isProfile() capable de redonner la meme information mais pour tout profil dont le nom est passé en paramètre -> LSsession :: loadLSrights() : gère la délagation de droits sur les objets répondant a un filtre particulier ou dont un certain attribut possède une certaine valeur -> LSexample : -> Ajout d'un attribut lsGodfatherDn pour la délégation de droit objet par objet -> Retravail des objets d'exemple pour faire en sorte de coller plus avec une réel utilisation
219 lines
6.7 KiB
PHP
219 lines
6.7 KiB
PHP
<?php
|
|
/*******************************************************************************
|
|
* Copyright (C) 2007 Easter-eggs
|
|
* http://ldapsaisie.labs.libre-entreprise.org
|
|
*
|
|
* Author: See AUTHORS file in top-level directory.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License version 2
|
|
* as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
******************************************************************************/
|
|
|
|
// Configuration LDAP Saisie :
|
|
$GLOBALS['LSconfig'] = array(
|
|
'NetLDAP2' => '/usr/share/php/Net/LDAP2.php',
|
|
'Smarty' => '/var/www/tmp/Smarty-2.6.18/libs/Smarty.class.php',
|
|
'lang' => 'fr_FR.UTF8',
|
|
'cacheLSrights' => true,
|
|
'cacheSubDn' => true,
|
|
'cacheSearch' => true,
|
|
'ldap_servers' => array (
|
|
array (
|
|
'name' => 'LSexample',
|
|
'ldap_config'=> array(
|
|
'host' => '127.0.0.1',
|
|
'port' => 389,
|
|
'version' => 3,
|
|
'starttls' => false,
|
|
'binddn' => 'uid=ldapsaisie,ou=sysaccounts,o=ls',
|
|
'bindpw' => 'toto',
|
|
'basedn' => 'o=ls',
|
|
'options' => array(),
|
|
'filter' => '(objectClass=*)',
|
|
'scope' => 'sub'
|
|
),
|
|
'LSrights' => array (
|
|
'admin' => array (
|
|
'o=ls' => array (
|
|
'uid=eeggs,ou=people,o=ls' => NULL
|
|
),
|
|
'ou=people,o=ls' => array (
|
|
'cn=adminldap,ou=groups,o=ls' => array (
|
|
'attr' => 'uniqueMember',
|
|
'LSobject' => 'LSeegroup'
|
|
)
|
|
)
|
|
),
|
|
'godfather' => array (
|
|
'LSobjects' => array (
|
|
'LSeepeople' => array (
|
|
'attr' => 'lsGodfatherDn',
|
|
'attr_value' => '%{dn}',
|
|
'basedn' => 'ou=people,o=ls'
|
|
),
|
|
'LSeegroup' => array (
|
|
'filter' => 'lsGodfatherDn=%{dn}'
|
|
)
|
|
)
|
|
)
|
|
),
|
|
'cacheLSrights' => true,
|
|
'cacheSearch' => true,
|
|
'authobject' => 'LSeepeople',
|
|
'authobject_pwdattr' => 'userPassword',
|
|
'LSaccess' => array(
|
|
'LSeepeople',
|
|
'LSeegroup'
|
|
),
|
|
'recoverPassword' => array(
|
|
'mailAttr' => 'mail',
|
|
'recoveryHashAttr' => 'lsRecoveryHash',
|
|
'recoveryEmailSender' => 'noreply-recover@ls.com',
|
|
'recoveryHashMail' => array(
|
|
'subject' => 'LSexample : Récupération de votre mot de passe.',
|
|
'msg' => "Pour poursuivre le processus de récupération de votre mot de passe,\nmerci de cliquer de vous rendre à l'adresse suivante :\n%{url}"
|
|
),
|
|
'newPasswordMail' => array(
|
|
'subject' => 'LSexample : Votre nouveau mot de passe.',
|
|
'msg' => "Votre nouveau mot de passe : %{mdp}"
|
|
)
|
|
),
|
|
'emailSender' => 'noreply@ls.com',
|
|
'LSobjects' => array (
|
|
'LSeepeople',
|
|
'LSeegroup'
|
|
)
|
|
),
|
|
array (
|
|
'name' => 'LSexample - multi-sociétés',
|
|
'ldap_config'=> array(
|
|
'host' => '127.0.0.1',
|
|
'port' => 389,
|
|
'version' => 3,
|
|
'starttls' => false,
|
|
'binddn' => 'uid=ldapsaisie,ou=sysaccounts,o=ls',
|
|
'bindpw' => 'toto',
|
|
'basedn' => 'o=ls',
|
|
'options' => array(),
|
|
'filter' => '(objectClass=*)',
|
|
'scope' => 'sub'
|
|
),
|
|
'LSrights' => array(
|
|
'admin' => array (
|
|
'o=ls' => array (
|
|
'uid=eeggs,ou=people,o=ls' => NULL,
|
|
'cn=adminldap,ou=groups,o=ls' => array (
|
|
'attr' => 'uniqueMember',
|
|
'LSobject' => 'LSeegroup'
|
|
)
|
|
)
|
|
)
|
|
),
|
|
'authobject' => 'LSeepeople',
|
|
'levelLabel' => _('Société'),
|
|
'subDn' => array(
|
|
'== Toutes ==' => array(
|
|
'dn' => 'o=ls',
|
|
'LSobjects' => array(
|
|
'LSeepeople',
|
|
'LSeegroup',
|
|
'LSeecompany'
|
|
)
|
|
),
|
|
'LSobject' => array(
|
|
'LSeecompany' => array(
|
|
'LSobjects' => array(
|
|
'LSeepeople',
|
|
'LSeegroup'
|
|
)
|
|
)
|
|
)
|
|
),
|
|
'cacheLSrights' => true,
|
|
'cacheSearch' => true,
|
|
'authobject_pwdattr' => 'userPassword',
|
|
'recoverPassword' => array(
|
|
'mailAttr' => 'mail',
|
|
'passwordAttr' => 'userPassword',
|
|
'recoveryHashAttr' => 'lsRecoveryHash',
|
|
'recoveryEmailSender' => 'noreply-recover@lsexample.net',
|
|
'recoveryHashMail' => array(
|
|
'subject' => 'LSexample : Récupération de votre mot de passe.',
|
|
'msg' => "Pour poursuivre le processus de récupération de votre mot de passe,\nmerci de cliquer de vous rendre à l'adresse suivante :\n%{url}"
|
|
),
|
|
'newPasswordMail' => array(
|
|
'subject' => 'LSexample : Votre nouveau mot de passe.',
|
|
'msg' => "Votre nouveau mot de passe : %{mdp}"
|
|
)
|
|
),
|
|
'emailSender' => 'noreply@lsexample.net',
|
|
'LSobjects' => array (
|
|
'LSeepeople',
|
|
'LSeegroup',
|
|
'LSeecompany'
|
|
)
|
|
)
|
|
)
|
|
);
|
|
|
|
// Interface
|
|
// Theme Black
|
|
//define('LS_THEME','black');
|
|
//define('LS_TEMPLATES_DIR', 'templates/default');
|
|
|
|
// Theme Default
|
|
define('LS_THEME','default');
|
|
define('LS_TEMPLATES_DIR', 'templates/'.LS_THEME);
|
|
define('LS_IMAGES_DIR', 'images/'.LS_THEME);
|
|
define('LS_CSS_DIR', 'css/'.LS_THEME);
|
|
|
|
//Debug
|
|
$GLOBALS['LSdebug']['active'] = true;
|
|
|
|
define('NB_LSOBJECT_LIST',20);
|
|
define('NB_LSOBJECT_LIST_SELECT',11);
|
|
|
|
define('MAX_SEND_FILE_SIZE',2000000);
|
|
|
|
// Définitions des locales
|
|
$textdomain = 'ldapsaisie';
|
|
bindtextdomain($textdomain, '/var/www/ldapsaisie/trunk/l10n');
|
|
textdomain($textdomain);
|
|
setlocale(LC_ALL, $GLOBALS['LSconfig']['lang']);
|
|
|
|
// Définitions des dossiers d'inclusions
|
|
define('LS_CONF_DIR','conf/');
|
|
define('LS_OBJECTS_DIR', LS_CONF_DIR . 'LSobjects/');
|
|
define('LS_INCLUDE_DIR','includes/');
|
|
define('LS_CLASS_DIR', LS_INCLUDE_DIR .'class/');
|
|
define('LS_LIB_DIR', LS_INCLUDE_DIR .'libs/');
|
|
define('LS_ADDONS_DIR', LS_INCLUDE_DIR .'addons/');
|
|
define('LS_JS_DIR', LS_INCLUDE_DIR .'js/');
|
|
define('LS_TMP_DIR', 'tmp/');
|
|
|
|
|
|
// Javascript
|
|
$GLOBALS['defaultJSscipts']=array(
|
|
'mootools-core.js',
|
|
'mootools-more.js',
|
|
'functions.js',
|
|
'LSdefault.js'
|
|
);
|
|
|
|
// PHP values
|
|
ini_set( 'magic_quotes_gpc', 'off' );
|
|
ini_set( 'magic_quotes_sybase', 'off' );
|
|
ini_set( 'magic_quotes_runtime', 'off' );
|
|
|
|
?>
|