sdap_sudo.h revision fb67530ec34740a18f56ff56614898d2bdaee36f
e59faf65ce864fe95dc00f5d52b8323cdbd0608aTimo Sirainen/*
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen Authors:
08d6658a4e2ec8104cd1307f6baa75fdb07a24f8Mark Washenberger Pavel Březina <pbrezina@redhat.com>
16f816d3f3c32ae3351834253f52ddd0212bcbf3Timo Sirainen
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen Copyright (C) 2011 Red Hat
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainen This program is free software; you can redistribute it and/or modify
5cda7e699876c1de203c30777924c899d2a20221Timo Sirainen it under the terms of the GNU General Public License as published by
419baa2c17c63ae516b2df6cc5695f15aaccbff8Timo Sirainen the Free Software Foundation; either version 3 of the License, or
419baa2c17c63ae516b2df6cc5695f15aaccbff8Timo Sirainen (at your option) any later version.
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen This program is distributed in the hope that it will be useful,
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen but WITHOUT ANY WARRANTY; without even the implied warranty of
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen GNU General Public License for more details.
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainen You should have received a copy of the GNU General Public License
cf0ad1a0bddb0787f3d7b408a96d721a8b2a98a3Timo Sirainen along with this program. If not, see <http://www.gnu.org/licenses/>.
657afb33796f8216c568ad813627da89970760beTimo Sirainen*/
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen#ifndef _SDAP_SUDO_H_
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen#define _SDAP_SUDO_H_
76213404317a7ed17bec0beadb5137c82785d816Timo Sirainen
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainenstruct sdap_sudo_ctx {
76213404317a7ed17bec0beadb5137c82785d816Timo Sirainen struct sdap_id_ctx *id_ctx;
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen char **hostnames;
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen char **ip_addr;
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen bool include_netgroups;
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen bool include_regexp;
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen bool use_host_filter;
6c2c5f20760b06bfb4a40b0ee2ef5ab016bc41f0Timo Sirainen
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen bool full_refresh_done;
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen};
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainen
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainen/* Common functions from ldap_sudo.c */
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainenvoid sdap_sudo_handler(struct be_req *breq);
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainenint sdap_sudo_init(struct be_ctx *be_ctx,
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainen struct sdap_id_ctx *id_ctx,
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainen struct bet_ops **ops,
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainen void **pvt_data);
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainen
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainen/* sdap async interface */
43d3ea2780b5f8557ede7b4c039e8f56cb8d357dTimo Sirainenstruct tevent_req *sdap_sudo_refresh_send(TALLOC_CTX *mem_ctx,
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen struct be_ctx *be_ctx,
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen struct sdap_options *opts,
226259ee6fb9830dafc1a5ba1e95bf5a4345b406Timo Sirainen struct sdap_id_conn_cache *conn_cache,
226259ee6fb9830dafc1a5ba1e95bf5a4345b406Timo Sirainen const char *ldap_filter,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen const char *sysdb_filter);
657afb33796f8216c568ad813627da89970760beTimo Sirainen
657afb33796f8216c568ad813627da89970760beTimo Sirainenint sdap_sudo_refresh_recv(TALLOC_CTX *mem_ctx,
226259ee6fb9830dafc1a5ba1e95bf5a4345b406Timo Sirainen struct tevent_req *req,
226259ee6fb9830dafc1a5ba1e95bf5a4345b406Timo Sirainen int *dp_error,
226259ee6fb9830dafc1a5ba1e95bf5a4345b406Timo Sirainen int *error,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen char **usn,
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen size_t *num_rules);
e5acc283bf030b0b5c79ca4e52d315c516a299faPascal Volk
9f431ccfb6932746db56245c8a3d3415717ef545Timo Sirainen/* timer */
226259ee6fb9830dafc1a5ba1e95bf5a4345b406Timo Sirainen
226259ee6fb9830dafc1a5ba1e95bf5a4345b406Timo Sirainentypedef struct tevent_req * (*sdap_sudo_timer_fn_t)(TALLOC_CTX *mem_ctx,
657afb33796f8216c568ad813627da89970760beTimo Sirainen struct sdap_sudo_ctx *sudo_ctx);
657afb33796f8216c568ad813627da89970760beTimo Sirainen
a7bee3930831a9261fa6180d02af29c484d862e9Timo Sirainenstruct tevent_req * sdap_sudo_timer_send(TALLOC_CTX *mem_ctx,
657afb33796f8216c568ad813627da89970760beTimo Sirainen struct tevent_context *ev,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen struct sdap_sudo_ctx *sudo_ctx,
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen struct timeval when,
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen time_t timeout,
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen sdap_sudo_timer_fn_t fn);
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainenint sdap_sudo_timer_recv(TALLOC_CTX *mem_ctx,
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen struct tevent_req *req,
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen struct tevent_req **_subreq);
419baa2c17c63ae516b2df6cc5695f15aaccbff8Timo Sirainen
419baa2c17c63ae516b2df6cc5695f15aaccbff8Timo Sirainen/* host info */
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainenstruct tevent_req * sdap_sudo_get_hostinfo_send(TALLOC_CTX *mem_ctx,
419baa2c17c63ae516b2df6cc5695f15aaccbff8Timo Sirainen struct sdap_options *opts,
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen struct be_ctx *be_ctx);
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainen
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainenint sdap_sudo_get_hostinfo_recv(TALLOC_CTX *mem_ctx,
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainen struct tevent_req *req,
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainen char ***hostnames, char ***ip_addr);
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen/* (&(objectClass=sudoRole)(|(cn=defaults)(sudoUser=ALL)%s)) */
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen#define SDAP_SUDO_FILTER_USER "(&(objectClass=%s)(|(%s=%s)(%s=ALL)%s))"
73bfdbe28c2ce6d143eadf0bab8ccfbe4cab0faeTimo Sirainen#define SDAP_SUDO_FILTER_CLASS "(objectClass=%s)"
419baa2c17c63ae516b2df6cc5695f15aaccbff8Timo Sirainen#define SDAP_SUDO_FILTER_DEFAULTS "(&(objectClass=%s)(%s=%s))"
419baa2c17c63ae516b2df6cc5695f15aaccbff8Timo Sirainen#define SDAP_SUDO_DEFAULTS "defaults"
419baa2c17c63ae516b2df6cc5695f15aaccbff8Timo Sirainen
419baa2c17c63ae516b2df6cc5695f15aaccbff8Timo Sirainen#define SDAP_SUDO_FILTER_USERNAME "(%s=%s)"
419baa2c17c63ae516b2df6cc5695f15aaccbff8Timo Sirainen#define SDAP_SUDO_FILTER_UID "(%s=#%u)"
2a90d8a14b0e7cc1508814bc87d3dfa598ef46a8Timo Sirainen#define SDAP_SUDO_FILTER_GROUP "(%s=%%%s)"
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen#define SDAP_SUDO_FILTER_NETGROUP "(%s=+%s)"
657afb33796f8216c568ad813627da89970760beTimo Sirainen
657afb33796f8216c568ad813627da89970760beTimo Sirainen#endif /* _SDAP_SUDO_H_ */
657afb33796f8216c568ad813627da89970760beTimo Sirainen