From d983e86605bfe2ff336a70741dd552c99a5508e2 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Mon, 5 Nov 2018 20:21:46 +0100 Subject: [PATCH] #140 account expiration notification jobs --- lam/HISTORY | 1 + .../manual-sources/chapter-configuration.xml | 268 ++++++++++++++++++ .../jobs_freeradiusAccountExpiration.png | Bin 0 -> 30588 bytes .../images/jobs_qmailAccountExpiration.png | Bin 0 -> 30746 bytes .../images/jobs_windowsAccountExpiration.png | Bin 0 -> 33352 bytes lam/lib/modules/freeRadius.inc | 86 +++++- lam/lib/modules/windowsUser.inc | 2 +- 7 files changed, 355 insertions(+), 2 deletions(-) create mode 100644 lam/docs/manual-sources/images/jobs_freeradiusAccountExpiration.png create mode 100644 lam/docs/manual-sources/images/jobs_qmailAccountExpiration.png create mode 100644 lam/docs/manual-sources/images/jobs_windowsAccountExpiration.png diff --git a/lam/HISTORY b/lam/HISTORY index 568fcf4f..a3fcf7c6 100644 --- a/lam/HISTORY +++ b/lam/HISTORY @@ -4,6 +4,7 @@ December 2018 6.6 - Windows users: manage "departmentNumber" (needs to be activated via LAM server profile) - LAM Pro: -> Easy setting of background color in self service profile + -> Cron jobs: added Windows/Qmail/FreeRadius account expiration notification jobs 25.09.2018 6.5 diff --git a/lam/docs/manual-sources/chapter-configuration.xml b/lam/docs/manual-sources/chapter-configuration.xml index 6e05c95a..28daadfb 100644 --- a/lam/docs/manual-sources/chapter-configuration.xml +++ b/lam/docs/manual-sources/chapter-configuration.xml @@ -907,6 +907,11 @@ mysql> GRANT ALL PRIVILEGES ON lam_cron.* TO 'lam_cron'@'localhost'; users about password expiration + + Windows: + Notify users about account expiration + + Windows: Delete or move expired accounts @@ -917,10 +922,21 @@ mysql> GRANT ALL PRIVILEGES ON lam_cron.* TO 'lam_cron'@'localhost'; Delete or move expired accounts + + FreeRadius: + Notify users about account expiration + + Qmail: Delete or move expired accounts + + + Qmail: + Notify users about account expiration +
@@ -1373,6 +1389,90 @@ mysql> GRANT ALL PRIVILEGES ON lam_cron.* TO 'lam_cron'@'localhost'; "2016-12-31".
+
+ Windows: Notify users about account expiration + + This will send your users an email reminder before their whole + account expires. + + You need to activate the Windows module for users to be able + to add this job. The job can be added multiple times (e.g. to send a + second warning at a later time). + + + + + + + Options + + + + + Option + + Description + + + + From address + + The email address to set as FROM. + + + + Reply-to address + + Optional Reply-to address for email. + + + + CC address + + Optional CC mail address. + + + + BCC address + + Optional BCC mail address. + + + + Subject + + The email subject line. Supports wildcards, see + below. + + + + Text + + The email body text. Supports wildcards, see + below. + + + + Notification period + + Number of days to notify before account + expires. + + + +
Wildcards:
+ + You can enter LDAP attributes as wildcards in the form + @@ATTRIBUTE_NAME@@. E.g. to add the user's common name use "@@cn@@". + For the common name it would be "@@cn@@". + + There are also two special wildcards for the expiration date. + @@EXPIRE_DATE_DDMMYYYY@@ will print the date as e.g. "31.12.2016". + @@EXPIRE_DATE_YYYYMMDD@@ will print the date as e.g. + "2016-12-31". +
+
Windows: Delete or move expired accounts @@ -1469,6 +1569,90 @@ mysql> GRANT ALL PRIVILEGES ON lam_cron.* TO 'lam_cron'@'localhost';
+
+ FreeRadius: Notify users about account expiration + + This will send your users an email reminder before their + FreeRadius account expires. + + You need to activate the FreeRadius module for users to be + able to add this job. The job can be added multiple times (e.g. to + send a second warning at a later time). + + + + + + + Options + + + + + Option + + Description + + + + From address + + The email address to set as FROM. + + + + Reply-to address + + Optional Reply-to address for email. + + + + CC address + + Optional CC mail address. + + + + BCC address + + Optional BCC mail address. + + + + Subject + + The email subject line. Supports wildcards, see + below. + + + + Text + + The email body text. Supports wildcards, see + below. + + + + Notification period + + Number of days to notify before account + expires. + + + +
Wildcards:
+ + You can enter LDAP attributes as wildcards in the form + @@ATTRIBUTE_NAME@@. E.g. to add the user's common name use "@@cn@@". + For the common name it would be "@@cn@@". + + There are also two special wildcards for the expiration date. + @@EXPIRE_DATE_DDMMYYYY@@ will print the date as e.g. "31.12.2016". + @@EXPIRE_DATE_YYYYMMDD@@ will print the date as e.g. + "2016-12-31". +
+
Qmail: Delete or move expired accounts @@ -1517,6 +1701,90 @@ mysql> GRANT ALL PRIVILEGES ON lam_cron.* TO 'lam_cron'@'localhost';
+ +
+ Qmail: Notify users about account expiration + + This will send your users an email reminder before their Qmail + account expires. + + You need to activate the Qmail module for users to be able to + add this job. The job can be added multiple times (e.g. to send a + second warning at a later time). + + + + + + + Options + + + + + Option + + Description + + + + From address + + The email address to set as FROM. + + + + Reply-to address + + Optional Reply-to address for email. + + + + CC address + + Optional CC mail address. + + + + BCC address + + Optional BCC mail address. + + + + Subject + + The email subject line. Supports wildcards, see + below. + + + + Text + + The email body text. Supports wildcards, see + below. + + + + Notification period + + Number of days to notify before account + expires. + + + +
Wildcards:
+ + You can enter LDAP attributes as wildcards in the form + @@ATTRIBUTE_NAME@@. E.g. to add the user's common name use "@@cn@@". + For the common name it would be "@@cn@@". + + There are also two special wildcards for the expiration date. + @@EXPIRE_DATE_DDMMYYYY@@ will print the date as e.g. "31.12.2016". + @@EXPIRE_DATE_YYYYMMDD@@ will print the date as e.g. + "2016-12-31". +
diff --git a/lam/docs/manual-sources/images/jobs_freeradiusAccountExpiration.png b/lam/docs/manual-sources/images/jobs_freeradiusAccountExpiration.png new file mode 100644 index 0000000000000000000000000000000000000000..83da57b1f1411e3ec79eb4ae3f961d9727fce206 GIT binary patch literal 30588 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 literal 0 HcmV?d00001 diff --git a/lam/docs/manual-sources/images/jobs_windowsAccountExpiration.png b/lam/docs/manual-sources/images/jobs_windowsAccountExpiration.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d1c3783083f6ac162de8b24ceee0509b4cdd8b GIT binary patch literal 33352 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%0D()#GJL~zdBM|cJK`Q Pm5(3DO61+wd-*>AeX>Z- literal 0 HcmV?d00001 diff --git a/lam/lib/modules/freeRadius.inc b/lam/lib/modules/freeRadius.inc index efdaa034..261dcfdf 100644 --- a/lam/lib/modules/freeRadius.inc +++ b/lam/lib/modules/freeRadius.inc @@ -776,7 +776,8 @@ class freeRadius extends baseModule { */ public function getSupportedJobs(&$config) { return array( - new FreeRadiusAccountExpirationCleanupJob() + new FreeRadiusAccountExpirationCleanupJob(), + new FreeRadiusAccountExpirationNotifyJob() ); } @@ -856,6 +857,89 @@ if (interface_exists('\LAM\JOB\Job', false)) { } + /** + * Job to notify users about account expiration. + * + * @package jobs + */ + class FreeRadiusAccountExpirationNotifyJob extends \LAM\JOB\PasswordExpirationJob { + + /** + * {@inheritDoc} + * @see \LAM\JOB\Job::getAlias() + */ + public function getAlias() { + return _('FreeRadius') . ': ' . _('Notify users about account expiration'); + } + + /** + * {@inheritDoc} + * @see \LAM\JOB\PasswordExpirationJob::getDescription() + */ + public function getDescription() { + return _('This job sends out emails to inform your users that their account will expire soon.'); + } + + /** + * {@inheritDoc} + * @see \LAM\JOB\PasswordExpirationJob::findUsers() + */ + protected function findUsers($jobID, $options) { + // read users + $sysattrs = array('radiusExpiration', 'mail'); + $attrs = $this->getAttrWildcards($jobID, $options); + $attrs = array_values(array_unique(array_merge($attrs, $sysattrs))); + $userResults = searchLDAPByFilter('(&(radiusExpiration=*)(mail=*))', $attrs, array('user')); + return $userResults; + } + + /** + * {@inheritDoc} + * @see \LAM\JOB\PasswordExpirationJob::checkSingleUser() + */ + protected function checkSingleUser($jobID, $options, &$pdo, $now, $policyOptions, $user, $isDryRun) { + $dn = $user['dn']; + // get time when account expires + $expirationTime = DateTime::createFromFormat('d M Y H:i', $user['radiusexpiration'][0], new DateTimeZone('UTC')); + $this->jobResultLog->logDebug("Account expiration on " . $expirationTime->format('Y-m-d')); + // skip if account itself is expired + if ($expirationTime <= $now) { + $this->jobResultLog->logDebug($dn . ' already expired'); + return; + } + $numDaysToWarn = $options[$this->getConfigPrefix() . '_mailNotificationPeriod' . $jobID][0]; + $this->jobResultLog->logDebug("Number of days before warning " . $numDaysToWarn); + // calculate time of notification + $notifyTime = clone $expirationTime; + $notifyTime->sub(new DateInterval('P' . $numDaysToWarn . 'D')); + $notifyTime->setTimeZone(getTimeZone()); + $this->jobResultLog->logDebug("Account expiration notification on " . $notifyTime->format('Y-m-d H:i')); + // skip if notification is in the future + if ($notifyTime > $now) { + $this->jobResultLog->logDebug($dn . ' does not need notification yet.'); + return; + } + $dbLastChange = $this->getDBLastPwdChangeTime($jobID, $pdo, $dn); + // skip entries where mail was already sent + if ($dbLastChange == $user['radiusexpiration'][0]) { + $this->jobResultLog->logDebug($dn . ' was already notified.'); + return; + } + if ($isDryRun) { + // no action for dry run + $this->jobResultLog->logInfo('Not sending email to ' . $dn . ' because of dry run.'); + return; + } + // send email + $success = $this->sendMail($options, $jobID, $user, $expirationTime); + // update DB if mail was sent successfully + if ($success) { + $this->setDBLastPwdChangeTime($jobID, $pdo, $dn, $user['radiusexpiration'][0]); + } + } + + } + } diff --git a/lam/lib/modules/windowsUser.inc b/lam/lib/modules/windowsUser.inc index 7f408e4d..38885919 100644 --- a/lam/lib/modules/windowsUser.inc +++ b/lam/lib/modules/windowsUser.inc @@ -3849,7 +3849,7 @@ if (interface_exists('\LAM\JOB\Job', false)) { $notifyTime = clone $expirationTime; $notifyTime->sub(new DateInterval('P' . $numDaysToWarn . 'D')); $notifyTime->setTimeZone(getTimeZone()); - $this->jobResultLog->logDebug("Password notification on " . $notifyTime->format('Y-m-d H:i')); + $this->jobResultLog->logDebug("Account expiration notification on " . $notifyTime->format('Y-m-d H:i')); // skip if notification is in the future if ($notifyTime > $now) { $this->jobResultLog->logDebug($dn . ' does not need notification yet.');