Updated fdc.in (added printpwdexpiration.py).
authorZoltán Felleg <zoltan.felleg@userrendszerhaz.hu>
Thu, 13 Mar 2025 19:37:24 +0000 (20:37 +0100)
committerZoltán Felleg <zoltan.felleg@userrendszerhaz.hu>
Thu, 13 Mar 2025 19:37:24 +0000 (20:37 +0100)
sources/fdc.in/c3d/postinstall/install-data/usr/local/bin/mailpwdexpiration.py
sources/fdc.in/c3d/postinstall/install-data/usr/local/bin/printpwdexpiration.py [new file with mode: 0755]
sources/fdc.in/c3d/postinstall/install-data/var/www/htdocs.80/index.xhtml
sources/fdc.in/c3d/postinstall/install-data/var/www/wsgi/passwordchange.wsgi

index a90fb4ba9f025e82a59997c0e47adf55d3111f72..3a4c5a75c380baea795ac475f970cbdf496e16b8 100755 (executable)
@@ -93,8 +93,6 @@ if __name__ == '__main__':
                 rounded_expiration_days = int(expiration_days - 0.5)
             else:
                 rounded_expiration_days = int(expiration_days + 0.5)
-            #print(uid, rounded_expiration_days)
-            #continue
             if rounded_expiration_days in PWD_EXPIRED_DAYS:
                 send_mail('ERROR', rounded_expiration_days, uid, email_address)
             elif rounded_expiration_days in PWD_EXPIRING_DAYS:
diff --git a/sources/fdc.in/c3d/postinstall/install-data/usr/local/bin/printpwdexpiration.py b/sources/fdc.in/c3d/postinstall/install-data/usr/local/bin/printpwdexpiration.py
new file mode 100755 (executable)
index 0000000..3ea4fc5
--- /dev/null
@@ -0,0 +1,39 @@
+#!/usr/bin/env python
+
+
+import ldap
+import time
+
+
+LDAP_URI = 'ldaps://fds.useribm.hu'
+USERS_BASE = 'ou=people,dc=user,dc=hu'
+
+
+PWD_MAX_AGE = 365 * 24 * 60 * 60
+
+
+if __name__ == '__main__':
+
+    ldap_object = ldap.initialize(LDAP_URI)
+
+    search_id = ldap_object.search(USERS_BASE,
+                                   ldap.SCOPE_SUBTREE,
+                                   attrlist=['uid',
+                                             'pwdUpdateTime'])
+    (search_result_type, search_result_data) = ldap_object.result()
+
+    current_ts = time.mktime(time.gmtime())
+    for item in search_result_data:
+        (dn, values) = item
+        if 'pwdUpdateTime' in values:
+            uid = values['uid'][0].decode('utf-8')
+            pwd_update_time = values['pwdUpdateTime'][0].decode('utf-8')
+            pwd_update_ts = time.mktime(time.strptime(pwd_update_time,
+                                                      '%Y%m%d%H%M%S%z'))
+            expiration_seconds = PWD_MAX_AGE - (current_ts - pwd_update_ts)
+            expiration_days = expiration_seconds / (24 * 60 * 60)
+            if expiration_days < 0:
+                rounded_expiration_days = int(expiration_days - 0.5)
+            else:
+                rounded_expiration_days = int(expiration_days + 0.5)
+            print(uid, rounded_expiration_days)
index ac9eef77dfdc816234440feecf64f0809fb801e0..4592e2060d8e874668224a6a33b8fbd4af6275df 100644 (file)
       <p><input name="new password" type="password" required="true" /></p>
       <p>Új jelszó mégegyszer:</p>
       <p><input name="new password again" type="password" required="true" /></p>
+      <hr />
+      <p>Az új jelszó a következő követelményeknek kell megfeleljen:</p>
+      <p>1. legalább 14 karakter hosszú kell legyen</p>
+      <p>2. kell benne lennie kisbetűnek, nagybetűnek, számnak, és egy speciális karakternek</p>
+      <p>3. nem lehet benne a loginneved semmilyen formában</p>
       <p><input type="submit" value="Változtatás" /></p>
     </form>
   </body>
index 4d642cb3d01df34e6bbba233bc9c4bef424c4f48..fdd1382b180499ed2d15c411ffbe34214234ee1a 100644 (file)
@@ -31,7 +31,12 @@ error_prologue = """    <p>Az alábbi hiba miatt nem sikerült megváltoztatni a
     <p>Ha nem, keresd meg zfelleget.</p>
     <p>(Akinek persze az lesz az első kérdése, hogy mi volt a
         hibaüzenet utolsó sora, úgyhogy azt vagy mentsd el/írd le,
-       vagy hagyd nyitva ezt a böngészőablakot.)</p>
+        vagy hagyd nyitva ezt a böngészőablakot.)</p>
+    <p>A két leggyakoribb hiba a következő:</p>
+    <ul>
+        <p>ldap.CONSTRAINT_VIOLATION: az új jelszó nem felel meg a követelményeknek.</li>
+        <p>ldap.INVALID_CREDENTIALS: a régi jelszavad (esetleg a loginneved) nem jó.</li>
+    </ul>
     <pre>"""
 
 error_epilogue = """    </pre>