s4-dsdb: Refactor user objects defaults setter to use attribute/value map
authorKamen Mazdrashki <kamenim@samba.org>
Tue, 27 Jan 2015 23:43:10 +0000 (01:43 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 3 Feb 2015 04:02:12 +0000 (05:02 +0100)
Change-Id: Iaa32af4225219a4c5c42c663022e8be429b8a1d2
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

index ac90cbc83be3f54ec36faa7204abbdeb3ee99ed2..7b948f2d81f333f82cc986bc3290ca3b62ac38a2 100644 (file)
@@ -4854,35 +4854,56 @@ NTSTATUS dsdb_update_bad_pwd_count(TALLOC_CTX *mem_ctx,
  */
 int dsdb_user_obj_set_defaults(struct ldb_context *ldb, struct ldb_message *usr_obj)
 {
-       int ret;
+       int i, ret;
+       const struct attribute_values {
+               const char *name;
+               const char *value;
+       } map[] = {
+               {
+                       .name = "accountExpires",
+                       .value = "9223372036854775807"
+               },
+               {
+                       .name = "badPasswordTime",
+                       .value = "0"
+               },
+               {
+                       .name = "badPwdCount",
+                       .value = "0"
+               },
+               {
+                       .name = "codePage",
+                       .value = "0"
+               },
+               {
+                       .name = "countryCode",
+                       .value = "0"
+               },
+               {
+                       .name = "lastLogoff",
+                       .value = "0"
+               },
+               {
+                       .name = "lastLogon",
+                       .value = "0"
+               },
+               {
+                       .name = "logonCount",
+                       .value = "0"
+               },
+               {
+                       .name = "pwdLastSet",
+                       .value = "0"
+               }
+       };
 
-       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;
+       for (i = 0; i < ARRAY_SIZE(map); i++) {
+               ret = samdb_find_or_add_attribute(ldb, usr_obj,
+                                                 map[i].name, map[i].value);
+               if (ret != LDB_SUCCESS) {
+                       return ret;
+               }
+       }
 
        return LDB_SUCCESS;
 }