summaryrefslogtreecommitdiffstats
path: root/src/db/sysdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/sysdb.c')
-rw-r--r--src/db/sysdb.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/db/sysdb.c b/src/db/sysdb.c
index ee8d2fc6..c6a3fa41 100644
--- a/src/db/sysdb.c
+++ b/src/db/sysdb.c
@@ -233,6 +233,25 @@ struct ldb_dn *sysdb_sudocmd_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx,
return dn;
}
+struct ldb_dn *sysdb_sudorule_dn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx,
+ const char *domain, const char *rule)
+{
+ errno_t ret;
+ char *clean_rule;
+ struct ldb_dn *dn;
+
+ ret = sysdb_dn_sanitize(NULL, rule, &clean_rule);
+ if (ret != EOK) {
+ return NULL;
+ }
+
+ dn = ldb_dn_new_fmt(mem_ctx, sysdb->ldb, SYSDB_TMPL_SUDORULE,
+ clean_rule, domain);
+ talloc_free(clean_rule);
+
+ return dn;
+}
+
errno_t sysdb_get_rdn(struct sysdb_ctx *sysdb, TALLOC_CTX *mem_ctx,
const char *_dn, char **_name, char **_val)
{