ipa_sudo.h revision cc7f9b639144183eb4f8bd86e5bed077da7d4e35
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina/*
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina Authors:
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina Pavel Březina <pbrezina@redhat.com>
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina Copyright (C) 2015 Red Hat
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina This program is free software; you can redistribute it and/or modify
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina it under the terms of the GNU General Public License as published by
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina the Free Software Foundation; either version 3 of the License, or
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina (at your option) any later version.
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina This program is distributed in the hope that it will be useful,
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina but WITHOUT ANY WARRANTY; without even the implied warranty of
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina GNU General Public License for more details.
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina You should have received a copy of the GNU General Public License
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina along with this program. If not, see <http://www.gnu.org/licenses/>.
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina*/
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina#ifndef _IPA_SUDO_H_
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina#define _IPA_SUDO_H_
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina#include "providers/ipa/ipa_common.h"
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březinastruct ipa_sudo_ctx {
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina struct sdap_id_ctx *id_ctx;
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina struct ipa_options *ipa_opts;
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina struct sdap_options *sdap_opts;
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina bool full_refresh_done;
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina bool full_refresh_in_progress;
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina /* sudo */
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina struct sdap_attr_map *sudocmdgroup_map;
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina struct sdap_attr_map *sudorule_map;
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina struct sdap_attr_map *sudocmd_map;
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina struct sdap_search_base **sudo_sb;
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina};
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaerrno_t
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_ptask_setup(struct be_ctx *be_ctx, struct ipa_sudo_ctx *sudo_ctx);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinastruct tevent_req *
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_full_refresh_send(TALLOC_CTX *mem_ctx,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct tevent_context *ev,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct ipa_sudo_ctx *sudo_ctx);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaint
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_full_refresh_recv(struct tevent_req *req,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina int *dp_error);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březinaint
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březinaipa_sudo_rules_refresh_recv(struct tevent_req *req,
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březina int *dp_error,
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březina bool *deleted);
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinastruct tevent_req *
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_refresh_send(TALLOC_CTX *mem_ctx,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct tevent_context *ev,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct ipa_sudo_ctx *sudo_ctx,
cc7f9b639144183eb4f8bd86e5bed077da7d4e35Pavel Březina const char *cmdgroups_filter,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina const char *search_filter,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina const char *delete_filter);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březinastruct tevent_req *
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březinaipa_sudo_rules_refresh_send(TALLOC_CTX *mem_ctx,
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březina struct tevent_context *ev,
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březina struct ipa_sudo_ctx *sudo_ctx,
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březina char **rules);
9630a4614ba4d5f68e967d4e108893550a996f30Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaerrno_t
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_refresh_recv(struct tevent_req *req,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina int *dp_error,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina size_t *_num_rules);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinastruct ipa_sudo_conv;
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinastruct ipa_sudo_conv *
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_conv_init(TALLOC_CTX *mem_ctx,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sysdb_ctx *sysdb,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sdap_attr_map *map_rule,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sdap_attr_map *map_cmdgroup,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sdap_attr_map *map_cmd,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sdap_attr_map *map_user,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sdap_attr_map *map_group,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sdap_attr_map *map_host,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sdap_attr_map *map_hostgroup);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaerrno_t
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_conv_rules(struct ipa_sudo_conv *conv,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sysdb_attrs **rules,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina size_t num_rules);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaerrno_t
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_conv_cmdgroups(struct ipa_sudo_conv *conv,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sysdb_attrs **cmdgroups,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina size_t num_cmdgroups);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaerrno_t
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_conv_cmds(struct ipa_sudo_conv *conv,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sysdb_attrs **cmds,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina size_t num_cmds);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinabool
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_conv_has_cmdgroups(struct ipa_sudo_conv *conv);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinabool
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_conv_has_cmds(struct ipa_sudo_conv *conv);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinachar *
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_conv_cmdgroup_filter(TALLOC_CTX *mem_ctx,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct ipa_sudo_conv *conv);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinachar *
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_conv_cmd_filter(TALLOC_CTX *mem_ctx,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct ipa_sudo_conv *conv);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaerrno_t
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březinaipa_sudo_conv_result(TALLOC_CTX *mem_ctx,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct ipa_sudo_conv *conv,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina struct sysdb_attrs ***_rules,
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina size_t *_num_rules);
a641a13889d617aca6bd998025e9087e822ff7f0Pavel Březina
4ddd5591c50e27dffa55f03fbce0dcc85cd50a8bPavel Březina#endif /* _IPA_SUDO_H_ */