s4:samldb LDB module - "samldb_check_primaryGroupID" - support RID derivation from...
authorMatthias Dieter Wallnöfer <mdw@samba.org>
Sun, 12 Sep 2010 16:26:06 +0000 (18:26 +0200)
committerMatthias Dieter Wallnöfer <mdw@samba.org>
Sun, 12 Sep 2010 17:23:06 +0000 (19:23 +0200)
Specified in MS-SAMR 3.1.1.8.1 and probably fixes also bug #7441.

source4/dsdb/samdb/ldb_modules/samldb.c

index 85038314ba0786ec1e22d65fded6adf297ae3d5a..7fa27e8a91fae6d8fbba60a9db4c1f14c8fd2b53 100644 (file)
@@ -259,7 +259,11 @@ static int samldb_check_primaryGroupID(struct samldb_ctx *ac)
 
        rid = samdb_result_uint(ac->msg, "primaryGroupID", (uint32_t) -1);
        if (rid == (uint32_t) -1) {
-               rid = DOMAIN_RID_USERS;
+               uint32_t uac = samdb_result_uint(ac->msg, "userAccountControl",
+                                                0);
+
+               rid = ds_uf2prim_group_rid(uac);
+
                ret = samdb_msg_add_uint(ldb, ac->msg, ac->msg,
                                         "primaryGroupID", rid);
                if (ret != LDB_SUCCESS) {