summaryrefslogtreecommitdiffstats
path: root/src/providers/ipa/ipa_access.h
diff options
context:
space:
mode:
authoreindenbom <eindenbom@gmail.com>2010-07-07 20:39:50 +0400
committerStephen Gallagher <sgallagh@redhat.com>2010-07-09 11:44:07 -0400
commit056901f031d8df43ec4fc7e67bc43dd5d967de71 (patch)
treef11e23f0c8cbe533c64a65d5b3e49d8bcf93f4f5 /src/providers/ipa/ipa_access.h
parentee3b4d1d0a6a438626e2dbbae3bf96d2d6faaf18 (diff)
downloadsssd-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.h42
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_ */