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();
-?>