diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Tests.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Tests.pm
index cd74c1acf..d90f37648 100644
--- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Tests.pm
+++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Tests.pm
@@ -776,6 +776,14 @@ sub tests {
return 1;
},
+ # Notification system required with removed SF notification
+ sfRemovedNotification => sub {
+ return 1 unless ( $conf->{sfRemovedMsgRule} );
+ return ( -1,
+'Notification system must be enabled to display a notification if a SF is removed'
+ ) if ( $conf->{sfRemovedUseNotif} and not $conf->{notification} );
+ return 1;
+ },
};
}
diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/ar.json b/lemonldap-ng-manager/site/htdocs/static/languages/ar.json
index ce120c1a8..91a5492c1 100644
--- a/lemonldap-ng-manager/site/htdocs/static/languages/ar.json
+++ b/lemonldap-ng-manager/site/htdocs/static/languages/ar.json
@@ -827,7 +827,7 @@
"sfaTitle":"Second Factors Authentication",
"sfExtra":"Additional second factors",
"sfRequired":"Require 2FA",
-"sfRemovedNotification":"Display a message if an expired SF is removed",
+"sfRemovedNotification":"Warn if an expired SF is removed",
"sfRemovedMsgRule":"تفعيل",
"sfRemovedUseNotif":"Use Notifications plugin",
"sfRemovedNotifMsg":"Notification message",
diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/de.json b/lemonldap-ng-manager/site/htdocs/static/languages/de.json
index 1027d4d2d..947fddab8 100644
--- a/lemonldap-ng-manager/site/htdocs/static/languages/de.json
+++ b/lemonldap-ng-manager/site/htdocs/static/languages/de.json
@@ -827,7 +827,7 @@
"sfaTitle":"Second Factors Authentication",
"sfExtra":"Additional second factors",
"sfRequired":"Require 2FA",
-"sfRemovedNotification":"Display a message if an expired SF is removed",
+"sfRemovedNotification":"Warn if an expired SF is removed",
"sfRemovedMsgRule":"Activation",
"sfRemovedUseNotif":"Use Notifications plugin",
"sfRemovedNotifMsg":"Notification message",
diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/en.json b/lemonldap-ng-manager/site/htdocs/static/languages/en.json
index ebd8404eb..f20443331 100644
--- a/lemonldap-ng-manager/site/htdocs/static/languages/en.json
+++ b/lemonldap-ng-manager/site/htdocs/static/languages/en.json
@@ -827,7 +827,7 @@
"sfaTitle":"Second Factors Authentication",
"sfExtra":"Additional second factors",
"sfRequired":"Require 2FA",
-"sfRemovedNotification":"Display a message if an expired SF is removed",
+"sfRemovedNotification":"Warn if an expired SF is removed",
"sfRemovedMsgRule":"Activation",
"sfRemovedUseNotif":"Use Notifications plugin",
"sfRemovedNotifMsg":"Notification message",
diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/fr.json b/lemonldap-ng-manager/site/htdocs/static/languages/fr.json
index 1877bba07..c0d3382bd 100644
--- a/lemonldap-ng-manager/site/htdocs/static/languages/fr.json
+++ b/lemonldap-ng-manager/site/htdocs/static/languages/fr.json
@@ -827,7 +827,7 @@
"sfaTitle":"Seconds Facteurs d'Authentification",
"sfExtra":"Seconds facteurs additionnels",
"sfRequired":"Exiger 2FA",
-"sfRemovedNotification":"Afficher un message si un SF expiré a été supprimé",
+"sfRemovedNotification":"Avertir si un SF expiré a été supprimé",
"sfRemovedMsgRule":"Activation",
"sfRemovedUseNotif":"Utiliser les notifications",
"sfRemovedNotifMsg":"Message de la notification",
diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/it.json b/lemonldap-ng-manager/site/htdocs/static/languages/it.json
index f990627e6..895c5440f 100644
--- a/lemonldap-ng-manager/site/htdocs/static/languages/it.json
+++ b/lemonldap-ng-manager/site/htdocs/static/languages/it.json
@@ -827,7 +827,7 @@
"sfaTitle":"Autenticazione a due fattori",
"sfExtra":"Additional second factors",
"sfRequired":"Richiedi 2FA",
-"sfRemovedNotification":"Display a message if an expired SF is removed",
+"sfRemovedNotification":"Warn if an expired SF is removed",
"sfRemovedMsgRule":"Attivazione",
"sfRemovedUseNotif":"Use Notifications plugin",
"sfRemovedNotifMsg":"Notification message",
diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/tr.json b/lemonldap-ng-manager/site/htdocs/static/languages/tr.json
index 8a9b5e6ae..b0c15ca3d 100644
--- a/lemonldap-ng-manager/site/htdocs/static/languages/tr.json
+++ b/lemonldap-ng-manager/site/htdocs/static/languages/tr.json
@@ -827,7 +827,7 @@
"sfaTitle":"İki Faktörlü Kimlik Doğrulaması",
"sfExtra":"Ek ikinci faktörler",
"sfRequired":"2FA gerektir",
-"sfRemovedNotification":"Süresi dolan bir SF kaldırıldığında bir mesaj göster",
+"sfRemovedNotification":"Warn if an expired SF is removed",
"sfRemovedMsgRule":"Aktivasyon",
"sfRemovedUseNotif":"Bildirimler eklentisini kullan",
"sfRemovedNotifMsg":"Bildirim mesajı",
diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/vi.json b/lemonldap-ng-manager/site/htdocs/static/languages/vi.json
index 9e7a42282..ad9789f30 100644
--- a/lemonldap-ng-manager/site/htdocs/static/languages/vi.json
+++ b/lemonldap-ng-manager/site/htdocs/static/languages/vi.json
@@ -827,7 +827,7 @@
"sfaTitle":"Second Factors Authentication",
"sfExtra":"Additional second factors",
"sfRequired":"Require 2FA",
-"sfRemovedNotification":"Display a message if an expired SF is removed",
+"sfRemovedNotification":"Warn if an expired SF is removed",
"sfRemovedMsgRule":"Kích hoạt",
"sfRemovedUseNotif":"Use Notifications plugin",
"sfRemovedNotifMsg":"Notification message",
diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/zh.json b/lemonldap-ng-manager/site/htdocs/static/languages/zh.json
index 3cc1fe536..90e6112be 100644
--- a/lemonldap-ng-manager/site/htdocs/static/languages/zh.json
+++ b/lemonldap-ng-manager/site/htdocs/static/languages/zh.json
@@ -827,7 +827,7 @@
"sfaTitle":"Second Factors Authentication",
"sfExtra":"Additional second factors",
"sfRequired":"Require 2FA",
-"sfRemovedNotification":"Display a message if an expired SF is removed",
+"sfRemovedNotification":"Warn if an expired SF is removed",
"sfRemovedMsgRule":"激活",
"sfRemovedUseNotif":"Use Notifications plugin",
"sfRemovedNotifMsg":"Notification message",
diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Engines/Default.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Engines/Default.pm
index 092450e16..83a403c72 100644
--- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Engines/Default.pm
+++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Engines/Default.pm
@@ -241,9 +241,10 @@ sub run {
# Display message if required
if ( $self->sfMsgRule->( $req, $req->sessionInfo ) ) {
- my $uid = $req->user;
- my $date = strftime "%Y-%m-%d", localtime;
- my $ref = $self->conf->{sfRemovedNotifRef} || 'RemoveSF';
+ my $uid = $req->user;
+ my $date = strftime "%Y-%m-%d", localtime;
+ my $ref = $self->conf->{sfRemovedNotifRef} || 'RemoveSF';
+ $ref .= '-' . time();
my $title = $self->conf->{sfRemovedNotifTitle}
|| 'Second factor notification';
my $msg = $self->conf->{sfRemovedNotifMsg}
@@ -255,8 +256,11 @@ sub run {
? { trspan => "expired2Fremoved, $removed" }
: { trspan => "oneExpired2Fremoved" };
+ my $notifEngine = $self->p->loadedModules->{
+ 'Lemonldap::NG::Portal::Plugins::Notifications'};
+
my $res =
- $self->conf->{sfRemovedUseNotif}
+ ( $self->conf->{sfRemovedUseNotif} && $notifEngine )
? $self->createNotification( $req, $uid, $date, $ref, $title,
$msg )
: $self->displayTemplate( $req, 'simpleInfo', $params );
diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Plugin.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Plugin.pm
index 3d2885803..e594ad834 100644
--- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Plugin.pm
+++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Plugin.pm
@@ -78,6 +78,7 @@ sub createNotification {
my $notifEngine = $self->p->loadedModules->{
'Lemonldap::NG::Portal::Plugins::Notifications'};
+ $self->logger->debug("Loading Notifications plugin...");
return PE_ERROR unless $notifEngine;
# Prepare notification
diff --git a/lemonldap-ng-portal/site/templates/bootstrap/menu.tpl b/lemonldap-ng-portal/site/templates/bootstrap/menu.tpl
index c2d3911e0..785f6470c 100644
--- a/lemonldap-ng-portal/site/templates/bootstrap/menu.tpl
+++ b/lemonldap-ng-portal/site/templates/bootstrap/menu.tpl
@@ -72,10 +72,10 @@
sfaManager
-
-