diff --git a/doc/conf/srv-ldap.docbook b/doc/conf/srv-ldap.docbook index 76c70543..dca2734b 100644 --- a/doc/conf/srv-ldap.docbook +++ b/doc/conf/srv-ldap.docbook @@ -40,6 +40,7 @@ serveur LDAP. 'recoverPassword' => array( // Définition des paramètres de configuration de la récupération de mot de passe ), + 'defaultView' => [view], 'emailSender' => [email], 'keepLSsessionActive' => [booléen] ) @@ -201,6 +202,28 @@ serveur LDAP. + + defaultView + + Définition de la vue par défault de l'application. Par défaut, une page + blanche est affichée et il est possible de définir à l'aide de ce paramètre la + vue qui s'affichera. Ce paramètre peut prendre comme valeur : + + + SELF pour la vue Mon compte + + + Le nom d'un &LSobject; pour afficher la liste de ce type d'objet + + + Le nom d'une vue d'un &LSaddon; au format [addon]::[viewId] + pour afficher cette vue + + + + + + emailSender diff --git a/public_html/includes/class/class.LSsession.php b/public_html/includes/class/class.LSsession.php index 083fcfa0..307e41f9 100644 --- a/public_html/includes/class/class.LSsession.php +++ b/public_html/includes/class/class.LSsession.php @@ -1786,7 +1786,7 @@ class LSsession { foreach (self :: $LSaddonsViews as $addon => $conf) { foreach ($conf as $viewId => $viewConf) { if (self :: canAccessLSaddonView($addon,$viewId)) { - $LSaddonsViewsAccess[]=array ( + $LSaddonsViewsAccess["$addon::$viewId"]=array ( 'LSaddon' => $addon, 'id' => $viewId, 'label' => $viewConf['label'], @@ -2358,6 +2358,25 @@ class LSsession { public static function getEmailSender() { return self :: $ldapServer['emailSender']; } + + /** + * Redirect to default view (if defined) + * + * @retval void + */ + public static function redirectToDefaultView($force=false) { + if (isset(self :: $ldapServer['defaultView'])) { + if (array_key_exists(self :: $ldapServer['defaultView'], self :: $LSaccess[self :: $topDn])) { + self :: redirect('view.php?LSobject='.self :: $ldapServer['defaultView']); + } + elseif (array_key_exists(self :: $ldapServer['defaultView'], self :: $LSaddonsViewsAccess)) { + $addon = self :: $LSaddonsViewsAccess[self :: $ldapServer['defaultView']]; + self :: redirect('addon_view.php?LSaddon='.urlencode(self :: $LSaddonsViewsAccess[self :: $ldapServer['defaultView']]['LSaddon'])."&view=".urlencode(self :: $LSaddonsViewsAccess[self :: $ldapServer['defaultView']]['id'])); + } + } + if ($force) + self :: redirect('index.php'); + } /** * Ajout d'une information d'aide diff --git a/public_html/index.php b/public_html/index.php index ba7e474d..597d13f2 100644 --- a/public_html/index.php +++ b/public_html/index.php @@ -24,13 +24,15 @@ require_once 'core.php'; if(LSsession :: startLSsession()) { - // Définition du Titre de la page + // Redirect to default view (if defined) + LSsession :: redirectToDefaultView(); + + // Define page title LStemplate :: assign('pagetitle',_('Home')); // Template LSsession :: setTemplate('accueil.tpl'); } -// Affichage des retours d'erreurs +// Display template LSsession :: displayTemplate(); -?>