s4:pwsettings - Introduce the LDB modify flags in the right way
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Tue, 25 Aug 2009 23:33:21 +0000 (01:33 +0200)
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Sun, 6 Sep 2009 10:29:31 +0000 (12:29 +0200)
We can't emulate them through the LDB changetype flags since they haven't the
same constants! The previous behaviour led to huge problems.

source4/setup/pwsettings

index fc59f8c4041c565a70fc894efa5b1d03f875e57e..49bb5519b341bd667214c31983bc7492ad9cb906 100755 (executable)
@@ -82,9 +82,8 @@ except:
                print "So no settings can be displayed!"
                sys.exit(1)
        else:
-               if pwd_props is None:
-                       pwd_props = 0
-                       print "WARNING: Assuming previous password properties 0 (used for password complexity setting)"
+               pwd_props = 0
+               print "WARNING: Assuming previous password properties 0 (used for password complexity setting)"
 
 if args[0] == "show":
        print "Password informations for domain '" + domain_dn + "'"
@@ -105,11 +104,8 @@ elif args[0] == "set":
 
                        m = ldb.Message()
                        m.dn = ldb.Dn(samdb, domain_dn)
-                       m["pwdProperties"] = ldb.MessageElement([],
-                         ldb.CHANGETYPE_DELETE, "pwdProperties")
-                       samdb.modify(m)
                        m["pwdProperties"] = ldb.MessageElement(str(pwd_props),
-                         ldb.CHANGETYPE_ADD, "pwdProperties")
+                         ldb.FLAG_MOD_REPLACE, "pwdProperties")
                        samdb.modify(m)
                        print "Password complexity activated!"
                elif opts.complexity == "off":
@@ -117,11 +113,8 @@ elif args[0] == "set":
 
                        m = ldb.Message()
                        m.dn = ldb.Dn(samdb, domain_dn)
-                       m["pwdProperties"] = ldb.MessageElement([],
-                         ldb.CHANGETYPE_DELETE, "pwdProperties")
-                       samdb.modify(m)
                        m["pwdProperties"] = ldb.MessageElement(str(pwd_props),
-                         ldb.CHANGETYPE_ADD, "pwdProperties")
+                         ldb.FLAG_MOD_REPLACE, "pwdProperties")
                        samdb.modify(m)
                        print "Password complexity deactivated!"
                else:
@@ -136,11 +129,8 @@ elif args[0] == "set":
 
                m = ldb.Message()
                m.dn = ldb.Dn(samdb, domain_dn)
-               m["pwdHistoryLength"] = ldb.MessageElement([],
-                 ldb.CHANGETYPE_DELETE, "pwdHistoryLength")
-               samdb.modify(m)
                m["pwdHistoryLength"] = ldb.MessageElement(str(pwd_hist_len),
-                 ldb.CHANGETYPE_ADD, "pwdHistoryLength")
+                 ldb.FLAG_MOD_REPLACE, "pwdHistoryLength")
                samdb.modify(m)
                print "Password history length changed!"
 
@@ -152,11 +142,8 @@ elif args[0] == "set":
 
                m = ldb.Message()
                m.dn = ldb.Dn(samdb, domain_dn)
-               m["minPwdLength"] = ldb.MessageElement([],
-                 ldb.CHANGETYPE_DELETE, "minPwdLength")
-               samdb.modify(m)
                m["minPwdLength"] = ldb.MessageElement(str(min_pwd_len),
-                 ldb.CHANGETYPE_ADD, "minPwdLength")
+                 ldb.FLAG_MOD_REPLACE, "minPwdLength")
                samdb.modify(m)
                print "Minimum password length changed!"
 
@@ -170,11 +157,8 @@ elif args[0] == "set":
 
                m = ldb.Message()
                m.dn = ldb.Dn(samdb, domain_dn)
-               m["minPwdAge"] = ldb.MessageElement([],
-                 ldb.CHANGETYPE_DELETE, "minPwdAge")
-               samdb.modify(m)
                m["minPwdAge"] = ldb.MessageElement(str(min_pwd_age),
-                 ldb.CHANGETYPE_ADD, "minPwdAge")
+                 ldb.FLAG_MOD_REPLACE, "minPwdAge")
                samdb.modify(m)
                print "Minimum password age changed!"
 
@@ -188,11 +172,8 @@ elif args[0] == "set":
 
                m = ldb.Message()
                m.dn = ldb.Dn(samdb, domain_dn)
-               m["maxPwdAge"] = ldb.MessageElement([],
-                 ldb.CHANGETYPE_DELETE, "maxPwdAge")
-               samdb.modify(m)
                m["maxPwdAge"] = ldb.MessageElement(str(max_pwd_age),
-                 ldb.CHANGETYPE_ADD, "maxPwdAge")
+                 ldb.FLAG_MOD_REPLACE, "maxPwdAge")
                samdb.modify(m)
                print "Maximum password age changed!"