diff options
author | eindenbom <eindenbom@gmail.com> | 2010-07-07 20:39:50 +0400 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-07-09 11:44:07 -0400 |
commit | 056901f031d8df43ec4fc7e67bc43dd5d967de71 (patch) | |
tree | f11e23f0c8cbe533c64a65d5b3e49d8bcf93f4f5 /src/providers/ipa/ipa_access.h | |
parent | ee3b4d1d0a6a438626e2dbbae3bf96d2d6faaf18 (diff) | |
download | sssd-056901f031d8df43ec4fc7e67bc43dd5d967de71.tar.gz sssd-056901f031d8df43ec4fc7e67bc43dd5d967de71.tar.xz sssd-056901f031d8df43ec4fc7e67bc43dd5d967de71.zip |
Use new LDAP connection framework in IPA access backend.
Diffstat (limited to 'src/providers/ipa/ipa_access.h')
-rw-r--r-- | src/providers/ipa/ipa_access.h | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/src/providers/ipa/ipa_access.h b/src/providers/ipa/ipa_access.h index 514afc000..b43c712f1 100644 --- a/src/providers/ipa/ipa_access.h +++ b/src/providers/ipa/ipa_access.h @@ -47,6 +47,7 @@ struct ipa_access_ctx { struct hbac_ctx { struct sdap_id_ctx *sdap_ctx; + struct sdap_id_op *sdap_op; struct dp_option *ipa_options; struct time_rules_ctx *tr_ctx; struct be_req *be_req; @@ -58,12 +59,51 @@ struct hbac_ctx { const char *user_dn; size_t groups_count; const char **groups; - bool offline; char *ldap_basedn; struct sysdb_attrs **hbac_services_list; size_t hbac_services_count; }; +/* Get BE context associated with HBAC context */ +static inline struct be_ctx *hbac_ctx_be(struct hbac_ctx *hbac_ctx) +{ + struct be_req *req = hbac_ctx != NULL ? hbac_ctx->be_req : NULL; + return req != NULL ? req->be_ctx : NULL; +} + +/* Get sysdb associated with HBAC context */ +static inline struct sysdb_ctx *hbac_ctx_sysdb(struct hbac_ctx *hbac_ctx) +{ + struct be_ctx *be_ctx = hbac_ctx_be(hbac_ctx); + return be_ctx != NULL ? be_ctx->sysdb : NULL; +} + +/* Get tevent context associated with HBAC context */ +static inline struct tevent_context *hbac_ctx_ev(struct hbac_ctx *hbac_ctx) +{ + struct be_ctx *be_ctx = hbac_ctx_be(hbac_ctx); + return be_ctx != NULL ? be_ctx->ev : NULL; +} + +/* Get sdap_id_ctx associated with HBAC context */ +static inline struct sdap_id_ctx *hbac_ctx_sdap_id_ctx(struct hbac_ctx *hbac_ctx) +{ + return hbac_ctx != NULL ? hbac_ctx->sdap_ctx : NULL; +} + +/* Get struct sdap_id_op associated with HBAC context */ +static inline struct sdap_id_op *hbac_ctx_sdap_id_op(struct hbac_ctx *hbac_ctx) +{ + return hbac_ctx != NULL ? hbac_ctx->sdap_op : NULL; +} + +/* Check whether the current HBAC request is processed in off-line mode */ +static inline bool hbac_ctx_is_offline(struct hbac_ctx *ctx) +{ + return ctx == NULL || ctx->sdap_op == NULL; +} + + void ipa_access_handler(struct be_req *be_req); #endif /* _IPA_ACCESS_H_ */ |