Introduction
LiveUser_Admin en bref...
Qu'est-ce que c'est?
PEAR::LiveUser_Admin est une interface d'administration à utiliser avec LiveUser.
Elle vous permet de mettre à jour les informations:
- au niveau simple, relatives
- au niveau intermédiaire, relatives
- au niveau complexe, relatives
- aux administrateurs des aires fonctionnelles
- aux droits implicites
- aux sous-groupes
Vous pouvez également:
Pourquoi utiliser cette interface?
Si vous ne désirez pas mettre à jour les tables de la base de donnée manuellement, vous pouvez utiliser les interfaces d'administration.
Où trouver LiveUser_Admin?
Le premier point de référence est le site PEAR.
Vous pouvez trouver une aide plus détaillée en visitant le forum PEAR. Bien que la plupart des messages soient en allemand, vous pouvez vous exprimer en anglais ou utiliser l'outil de traduction inclus. Les personnes du forum répondent rapidement et sont réellement très sympa.
Vous trouverez aussi des informations sur le Wiki LiveUser. Il y a là un bon point de référence et quelques schémas de bases de données intéressants.
Installation
Vous aurez besoin d'installer PEAR et quelques paquets PEAR pour faire fonctionner l'exemple de cette documentation. Vous trouverez la liste des élément requis ci-dessous:
- PEAR
- PEAR::LiveUser_Admin v0.3.8
- PEAR::MDB2 v2.0.0, et tout pilote MDB2 nécessaire
- PEAR::DB v1.7.6 si nécessaire ou désiré
- l'extention mcrypt ou le paquet PEAR::Crypt_RC4 v1.0.2 (lorsque vous utilisez le «cookie» «Remember Me» ou l'algorythme d'encryption RC4)
ou
Configuration
Avant de commencer à utiliser l'interface d'administration, nous aurons besoin d'adapter légèrement le fichier de configuration que nous avons utilisé dans l'exemple de LiveUser:
- le vecteur «permContainer» doit être défini et actif
- un lien doit être établi avec la classe «LiveUser_Admin». Nous pourrons alors l'utiliser au travers de la variable $LUA.
ini_set('include_path', '../libs/PEAR/' . PATH_SEPARATOR . ini_get('include_path')); require_once 'MDB2.php'; require_once 'LiveUser/LiveUser.php'; require_once 'LiveUser/Admin.php'; $db_name = 'username'; $db_password = 'secret_word'; $db_server = 'localhost'; $db_database = 'db_name'; $dsn ='mysql://' . $db_name . ':' . $db_password . '@' . $db_server . '/' . $db_database; $db =& MDB2::connect($dsn); if (PEAR::isError($db)) { echo $db->getMessage() . ' ' . $db->getUserInfo(); } $db->setFetchMode(MDB2_FETCHMODE_ASSOC); $conf = array( 'debug' => false, 'session' => array( 'name' => 'PHPSESSION', // liveuser session name 'varname' => 'ludata' // liveuser session var name ), 'login' => array( 'force' => false // should the user be forced to login ), 'logout' => array( 'destroy' => true // whether to destroy the session on logout ), 'cookie' => array( 'name' => 'loginInfo', // name of the Remember me cookie 'lifetime' => 30, // cookie lifetime in days 'path' => null, // cookie path ? 'domain' => null, // cookie domain ? 'secret' => 'test', 'savedir' => '.', // absolute path to writeable // directory (no trailing slash) ? 'secure' => false, // whether cookie only send over // secure connection ), 'authContainers' => array( array( 'type' => 'MDB2', // auth container name 'expireTime' => 3600, // max lifetime of a session in seconds 'idleTime' => 1800, // max time between 2 requests 'allowEmptyPasswords' => 0, // does not allow empty passwords 'passwordEncryptionMode'=> 'MD5', 'storage' => array( 'dsn' => $dsn, 'alias' => array( // contains any additional or // non-default field alias 'lastlogin' => 'last_login', 'is_active' => 'is_active', 'owner_user_id' => 'owner_user_id', 'owner_group_id' => 'owner_group_id', 'email' => 'email' ), 'fields' => array( // contains any additional or // non-default field types 'lastlogin' => 'timestamp', 'is_active' => 'boolean', 'owner_user_id' => 'integer', 'owner_group_id' => 'integer', 'email' => 'text' ), 'tables' => array( // contains additional tables or // fields in existing tables 'users' => array( 'fields' => array( 'lastlogin' => false, 'is_active' => false, 'owner_user_id' => false, 'owner_group_id' => false, 'email' => false ) ) ) ) ) ), 'permContainer' => array( 'type' => 'Medium', 'storage' => array( 'MDB2' => array( // storage container name 'dsn' => $dsn, 'prefix' => 'liveuser_', // table prefix 'tables' => array( // contains additional tables // or fields in existing tables 'groups' => array( 'fields' => array( 'owner_user_id' => false, 'owner_group_id' => false, 'is_active' => false ) ) ), 'fields' => array( // contains any additional // or non-default field types 'owner_user_id' => 'integer', 'owner_group_id' => 'integer', 'is_active' => 'boolean' ), 'alias' => array( // contains any additional // or non-default field alias 'owner_user_id' => 'owner_user_id', 'owner_group_id' => 'owner_group_id', 'is_active' => 'is_active' ) ) ) ) ); //PEAR::setErrorHandling(PEAR_ERROR_RETURN); $LU = LiveUser::singleton($conf); if (!$LU->init()) { var_dump($LU->getErrors()); die(); } $handle = (array_key_exists('handle', $_REQUEST)) ? $_REQUEST['handle'] : null; $passwd = (array_key_exists('passwd', $_REQUEST)) ? $_REQUEST['passwd'] : null; $logout = (array_key_exists('logout', $_REQUEST)) ? $_REQUEST['logout'] : false; $remember = (array_key_exists('rememberMe', $_REQUEST)) ? $_REQUEST['rememberMe'] : false; if ($logout) { $LU->logout(false); // does not delete the RememberMe cookie } elseif(!$LU->isLoggedIn() || ($handle && $LU->getProperty('handle') != $handle)) { if (!$handle) { $LU->login(null, null, true); } else { $LU->login($handle, $passwd, $remember); } } $LUA =& LiveUser_Admin::factory($conf); $LUA->init();
Dans la suite...
Dans les pages suivantes, nous examinerons certaines des methodes de l'interface d'administration utilisées dans le niveau simple de gestion des permissions.
Certains points restent encore à documenter.



