From ce3d5930be3ef7995ff9d4c1de521df86de49beb Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sat, 23 Jul 2016 10:46:50 +0200 Subject: [PATCH] 389ds password mail job --- lam/HISTORY | 5 +- lam/docs/manual-sources/howto.xml | 93 ++++++++++++++++++ .../images/jobs_389dsPasswordMail1.png | Bin 0 -> 32877 bytes lam/help/help.inc | 1 + lam/lib/modules/shadowAccount.inc | 9 -- lam/lib/modules/windowsUser.inc | 9 -- 6 files changed, 98 insertions(+), 19 deletions(-) create mode 100644 lam/docs/manual-sources/images/jobs_389dsPasswordMail1.png diff --git a/lam/HISTORY b/lam/HISTORY index 8188ee61..dba2912f 100644 --- a/lam/HISTORY +++ b/lam/HISTORY @@ -2,7 +2,10 @@ September 2016 - Windows: allow to show effective members of a group - LAM Pro: -> Group of names/members + roles: allow to show effective members of a group - -> Cron jobs: Move or delete expired accounts (Shadow, Windows, qmail, FreeRadius) + -> Cron jobs: + * Move or delete expired accounts (Shadow, Windows, qmail, FreeRadius) + * 389ds: added job to notify before password expires + -> 389ds: manage password expiration time with module "Account locking" 21.06.2016 5.4 diff --git a/lam/docs/manual-sources/howto.xml b/lam/docs/manual-sources/howto.xml index 4b693ae1..20f471ed 100644 --- a/lam/docs/manual-sources/howto.xml +++ b/lam/docs/manual-sources/howto.xml @@ -2131,6 +2131,99 @@ mysql> GRANT ALL PRIVILEGES ON lam_cron.* TO 'lam_cron'@'localhost'; "2016-12-31". +
+ 389ds: Notify users about password expiration + + This will send your users an email reminder before their + password expires. + + You need to activate the Account Locking 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). + + LAM calculates the expiration date based on the attribute + passwordExpirationTime. + + + + + + + + + + + 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 password + 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". +
+
Shadow: Notify users about password expiration diff --git a/lam/docs/manual-sources/images/jobs_389dsPasswordMail1.png b/lam/docs/manual-sources/images/jobs_389dsPasswordMail1.png new file mode 100644 index 0000000000000000000000000000000000000000..d069d824f021e167acb826ab5c96f155b97f04cb GIT binary patch literal 32877 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 E1476!BLDyZ literal 0 HcmV?d00001 diff --git a/lam/help/help.inc b/lam/help/help.inc index 15051ba7..91fcfdbc 100644 --- a/lam/help/help.inc +++ b/lam/help/help.inc @@ -320,6 +320,7 @@ $helpArray = array ( "Headline" => _('Text'), "Text" => _('The mail text of all mails.') . _('You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. @@uid@@ for the user name).') + . ' ' . _('The expiration date can be added with @@EXPIRE_DATE_DDMMYYYY@@ or @@EXPIRE_DATE_YYYYMMDD@@.') ), '804' => array( "Headline" => _('Notification period'), diff --git a/lam/lib/modules/shadowAccount.inc b/lam/lib/modules/shadowAccount.inc index 94eaedc2..e515c0ea 100644 --- a/lam/lib/modules/shadowAccount.inc +++ b/lam/lib/modules/shadowAccount.inc @@ -800,15 +800,6 @@ if (interface_exists('\LAM\JOB\Job', false)) { return _('Shadow') . ': ' . _('Notify users about password expiration'); } - /** - * Returns the description of the job. - * - * @return String description - */ - public function getDescription() { - return _('This job sends out emails to inform your users that their passwords will expire soon.'); - } - /** * Searches for users in LDAP. * diff --git a/lam/lib/modules/windowsUser.inc b/lam/lib/modules/windowsUser.inc index f91a5dd3..f5f2b648 100644 --- a/lam/lib/modules/windowsUser.inc +++ b/lam/lib/modules/windowsUser.inc @@ -3174,15 +3174,6 @@ if (interface_exists('\LAM\JOB\Job', false)) { return _('Windows') . ': ' . _('Notify users about password expiration'); } - /** - * Returns the description of the job. - * - * @return String description - */ - public function getDescription() { - return _('This job sends out emails to inform your users that their passwords will expire soon.'); - } - /** * Returns a list of password policy options. The options are later passed to function checkSingleUser(). * This reads the password policy to calculate expiration times later. Maxpwdage is the maximum amount of