- LSsession_login && LSsession_recoverPassword :

-> Activation/Desactivation de la possibilite du recoverPassword en fonction
		 du serveur selectionne
This commit is contained in:
Benjamin Renard 2008-10-14 17:02:18 +00:00
parent 6710a1a51f
commit 380df2166a
8 changed files with 92 additions and 13 deletions

View file

@ -58,10 +58,14 @@ dl.loginform {
margin-left: 1em; margin-left: 1em;
} }
#LSsession_lostPassword { #LSsession_recoverPassword {
float: right; float: right;
font-size: 0.8em; font-size: 0.8em;
text-decoration: none; text-decoration: none;
color: #53504b; color: #53504b;
font-weight: bold; font-weight: bold;
} }
.LSsession_recoverPassword_hidden {
visibility: hidden;
}

View file

@ -54,10 +54,14 @@ dl.loginform {
margin-left: 1em; margin-left: 1em;
} }
#LSsession_lostPassword { #LSsession_recoverPassword {
float: right; float: right;
font-size: 0.8em; font-size: 0.8em;
text-decoration: none; text-decoration: none;
color: #4096b8; color: #4096b8;
font-weight: bold; font-weight: bold;
} }
.LSsession_recoverPassword_hidden {
visibility: hidden;
}

View file

@ -734,9 +734,7 @@ class LSsession {
$GLOBALS['Smarty'] -> assign('loginform_label_user',_('Identifiant')); $GLOBALS['Smarty'] -> assign('loginform_label_user',_('Identifiant'));
$GLOBALS['Smarty'] -> assign('loginform_label_pwd',_('Mot de passe')); $GLOBALS['Smarty'] -> assign('loginform_label_pwd',_('Mot de passe'));
$GLOBALS['Smarty'] -> assign('loginform_label_submit',_('Connexion')); $GLOBALS['Smarty'] -> assign('loginform_label_submit',_('Connexion'));
if (isset($GLOBALS['LSconfig']['ldap_servers'][0]['recoverPassword'])) { $GLOBALS['Smarty'] -> assign('loginform_label_recoverPassword',_('Mot de passe oublié ?'));
$GLOBALS['Smarty'] -> assign('loginform_label_lostpassword',_('Mot de passe oublié ?'));
}
$this -> setTemplate('login.tpl'); $this -> setTemplate('login.tpl');
$this -> addJSscript('LSsession_login.js'); $this -> addJSscript('LSsession_login.js');
@ -795,7 +793,7 @@ class LSsession {
$GLOBALS['Smarty'] -> assign('recoverpassword_msg',$recoverpassword_msg); $GLOBALS['Smarty'] -> assign('recoverpassword_msg',$recoverpassword_msg);
$this -> setTemplate('recoverpassword.tpl'); $this -> setTemplate('recoverpassword.tpl');
$this -> addJSscript('LSsession_recoverpassword.js'); $this -> addJSscript('LSsession_recoverPassword.js');
} }
/** /**

View file

@ -4,6 +4,7 @@ var LSsession_login = new Class({
if ( ! this.select_ldapserver ) if ( ! this.select_ldapserver )
return; return;
this.loading_zone = $('loading_zone'); this.loading_zone = $('loading_zone');
this.recoverPassword = $('LSsession_recoverPassword');
this.select_ldapserver.addEvent('change',this.onLdapServerChanged.bind(this)); this.select_ldapserver.addEvent('change',this.onLdapServerChanged.bind(this));
this.onLdapServerChanged(); this.onLdapServerChanged();
}, },
@ -49,6 +50,12 @@ var LSsession_login = new Class({
else { else {
this.loginformLevelHide(); this.loginformLevelHide();
} }
if (data.recoverPassword) {
this.recoverPassword.removeClass('LSsession_recoverPassword_hidden');
}
else {
this.recoverPassword.addClass('LSsession_recoverPassword_hidden');
}
} }
else { else {
this.loginformLevelHide(); this.loginformLevelHide();

View file

@ -0,0 +1,56 @@
var LSsession_recoverPassword = new Class({
initialize: function(){
this.select_ldapserver = $('LSsession_ldapserver');
if ( ! this.select_ldapserver )
return;
this.loading_zone = $('loading_zone');
this.select_ldapserver.addEvent('change',this.onLdapServerChanged.bind(this));
this.onLdapServerChanged();
},
disableInput: function() {
$$('input').each(function(el) {
el.setProperty('disabled','1');
});
},
enableInput: function() {
$$('input').each(function(el) {
el.setProperty('disabled','');
});
},
onLdapServerChanged: function(){
this.disableInput();
var imgload = varLSdefault.loadingImgDisplay(this.loading_zone,'inside','big');
var server = this.select_ldapserver.value;
var data = {
template: 'recoverPassword',
action: 'onLdapServerChanged',
server: server,
imgload: imgload
};
new Request({url: 'index_ajax.php', data: data, onSuccess: this.onLdapServerChangedComplete.bind(this)}).send();
},
onLdapServerChangedComplete: function(responseText, responseXML){
varLSdefault.loadingImgHide();
var data = JSON.decode(responseText);
LSdebug(data);
if ( varLSdefault.checkAjaxReturn(data) ) {
if (data.recoverPassword) {
this.enableInput();
}
}
},
loginformLevelHide: function(){
$$('.loginform-level').each(function(el) {
el.setStyle('display','none');
});
$('LSsession_topDn').empty();
}
});
window.addEvent(window.ie ? 'load' : 'domready', function() {
varLSsession_recoverPassword = new LSsession_recoverPassword();
});

View file

@ -5,7 +5,7 @@ require_once 'includes/class/class.LSsession.php';
$GLOBALS['LSsession'] = new LSsession(); $GLOBALS['LSsession'] = new LSsession();
if ($_REQUEST['template'] != 'login') { if (($_REQUEST['template'] != 'login')&&($_REQUEST['template'] != 'recoverPassword')) {
if ( !$GLOBALS['LSsession'] -> startLSsession() ) { if ( !$GLOBALS['LSsession'] -> startLSsession() ) {
$_ERRORS = 'LSsession : Impossible d\'initialiser la LSsession.'; $_ERRORS = 'LSsession : Impossible d\'initialiser la LSsession.';
} }
@ -18,17 +18,26 @@ if (!isset($_ERRORS)) {
case 'onLdapServerChanged': case 'onLdapServerChanged':
if ( isset($_REQUEST['server']) ) { if ( isset($_REQUEST['server']) ) {
$GLOBALS['LSsession'] -> setLdapServer($_REQUEST['server']); $GLOBALS['LSsession'] -> setLdapServer($_REQUEST['server']);
$data = array();
if ( $GLOBALS['LSsession'] -> LSldapConnect() ) { if ( $GLOBALS['LSsession'] -> LSldapConnect() ) {
session_start(); session_start();
$list = $GLOBALS['LSsession'] -> getSubDnLdapServerOptions($_SESSION['LSsession_topDn']); $list = $GLOBALS['LSsession'] -> getSubDnLdapServerOptions($_SESSION['LSsession_topDn']);
if (is_string($list)) { if (is_string($list)) {
$list="<select name='LSsession_topDn' id='LSsession_topDn'>".$list."</select>"; $data['list_topDn'] = "<select name='LSsession_topDn' id='LSsession_topDn'>".$list."</select>";
$data = array( $data['levelLabel'] = $GLOBALS['LSsession'] -> getLevelLabel();
'list_topDn' => $list,
'levelLabel' => $GLOBALS['LSsession'] -> getLevelLabel()
);
} }
} }
$data['recoverPassword'] = isset($GLOBALS['LSsession'] -> ldapServer['recoverPassword']);
}
break;
}
break;
case 'recoverPassword':
switch($_REQUEST['action']) {
case 'onLdapServerChanged':
if ( isset($_REQUEST['server']) ) {
$GLOBALS['LSsession'] -> setLdapServer($_REQUEST['server']);
$data=array('recoverPassword' => isset($GLOBALS['LSsession'] -> ldapServer['recoverPassword']));
} }
break; break;
} }

View file

@ -35,7 +35,7 @@
<dd><input type='submit' value='{$loginform_label_submit}' /></dd> <dd><input type='submit' value='{$loginform_label_submit}' /></dd>
</dl> </dl>
</form> </form>
<a href='index.php?LSsession_recoverPassword' id='LSsession_lostPassword'>{$loginform_label_lostpassword}</a> <a href='index.php?LSsession_recoverPassword' id='LSsession_recoverPassword'>{$loginform_label_recoverPassword}</a>
</div> </div>
</body> </body>
</html> </html>

View file

@ -12,6 +12,7 @@
<div id='LSerror'> <div id='LSerror'>
{$LSerrors} {$LSerrors}
</div> </div>
<div id='LSinfos'>{$LSinfos}</div>
<div id='LSdebug'> <div id='LSdebug'>
<a href='#' id='LSdebug_hidden'>X</a> <a href='#' id='LSdebug_hidden'>X</a>
<div id='LSdebug_infos'>{if $LSdebug != ''}{$LSdebug}{/if}</div> <div id='LSdebug_infos'>{if $LSdebug != ''}{$LSdebug}{/if}</div>