libds: added more UF_ -> ACB_ flags mappings
[sfrench/samba-autobuild/.git] / libds / common / flag_mapping.c
index dfe619971f8382d4449fca5e933c495c0991224b..99421ed533fa1fb8c01b73938dc59ae78ef91c33 100644 (file)
@@ -50,7 +50,10 @@ static const struct {
        { UF_USE_DES_KEY_ONLY, ACB_USE_DES_KEY_ONLY},
        { UF_DONT_REQUIRE_PREAUTH, ACB_DONT_REQUIRE_PREAUTH },
        { UF_PASSWORD_EXPIRED, ACB_PW_EXPIRED },
-       { UF_NO_AUTH_DATA_REQUIRED, ACB_NO_AUTH_DATA_REQD }
+       { UF_NO_AUTH_DATA_REQUIRED, ACB_NO_AUTH_DATA_REQD },
+       { UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION, ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION },
+       { UF_PARTIAL_SECRETS_ACCOUNT, ACB_PARTIAL_SECRETS_ACCOUNT },
+       { UF_USE_AES_KEYS, ACB_USE_AES_KEYS }
 };
 
 uint32_t ds_acb2uf(uint32_t acb)
@@ -153,7 +156,9 @@ uint32_t ds_uf2prim_group_rid(uint32_t uf)
 {
        uint32_t prim_group_rid = DOMAIN_RID_USERS;
 
-       if (uf & UF_SERVER_TRUST_ACCOUNT)           prim_group_rid = DOMAIN_RID_DCS;
+       if ((uf & UF_PARTIAL_SECRETS_ACCOUNT)
+        && (uf & UF_WORKSTATION_TRUST_ACCOUNT))    prim_group_rid = DOMAIN_RID_READONLY_DCS;
+       else if (uf & UF_SERVER_TRUST_ACCOUNT)      prim_group_rid = DOMAIN_RID_DCS;
        else if (uf & UF_WORKSTATION_TRUST_ACCOUNT) prim_group_rid = DOMAIN_RID_DOMAIN_MEMBERS;
 
        return prim_group_rid;