From 362a287674c3be0c7a286d2800e0c9e684cd9b02 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sun, 15 Nov 2015 15:56:02 +0000 Subject: [PATCH] added password notification job for Shadow accounts --- lam/docs/manual-sources/howto.xml | 84 ++++++++++++++++++ .../manual-sources/images/jobs_shadow1.png | Bin 0 -> 26673 bytes 2 files changed, 84 insertions(+) create mode 100644 lam/docs/manual-sources/images/jobs_shadow1.png diff --git a/lam/docs/manual-sources/howto.xml b/lam/docs/manual-sources/howto.xml index f8e32f12..1c61c9ab 100644 --- a/lam/docs/manual-sources/howto.xml +++ b/lam/docs/manual-sources/howto.xml @@ -2066,6 +2066,90 @@ mysql> GRANT ALL PRIVILEGES ON lam_cron.* TO 'lam_cron'@'localhost'; @@ATTRIBUTE_NAME@@. E.g. to add the user's common name use "@@cn@@". For the common name it would be "@@cn@@". + +
+ Shadow: Notify users about password expiration + + This will send your users an email reminder before their + password expires. + + You need to activate the Shadow 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 last password + change, the password warning time (attribute "shadowWarning") and + the specified notification period. + + Examples: + + Warning time = 14, notification period = 10: LAM will send out + the email 24 days before the password expires + + Warning time = 14, notification period = 0: LAM will send out + the email 14 days before the password expires + + + + + + + + + + + Options + + + + + Option + + Description + + + + From address + + The email address to set as FROM. + + + + Reply-to address + + Optional Reply-to address for email. + + + + 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@@". +
diff --git a/lam/docs/manual-sources/images/jobs_shadow1.png b/lam/docs/manual-sources/images/jobs_shadow1.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d4544e5dbeaf0701db09950fad4d5bb531e04c GIT binary patch literal 26673 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