diff options
Diffstat (limited to 'src/db')
-rw-r--r-- | src/db/sysdb.h | 3 | ||||
-rw-r--r-- | src/db/sysdb_ops.c | 9 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/db/sysdb.h b/src/db/sysdb.h index c133072d..190e8120 100644 --- a/src/db/sysdb.h +++ b/src/db/sysdb.h @@ -495,7 +495,8 @@ int sysdb_add_user(TALLOC_CTX *mem_ctx, int sysdb_add_fake_user(struct sysdb_ctx *ctx, struct sss_domain_info *domain, - const char *name); + const char *name, + const char *original_dn); /* Add group (only basic attrs and w/o checks) */ int sysdb_add_basic_group(TALLOC_CTX *mem_ctx, diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c index d6260b97..1fb389da 100644 --- a/src/db/sysdb_ops.c +++ b/src/db/sysdb_ops.c @@ -934,7 +934,8 @@ done: int sysdb_add_fake_user(struct sysdb_ctx *ctx, struct sss_domain_info *domain, - const char *name) + const char *name, + const char *original_dn) { TALLOC_CTX *tmpctx; struct ldb_message *msg; @@ -983,6 +984,12 @@ int sysdb_add_fake_user(struct sysdb_ctx *ctx, (unsigned long) now-1); if (ret) goto done; + if (original_dn) { + ret = add_string(msg, LDB_FLAG_MOD_ADD, + SYSDB_ORIG_DN, original_dn); + if (ret) goto done; + } + ret = ldb_add(ctx->ldb, msg); ret = sysdb_error_to_errno(ret); |