1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

samldb: Add useful error string to explain why a group may not be deleted.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
This commit is contained in:
Andrew Bartlett 2018-05-29 10:39:39 +12:00
parent 642dd37d51
commit 95a9dbd1fe

View File

@ -3872,7 +3872,8 @@ static int samldb_prim_group_users_check(struct samldb_ctx *ac)
uint32_t rid;
NTSTATUS status;
int ret;
struct ldb_result *res;
struct ldb_result *res = NULL;
struct ldb_result *res_users = NULL;
const char * const attrs[] = { "objectSid", "isDeleted", NULL };
const char * const noattrs[] = { NULL };
@ -3911,7 +3912,7 @@ static int samldb_prim_group_users_check(struct samldb_ctx *ac)
}
/* Deny delete requests from groups which are primary ones */
ret = dsdb_module_search(ac->module, ac, &res,
ret = dsdb_module_search(ac->module, ac, &res_users,
ldb_get_default_basedn(ldb),
LDB_SCOPE_SUBTREE, noattrs,
DSDB_FLAG_NEXT_MODULE,
@ -3920,7 +3921,14 @@ static int samldb_prim_group_users_check(struct samldb_ctx *ac)
if (ret != LDB_SUCCESS) {
return ret;
}
if (res->count > 0) {
if (res_users->count > 0) {
ldb_asprintf_errstring(ldb_module_get_ctx(ac->module),
"Refusing to delete %s, as it "
"is still the primaryGroupID "
"for %u users",
ldb_dn_get_linearized(res->msgs[0]->dn),
res_users->count);
return LDB_ERR_ENTRY_ALREADY_EXISTS;
}