a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher/*
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher SSSD
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher Authors:
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher Stephen Gallagher <sgallagh@redhat.com>
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher Copyright (C) 2012 Red Hat
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher This program is free software; you can redistribute it and/or modify
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher it under the terms of the GNU General Public License as published by
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher the Free Software Foundation; either version 3 of the License, or
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher (at your option) any later version.
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher This program is distributed in the hope that it will be useful,
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher but WITHOUT ANY WARRANTY; without even the implied warranty of
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher GNU General Public License for more details.
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher You should have received a copy of the GNU General Public License
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher along with this program. If not, see <http://www.gnu.org/licenses/>.
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher*/
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher#ifndef AD_ACCESS_H_
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher#define AD_ACCESS_H_
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagherstruct ad_access_ctx {
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher struct dp_option *ad_options;
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher struct sdap_access_ctx *sdap_access_ctx;
72ae534f5aef6d2e5d3f2f51299aede5abf9687eJakub Hrozek struct ad_id_ctx *ad_id_ctx;
60cab26b12df9a2153823972cde0c38ca86e01b9Yassir Elley /* supported GPO access control modes */
60cab26b12df9a2153823972cde0c38ca86e01b9Yassir Elley enum gpo_access_control_mode {
60cab26b12df9a2153823972cde0c38ca86e01b9Yassir Elley GPO_ACCESS_CONTROL_DISABLED,
60cab26b12df9a2153823972cde0c38ca86e01b9Yassir Elley GPO_ACCESS_CONTROL_PERMISSIVE,
60cab26b12df9a2153823972cde0c38ca86e01b9Yassir Elley GPO_ACCESS_CONTROL_ENFORCING
60cab26b12df9a2153823972cde0c38ca86e01b9Yassir Elley } gpo_access_control_mode;
ff4b603cc14ea6ea15caaf89a03e927920124af4Yassir Elley int gpo_cache_timeout;
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley /* supported GPO map options */
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley enum gpo_map_type {
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley GPO_MAP_INTERACTIVE = 0,
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley GPO_MAP_REMOTE_INTERACTIVE,
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley GPO_MAP_NETWORK,
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley GPO_MAP_BATCH,
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley GPO_MAP_SERVICE,
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley GPO_MAP_PERMIT,
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley GPO_MAP_DENY,
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley GPO_MAP_NUM_OPTS
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley } gpo_map_type;
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley hash_table_t *gpo_map_options_table;
a8356a0c98ee44e7256bb1c7767159c70e1fc218Yassir Elley enum gpo_map_type gpo_default_right;
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher};
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher
dea636af4d1902a081ee891f1b19ee2f8729d759Pavel Březinastruct tevent_req *
dea636af4d1902a081ee891f1b19ee2f8729d759Pavel Březinaad_pam_access_handler_send(TALLOC_CTX *mem_ctx,
dea636af4d1902a081ee891f1b19ee2f8729d759Pavel Březina struct ad_access_ctx *access_ctx,
dea636af4d1902a081ee891f1b19ee2f8729d759Pavel Březina struct pam_data *pd,
dea636af4d1902a081ee891f1b19ee2f8729d759Pavel Březina struct dp_req_params *params);
dea636af4d1902a081ee891f1b19ee2f8729d759Pavel Březina
dea636af4d1902a081ee891f1b19ee2f8729d759Pavel Březinaerrno_t
dea636af4d1902a081ee891f1b19ee2f8729d759Pavel Březinaad_pam_access_handler_recv(TALLOC_CTX *mem_ctx,
dea636af4d1902a081ee891f1b19ee2f8729d759Pavel Březina struct tevent_req *req,
dea636af4d1902a081ee891f1b19ee2f8729d759Pavel Březina struct pam_data **_data);
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher
a4cce2c98eedecb5d3b47da62104634cae268434Stephen Gallagher#endif /* AD_ACCESS_H_ */