summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2017-11-02 14:59:57 +0100
committerPavel Březina <pbrezina@redhat.com>2017-11-06 12:03:01 +0100
commitc82d0bde53709f1086e145d3c68c2f9462edc11d (patch)
tree744cb66503d077ba030720b11315198bf3472840
parent3e731c81e25e69d06d703cd843e771e763d5f27b (diff)
downloadsssd-c82d0bde53709f1086e145d3c68c2f9462edc11d.tar.gz
sssd-c82d0bde53709f1086e145d3c68c2f9462edc11d.tar.xz
sssd-c82d0bde53709f1086e145d3c68c2f9462edc11d.zip
ifp: add method to refresh access control rules in domain
-rw-r--r--src/responder/ifp/ifp_domains.c22
-rw-r--r--src/responder/ifp/ifp_domains.h3
-rw-r--r--src/responder/ifp/ifp_iface.c3
-rw-r--r--src/responder/ifp/ifp_iface.xml3
-rw-r--r--src/responder/ifp/ifp_iface_generated.c13
-rw-r--r--src/responder/ifp/ifp_iface_generated.h5
6 files changed, 48 insertions, 1 deletions
diff --git a/src/responder/ifp/ifp_domains.c b/src/responder/ifp/ifp_domains.c
index 977bbfcbe..cd7e2fc7a 100644
--- a/src/responder/ifp/ifp_domains.c
+++ b/src/responder/ifp/ifp_domains.c
@@ -630,3 +630,25 @@ int ifp_domains_domain_list_servers(struct sbus_request *sbus_req,
return EOK;
}
+
+int ifp_domains_domain_refresh_access_rules(struct sbus_request *sbus_req,
+ void *data)
+{
+ struct ifp_ctx *ifp_ctx;
+ struct sss_domain_info *dom;
+
+ ifp_ctx = talloc_get_type(data, struct ifp_ctx);
+
+ dom = get_domain_info_from_req(sbus_req, data);
+ if (dom == NULL) {
+ sbus_request_reply_error(sbus_req, SBUS_ERROR_UNKNOWN_DOMAIN,
+ "Unknown domain");
+ return EOK;
+ }
+
+ rdp_message_send_and_reply(sbus_req, ifp_ctx->rctx, dom, DP_PATH,
+ IFACE_DP_ACCESS_CONTROL,
+ IFACE_DP_ACCESS_CONTROL_REFRESHRULES);
+
+ return EOK;
+}
diff --git a/src/responder/ifp/ifp_domains.h b/src/responder/ifp/ifp_domains.h
index 621ba6158..d8cc9d34c 100644
--- a/src/responder/ifp/ifp_domains.h
+++ b/src/responder/ifp/ifp_domains.h
@@ -108,4 +108,7 @@ int ifp_domains_domain_list_servers(struct sbus_request *sbus_req,
void *data,
const char *service);
+int ifp_domains_domain_refresh_access_rules(struct sbus_request *sbus_req,
+ void *data);
+
#endif /* IFP_DOMAINS_H_ */
diff --git a/src/responder/ifp/ifp_iface.c b/src/responder/ifp/ifp_iface.c
index 3293b92d7..f995e28f9 100644
--- a/src/responder/ifp/ifp_iface.c
+++ b/src/responder/ifp/ifp_iface.c
@@ -79,7 +79,8 @@ struct iface_ifp_domains_domain iface_ifp_domains_domain = {
.IsOnline = ifp_domains_domain_is_online,
.ListServices = ifp_domains_domain_list_services,
.ActiveServer = ifp_domains_domain_active_server,
- .ListServers = ifp_domains_domain_list_servers
+ .ListServers = ifp_domains_domain_list_servers,
+ .RefreshAccessRules = ifp_domains_domain_refresh_access_rules
};
struct iface_ifp_users iface_ifp_users = {
diff --git a/src/responder/ifp/ifp_iface.xml b/src/responder/ifp/ifp_iface.xml
index 39385e866..1aa7eac03 100644
--- a/src/responder/ifp/ifp_iface.xml
+++ b/src/responder/ifp/ifp_iface.xml
@@ -112,6 +112,9 @@
<arg name="service_name" type="s" direction="in" />
<arg name="servers" type="as" direction="out" />
</method>
+
+ <method name="RefreshAccessRules">
+ </method>
</interface>
<interface name="org.freedesktop.sssd.infopipe.Cache">
diff --git a/src/responder/ifp/ifp_iface_generated.c b/src/responder/ifp/ifp_iface_generated.c
index 6943e38e3..c2cdbf5b0 100644
--- a/src/responder/ifp/ifp_iface_generated.c
+++ b/src/responder/ifp/ifp_iface_generated.c
@@ -552,6 +552,12 @@ int iface_ifp_domains_domain_ListServers_finish(struct sbus_request *req, const
DBUS_TYPE_INVALID);
}
+int iface_ifp_domains_domain_RefreshAccessRules_finish(struct sbus_request *req)
+{
+ return sbus_request_return_and_finish(req,
+ DBUS_TYPE_INVALID);
+}
+
/* methods for org.freedesktop.sssd.infopipe.Domains.Domain */
const struct sbus_method_meta iface_ifp_domains_domain__methods[] = {
{
@@ -582,6 +588,13 @@ const struct sbus_method_meta iface_ifp_domains_domain__methods[] = {
offsetof(struct iface_ifp_domains_domain, ListServers),
invoke_s_method,
},
+ {
+ "RefreshAccessRules", /* name */
+ NULL, /* no in_args */
+ NULL, /* no out_args */
+ offsetof(struct iface_ifp_domains_domain, RefreshAccessRules),
+ NULL, /* no invoker */
+ },
{ NULL, }
};
diff --git a/src/responder/ifp/ifp_iface_generated.h b/src/responder/ifp/ifp_iface_generated.h
index 30752bf06..f1e6c80ba 100644
--- a/src/responder/ifp/ifp_iface_generated.h
+++ b/src/responder/ifp/ifp_iface_generated.h
@@ -57,6 +57,7 @@
#define IFACE_IFP_DOMAINS_DOMAIN_LISTSERVICES "ListServices"
#define IFACE_IFP_DOMAINS_DOMAIN_ACTIVESERVER "ActiveServer"
#define IFACE_IFP_DOMAINS_DOMAIN_LISTSERVERS "ListServers"
+#define IFACE_IFP_DOMAINS_DOMAIN_REFRESHACCESSRULES "RefreshAccessRules"
/* constants for org.freedesktop.sssd.infopipe.Cache */
#define IFACE_IFP_CACHE "org.freedesktop.sssd.infopipe.Cache"
@@ -209,6 +210,7 @@ struct iface_ifp_domains_domain {
int (*ListServices)(struct sbus_request *req, void *data);
int (*ActiveServer)(struct sbus_request *req, void *data, const char *arg_service);
int (*ListServers)(struct sbus_request *req, void *data, const char *arg_service_name);
+ int (*RefreshAccessRules)(struct sbus_request *req, void *data);
};
/* finish function for IsOnline */
@@ -223,6 +225,9 @@ int iface_ifp_domains_domain_ActiveServer_finish(struct sbus_request *req, const
/* finish function for ListServers */
int iface_ifp_domains_domain_ListServers_finish(struct sbus_request *req, const char *arg_servers[], int len_servers);
+/* finish function for RefreshAccessRules */
+int iface_ifp_domains_domain_RefreshAccessRules_finish(struct sbus_request *req);
+
/* vtable for org.freedesktop.sssd.infopipe.Cache */
struct iface_ifp_cache {
struct sbus_vtable vtable; /* derive from sbus_vtable */