From 23c4796b92adc151152dc1c0b8dadb7a93c497a0 Mon Sep 17 00:00:00 2001
From: Ivan Tyagov <ivan@nexedi.com>
Date: Mon, 1 Aug 2011 11:14:08 +0300
Subject: [PATCH] Show number of hours before password is expired.

---
 .../Person_isPasswordExpired.xml                          | 8 +++++---
 .../portal_skins/erp5_authentication_policy/logged_in.xml | 4 ++--
 bt5/erp5_authentication_policy/bt/revision                | 2 +-
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/bt5/erp5_authentication_policy/SkinTemplateItem/portal_skins/erp5_authentication_policy/Person_isPasswordExpired.xml b/bt5/erp5_authentication_policy/SkinTemplateItem/portal_skins/erp5_authentication_policy/Person_isPasswordExpired.xml
index 87888e3685..dc8782602c 100644
--- a/bt5/erp5_authentication_policy/SkinTemplateItem/portal_skins/erp5_authentication_policy/Person_isPasswordExpired.xml
+++ b/bt5/erp5_authentication_policy/SkinTemplateItem/portal_skins/erp5_authentication_policy/Person_isPasswordExpired.xml
@@ -68,13 +68,15 @@ def _isPasswordExpired():\n
   max_password_lifetime_duration = portal.portal_preferences.getPreferredMaxPasswordLifetimeDuration()\n
   password_lifetime_expire_warning_duration = portal.portal_preferences.getPreferredPasswordLifetimeExpireWarningDuration()\n
   last_password_modification_date = context.getLastPasswordModificationDate()\n
-  early_warning = False\n
+  early_warning = 0 #False\n
   if last_password_modification_date is not None:\n
     expire_date = last_password_modification_date + max_password_lifetime_duration*one_hour \n
     if password_lifetime_expire_warning_duration not in (0, None,):\n
       # calculate early warning period\n
-      if now > expire_date - password_lifetime_expire_warning_duration*one_hour:\n
-        early_warning = True\n
+      #context.log( \'%s %s\' %(now, (expire_date - password_lifetime_expire_warning_duration*one_hour)))\n
+      if now > expire_date - password_lifetime_expire_warning_duration*one_hour \\\n
+         and expire_date > now:\n
+        early_warning =  int(round((expire_date - now))) # return number of hours till expire password moment\n
     if expire_date < now:\n
       # password is expired\n
       #context.log(\'expired %s\' %context.getReference())\n
diff --git a/bt5/erp5_authentication_policy/SkinTemplateItem/portal_skins/erp5_authentication_policy/logged_in.xml b/bt5/erp5_authentication_policy/SkinTemplateItem/portal_skins/erp5_authentication_policy/logged_in.xml
index 61e765cfdc..705cab3f95 100644
--- a/bt5/erp5_authentication_policy/SkinTemplateItem/portal_skins/erp5_authentication_policy/logged_in.xml
+++ b/bt5/erp5_authentication_policy/SkinTemplateItem/portal_skins/erp5_authentication_policy/logged_in.xml
@@ -75,12 +75,12 @@
       </tal:block>\n
     </tal:block>\n
     <tal:block tal:condition="not: isAnon"\n
-               tal:define="is_user_account_password_expired_warning_on python:request.get(\'is_user_account_password_expired_warning_on\', False);">\n
+               tal:define="is_user_account_password_expired_warning_on python:request.get(\'is_user_account_password_expired_warning_on\', 0);">\n
       \n
       <!-- Password will expire soon just warn user ?  -->\n
       <tal:block tal:condition="is_user_account_password_expired_warning_on">\n
          <tal:block tal:define="came_from python: request.get(\'came_from\') or here.absolute_url();\n
-                               dummy python: response.redirect(\'%s/ERP5Site_viewNewPersonCredentialUpdateDialog?portal_status_message=%s&amp;cancel_url=%s\' %(came_from, here.Base_translateString(\'Your password will expire soon. You are advised to change it as soon as possible.\'), came_from));" />\n
+                               dummy python: response.redirect(\'%s/ERP5Site_viewNewPersonCredentialUpdateDialog?portal_status_message=%s&amp;cancel_url=%s\' %(came_from, here.Base_translateString(\'Your password will expire in %s hours. You are advised to change it as soon as possible.\' %is_user_account_password_expired_warning_on), came_from));" />\n
       </tal:block>\n
 \n
       <tal:block tal:condition="not: is_user_account_password_expired_warning_on">\n
diff --git a/bt5/erp5_authentication_policy/bt/revision b/bt5/erp5_authentication_policy/bt/revision
index 9a037142aa..9d607966b7 100644
--- a/bt5/erp5_authentication_policy/bt/revision
+++ b/bt5/erp5_authentication_policy/bt/revision
@@ -1 +1 @@
-10
\ No newline at end of file
+11
\ No newline at end of file
-- 
2.30.9