Add a config parameter to enable/disable login history (Lemonldap-389)

This commit is contained in:
François-Xavier Deltombe 2012-02-09 15:00:35 +00:00
parent 1c91be49ee
commit 6c6591fd83
4 changed files with 40 additions and 38 deletions

View File

@ -126,7 +126,7 @@ sub unserialize {
|samlSPMetaDataOptions
|samlSPMetaDataXML
|samlStorageOptions
|sessionDataToDisplay
|sessionDataToRemember
|vhostOptions
)$/
and $v ||= {} and not ref($v)

View File

@ -289,7 +289,7 @@ sub struct {
portalCustomization => {
_nodes => [
qw(portalSkin portalAutocomplete portalUserAttr portalOpenLinkInNewWindow portalAntiFrame passwordManagement loginDisplay)
qw(portalSkin portalAutocomplete portalUserAttr portalOpenLinkInNewWindow portalAntiFrame passwordManagement)
],
_help => 'portalcustom',
@ -312,17 +312,6 @@ sub struct {
hideOldPassword => 'bool:/hideOldPassword',
mailOnPasswordChange => 'bool:/mailOnPasswordChange',
},
loginDisplay => {
_nodes => [qw(successLoginNumber failedLoginNumber cn:sessionDataToDisplay)],
_help => 'loginDisplay',
successLoginNumber => 'int:/successLoginNumber',
failedLoginNumber => 'int:/failedLoginNumber',
sessionDataToDisplay => {
_nodes => ['hash:/sessionDataToDisplay:loginDisplay:btext'],
_js => 'hashRoot',
},
},
},
},
@ -811,7 +800,7 @@ sub struct {
# OTHER PARAMETERS
advancedParams => {
_nodes => [
qw(customFunctions n:soap n:notifications n:passwordManagement n:security n:redirection n:portalRedirection n:specialHandlers cn:logoutServices)
qw(customFunctions n:soap n:loginHistory n:notifications n:passwordManagement n:security n:redirection n:portalRedirection n:specialHandlers cn:logoutServices)
],
_help => 'advanced',
@ -823,6 +812,18 @@ sub struct {
exportedAttr => 'text:/exportedAttr',
},
loginHistory => {
_nodes => [qw(loginHistoryEnabled successLoginNumber failedLoginNumber cn:sessionDataToRemember)],
_help => 'loginHistory',
loginHistoryEnabled => 'bool:/loginHistoryEnabled',
successLoginNumber => 'int:/successLoginNumber',
failedLoginNumber => 'int:/failedLoginNumber',
sessionDataToRemember => {
_nodes => ['hash:/sessionDataToRemember:loginHistory:btext'],
_js => 'hashRoot',
},
},
notifications => {
_nodes => [
qw(notification notificationStorage cn:notificationStorageOptions notificationWildcard notificationXSLTfile)
@ -1479,6 +1480,7 @@ sub testStruct {
warnTest => $noAssign,
},
},
loginHistoryEnabled => $boolean,
logoutServices => {
keyTest => qr/^\w+$/,
keyMsgFail => 'Bad name',
@ -1559,7 +1561,7 @@ sub testStruct {
test => qr/^(?:0|1|2|3)$/,
msgFail => 'securedCookie must be 0, 1, 2 or 3',
},
sessionDataToDisplay => {
sessionDataToRemember => {
keyTest => qr/^[\w-]+$/,
keyMsgFail => 'Invalid session data',
},

View File

@ -188,8 +188,8 @@ sub en {
ldapTimeout => 'Timeout',
ldapUsePasswordResetAttribute => 'Use reset attribute',
ldapVersion => 'Version',
loginDisplay => 'Login display',
loginHistory => 'Login history',
loginHistoryEnabled => 'Activation',
logoutServices => 'Logout forward',
logParams => 'Logs',
macros => 'Macros',
@ -300,7 +300,7 @@ sub en {
security => 'Security',
session => 'session',
sessions => 'sessions',
sessionDataToDisplay => 'Session data to display',
sessionDataToRemember => 'Session data to store',
sessionDeleted => 'The session was deleted',
sessionParams => 'Sessions',
sessionStartedAt => 'Session started on',
@ -635,20 +635,20 @@ sub fr {
ldapTimeout => 'Temps maximum d\'inactivité',
ldapUsePasswordResetAttribute =>
'Utiliser l\'attribut de réinitialisation',
ldapVersion => 'Version',
loginDisplay => 'Affichage des connexions',
loginHistory => 'Historique des connexions',
logoutServices => 'Transfert de la déconnexion',
logParams => 'Journalisation',
macros => 'Macros',
mailBody => 'Contenu du message de succès',
mailCharset => 'Charset',
mailConfirmBody => 'Contenu du message de confirmation',
mailConfirmSubject => 'Sujet du message de confirmation',
mailContent => 'Contenu du mail',
mailFrom => 'Expéditeur du message',
mailHeaders => 'En-têtes du mail',
mailLDAPFilter => 'Filtre mail',
ldapVersion => 'Version',
loginHistory => 'Historique des connexions',
loginHistoryEnabled => 'Activation',
logoutServices => 'Transfert de la déconnexion',
logParams => 'Journalisation',
macros => 'Macros',
mailBody => 'Contenu du message de succès',
mailCharset => 'Charset',
mailConfirmBody => 'Contenu du message de confirmation',
mailConfirmSubject => 'Sujet du message de confirmation',
mailContent => 'Contenu du mail',
mailFrom => 'Expéditeur du message',
mailHeaders => 'En-têtes du mail',
mailLDAPFilter => 'Filtre mail',
mailOnPasswordChange =>
"Envoi d'un mail quand le mot de passe est changé",
mailOther => 'Autres',
@ -753,7 +753,7 @@ sub fr {
security => 'Sécurité',
session => 'session',
sessions => 'sessions',
sessionDataToDisplay => 'Données de session à afficher',
sessionDataToRemember => 'Données de session à conserver',
sessionDeleted => 'La session a été supprimée',
sessionParams => 'Sessions',
sessionStartedAt => 'Session démarrée le ',

View File

@ -2032,7 +2032,7 @@ sub authenticate {
sub registerLogin {
my ( $self, $errorCode ) = @_;
if ( $self->{portalDisplayLoginHistory} ) {
if ( $self->{loginHistoryEnabled} ) {
my $history = $self->{sessionInfo}->{loginHistory} ||= {};
my $type = ( $errorCode ? "failed" : "success" ) . "Login";
@ -2128,7 +2128,7 @@ sub _sumUpSession {
? {}
: { user => $session->{ $self->{whatToTrace} } };
$res->{$_} = $session->{$_}
foreach ( "_utime", "ipAddr", keys %{ $self->{sessionDataToDisplay} } );
foreach ( "_utime", "ipAddr", keys %{ $self->{sessionDataToRemember} } );
return $res;
}
@ -2152,8 +2152,8 @@ sub mkSessionArray {
if ($displayUser);
$tmp .= "<th>" . &Lemonldap::NG::Portal::_i18n::msg(PM_DATE) . "</th>";
$tmp .= "<th>" . &Lemonldap::NG::Portal::_i18n::msg(PM_IP) . "</th>";
$tmp .= "<th>" . $self->{sessionDataToDisplay}->{$_} . "</th>"
foreach ( keys %{ $self->{sessionDataToDisplay} } );
$tmp .= "<th>" . $self->{sessionDataToRemember}->{$_} . "</th>"
foreach ( keys %{ $self->{sessionDataToRemember} } );
$tmp .= '<th>' . &Lemonldap::NG::Portal::_i18n::msg(PM_ERROR_MSG) . '</th>'
if ($displayError);
$tmp .= '</tr>';
@ -2164,8 +2164,8 @@ sub mkSessionArray {
$tmp .=
"<td><script>var _date=new Date($session->{_utime}*1000);document.write(_date.toLocaleString());</script></td>";
$tmp .= "<td>$session->{ipAddr}</td>";
$tmp .= "<td>$session->{$_}</td>"
foreach ( keys %{ $self->{sessionDataToDisplay} } );
$tmp .= "<td>" . ( $session->{$_} || "") . "</td>"
foreach ( keys %{ $self->{sessionDataToRemember} } );
$tmp .= "<td>$session->{error}</td>" if ($displayError);
$tmp .= "</tr>";
}