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) {
}
ac = samldb_ctx_init(module, req);
- if (ac == NULL)
+ if (ac == NULL) {
return ldb_operr(ldb_module_get_ctx(module));
+ }
ret = samldb_prim_group_users_check(ac);
if (ret != LDB_SUCCESS) {
return ret;
}
+ talloc_free(ac);
+
return ldb_next_request(module, req);
}