Add defaultView paramater

This commit is contained in:
Benjamin Renard 2018-09-13 18:36:45 +02:00
parent f94471e6e5
commit e296cd710b
3 changed files with 48 additions and 4 deletions

View file

@ -40,6 +40,7 @@ serveur LDAP.</para>
'recoverPassword' => array( 'recoverPassword' => array(
// Définition des paramètres de configuration de la récupération de mot de passe // Définition des paramètres de configuration de la récupération de mot de passe
), ),
'defaultView' => [view],
'emailSender' => [email], 'emailSender' => [email],
'keepLSsessionActive' => [booléen] 'keepLSsessionActive' => [booléen]
) )
@ -201,6 +202,28 @@ serveur LDAP.</para>
</varlistentry> </varlistentry>
<varlistentry>
<term>defaultView</term>
<listitem>
<simpara>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 :
<itemizedlist>
<listitem>
<simpara><literal>SELF</literal> pour la vue <emphasis>Mon compte</emphasis></simpara>
</listitem>
<listitem>
<simpara>Le nom d'un &LSobject; pour afficher la liste de ce type d'objet</simpara>
</listitem>
<listitem>
<simpara>Le nom d'une vue d'un &LSaddon; au format <literal>[addon]::[viewId]</literal>
pour afficher cette vue</simpara>
</listitem>
</itemizedlist>
</simpara>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term>emailSender</term> <term>emailSender</term>
<listitem> <listitem>

View file

@ -1786,7 +1786,7 @@ class LSsession {
foreach (self :: $LSaddonsViews as $addon => $conf) { foreach (self :: $LSaddonsViews as $addon => $conf) {
foreach ($conf as $viewId => $viewConf) { foreach ($conf as $viewId => $viewConf) {
if (self :: canAccessLSaddonView($addon,$viewId)) { if (self :: canAccessLSaddonView($addon,$viewId)) {
$LSaddonsViewsAccess[]=array ( $LSaddonsViewsAccess["$addon::$viewId"]=array (
'LSaddon' => $addon, 'LSaddon' => $addon,
'id' => $viewId, 'id' => $viewId,
'label' => $viewConf['label'], 'label' => $viewConf['label'],
@ -2359,6 +2359,25 @@ class LSsession {
return self :: $ldapServer['emailSender']; 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 * Ajout d'une information d'aide
* *

View file

@ -24,13 +24,15 @@ require_once 'core.php';
if(LSsession :: startLSsession()) { 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')); LStemplate :: assign('pagetitle',_('Home'));
// Template // Template
LSsession :: setTemplate('accueil.tpl'); LSsession :: setTemplate('accueil.tpl');
} }
// Affichage des retours d'erreurs // Display template
LSsession :: displayTemplate(); LSsession :: displayTemplate();
?>