s4-dsdb: Move User object default attribute values in separate helper
authorKamen Mazdrashki <kamenim@samba.org>
Mon, 12 Jan 2015 01:30:17 +0000 (03:30 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 3 Feb 2015 04:02:12 +0000 (05:02 +0100)
Change-Id: I1e291bcf0a5c9b2fca11323dc7f8be29f5145d42
Signed-off-by: Kamen Mazdrashki <kamenim@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
source4/dsdb/common/util.c
source4/dsdb/samdb/ldb_modules/samldb.c
source4/dsdb/samdb/ldb_modules/tombstone_reanimate.c

index 6c05b5081a404542a4bf266f3330ebffadd1b68c..35d7b65b3725ec5f84f398574750d8c76ccf7dd2 100644 (file)
@@ -4844,3 +4844,45 @@ NTSTATUS dsdb_update_bad_pwd_count(TALLOC_CTX *mem_ctx,
        *_mod_msg = mod_msg;
        return NT_STATUS_OK;
 }
+
+/**
+ * Sets defaults for a User object
+ * List of default attributes set:
+ *     accountExpires, badPasswordTime, badPwdCount,
+ *     codePage, countryCode, lastLogoff, lastLogon
+ *     logonCount, pwdLastSet
+ */
+int dsdb_user_obj_set_defaults(struct ldb_context *ldb, struct ldb_message *usr_obj)
+{
+       int ret;
+
+       ret = samdb_find_or_add_attribute(ldb, usr_obj,
+               "accountExpires", "9223372036854775807");
+       if (ret != LDB_SUCCESS) return ret;
+       ret = samdb_find_or_add_attribute(ldb, usr_obj,
+               "badPasswordTime", "0");
+       if (ret != LDB_SUCCESS) return ret;
+       ret = samdb_find_or_add_attribute(ldb, usr_obj,
+               "badPwdCount", "0");
+       if (ret != LDB_SUCCESS) return ret;
+       ret = samdb_find_or_add_attribute(ldb, usr_obj,
+               "codePage", "0");
+       if (ret != LDB_SUCCESS) return ret;
+       ret = samdb_find_or_add_attribute(ldb, usr_obj,
+               "countryCode", "0");
+       if (ret != LDB_SUCCESS) return ret;
+       ret = samdb_find_or_add_attribute(ldb, usr_obj,
+               "lastLogoff", "0");
+       if (ret != LDB_SUCCESS) return ret;
+       ret = samdb_find_or_add_attribute(ldb, usr_obj,
+               "lastLogon", "0");
+       if (ret != LDB_SUCCESS) return ret;
+       ret = samdb_find_or_add_attribute(ldb, usr_obj,
+               "logonCount", "0");
+       if (ret != LDB_SUCCESS) return ret;
+       ret = samdb_find_or_add_attribute(ldb, usr_obj,
+               "pwdLastSet", "0");
+       if (ret != LDB_SUCCESS) return ret;
+
+       return LDB_SUCCESS;
+}
index 8b23383bf4bc5eceee2d02baf62f1085137af31d..4681decdc16e10e7f0af58463d1114ac2a18d17f 100644 (file)
@@ -999,32 +999,7 @@ static int samldb_objectclass_trigger(struct samldb_ctx *ac)
                bool uac_generated = false, uac_add_flags = false;
 
                /* Step 1.2: Default values */
-               ret = samdb_find_or_add_attribute(ldb, ac->msg,
-                       "accountExpires", "9223372036854775807");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, ac->msg,
-                       "badPasswordTime", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, ac->msg,
-                       "badPwdCount", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, ac->msg,
-                       "codePage", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, ac->msg,
-                       "countryCode", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, ac->msg,
-                       "lastLogoff", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, ac->msg,
-                       "lastLogon", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, ac->msg,
-                       "logonCount", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, ac->msg,
-                       "pwdLastSet", "0");
+               ret = dsdb_user_obj_set_defaults(ldb, ac->msg);
                if (ret != LDB_SUCCESS) return ret;
 
                /* On add operations we might need to generate a
index 8b3157917ad4c404b81646fa02cfa1456c96648b..298567eafb2012b55c4511f0e469683e827ca574 100644 (file)
@@ -238,33 +238,10 @@ static int _tr_restore_attributes(struct ldb_context *ldb, struct ldb_message *c
                /* restoring 'user' instance attribute is heavily borrowed from samldb.c */
 
                /* Default values */
-               ret = samdb_find_or_add_attribute(ldb, new_msg,
-                                                 "accountExpires", "9223372036854775807");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, new_msg,
-                                                 "badPasswordTime", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, new_msg,
-                                                 "badPwdCount", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, new_msg,
-                                                 "codePage", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, new_msg,
-                                                 "countryCode", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, new_msg,
-                                                 "lastLogoff", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, new_msg,
-                                                 "lastLogon", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, new_msg,
-                                                 "logonCount", "0");
-               if (ret != LDB_SUCCESS) return ret;
-               ret = samdb_find_or_add_attribute(ldb, new_msg,
-                                                 "pwdLastSet", "0");
+               ret = dsdb_user_obj_set_defaults(ldb, new_msg);
                if (ret != LDB_SUCCESS) return ret;
+
+               /* Following are set only while reanimating objects */
                ret = samdb_find_or_add_attribute(ldb, new_msg,
                                                  "adminCount", "0");
                if (ret != LDB_SUCCESS) return ret;