simple_access.c revision eb2ec2c35742caf164b49b660b5045d08cac7623
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa Simple access control
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa Copyright (C) Sumit Bose <sbose@redhat.com> 2010
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa This program is free software; you can redistribute it and/or modify
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa it under the terms of the GNU General Public License as published by
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa the Free Software Foundation; either version 3 of the License, or
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa (at your option) any later version.
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa This program is distributed in the hope that it will be useful,
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa but WITHOUT ANY WARRANTY; without even the implied warranty of
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa GNU General Public License for more details.
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa You should have received a copy of the GNU General Public License
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa along with this program. If not, see <http://www.gnu.org/licenses/>.
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa#define CONFDB_SIMPLE_ALLOW_USERS "simple_allow_users"
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa#define CONFDB_SIMPLE_DENY_USERS "simple_deny_users"
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa#define CONFDB_SIMPLE_ALLOW_GROUPS "simple_allow_groups"
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa#define CONFDB_SIMPLE_DENY_GROUPS "simple_deny_groups"
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksastatic void simple_access_check(struct tevent_req *req);
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksavoid simple_access_handler(struct be_req *be_req)
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa struct be_ctx *be_ctx = be_req_get_be_ctx(be_req);
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa pd = talloc_get_type(be_req_get_data(be_req), struct pam_data);
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa DEBUG(4, ("simple access does not handles pam task %d.\n", pd->cmd));
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa ctx = talloc_get_type(be_ctx->bet_info[BET_ACCESS].pvt_bet_data,
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa req = simple_access_check_send(be_req, be_ctx->ev, ctx, pd->user);
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa tevent_req_set_callback(req, simple_access_check, be_req);
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksa be_req_terminate(be_req, DP_ERR_OK, pd->pam_status, NULL);
39eaacfe933c39700a6edbfa72b83255cd868822Eugen Kuksastatic void simple_access_check(struct tevent_req *req)
goto done;
if (access_granted) {
done:
char **list,
char ***_out)
size_t i;
return EOK;
goto done;
goto done;
for (i = 0; i < size; i++) {
goto done;
done:
return ret;
void **pvt_data)
const char *name;
const char *option;
char **orig_list;
char ***ctx_list;
return ENOMEM;
goto failed;
goto failed;
return EOK;
return ret;