summaryrefslogtreecommitdiffstats
path: root/src/providers/ad/ad_sudo.c
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2014-02-28 10:05:34 +0100
committerJakub Hrozek <jhrozek@redhat.com>2014-03-02 21:17:59 +0100
commit77cb1c56f13a41d1920efb2946db10a00ed63c9c (patch)
tree80d711d902538acc89f31444d3c90d496204ed1f /src/providers/ad/ad_sudo.c
parent056402b9937e43054a3b5780fe9eff2aa9ef84ef (diff)
downloadsssd-77cb1c56f13a41d1920efb2946db10a00ed63c9c.tar.gz
sssd-77cb1c56f13a41d1920efb2946db10a00ed63c9c.tar.xz
sssd-77cb1c56f13a41d1920efb2946db10a00ed63c9c.zip
SUDO: AD provider
This patch adds the sudo target to the AD provider. The main reason is to cover different default settings in the LDAP and AD provider. E.g. the default for ldap_id_mapping is True in the AD provider and False in the LDAP provider. If ldap_id_mapping was not set explicitly in the config file both components worked with different setting. Fixes https://fedorahosted.org/sssd/ticket/2256 Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com> Reviewed-by: Pavel Březina <pbrezina@redhat.com> (cherry picked from commit 61804568ce5ede3b1a699cda17c033dd6c23f0e3)
Diffstat (limited to 'src/providers/ad/ad_sudo.c')
-rw-r--r--src/providers/ad/ad_sudo.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/providers/ad/ad_sudo.c b/src/providers/ad/ad_sudo.c
new file mode 100644
index 000000000..b85c95c5c
--- /dev/null
+++ b/src/providers/ad/ad_sudo.c
@@ -0,0 +1,51 @@
+/*
+ SSSD
+
+ AD SUDO Provider Initialization functions
+
+ Authors:
+ Sumit Bose <sbose@redhat.com>
+
+ Copyright (C) 2014 Red Hat
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "providers/ad/ad_common.h"
+#include "providers/ldap/sdap_sudo.h"
+
+int ad_sudo_init(struct be_ctx *be_ctx,
+ struct ad_id_ctx *id_ctx,
+ struct bet_ops **ops,
+ void **pvt_data)
+{
+ int ret;
+ struct ad_options *ad_options;
+ struct sdap_options *ldap_options;
+
+ DEBUG(SSSDBG_TRACE_INTERNAL, ("Initializing sudo AD back end\n"));
+
+ ret = sdap_sudo_init(be_ctx, id_ctx->sdap_id_ctx, ops, pvt_data);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_OP_FAILURE, ("Cannot initialize LDAP SUDO [%d]: %s\n",
+ ret, strerror(ret)));
+ return ret;
+ }
+
+ ad_options = id_ctx->ad_options;
+ ldap_options = id_ctx->sdap_id_ctx->opts;
+
+ ad_options->id->sudorule_map = ldap_options->sudorule_map;
+ return EOK;
+}