summaryrefslogtreecommitdiffstats
path: root/src/responder/ifp/ifp_iface.xml
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2014-04-15 15:42:15 +0200
committerJakub Hrozek <jhrozek@redhat.com>2014-05-13 21:47:05 +0200
commit2fbe9b9373dcdc28558da07690e57ff7a162a11d (patch)
tree82ea2ce083647b4eb250d8f5bde2fac7bfc2de13 /src/responder/ifp/ifp_iface.xml
parent6cbb9f0d7c6be2cd3553dcb548984bb98926d5cb (diff)
downloadsssd-2fbe9b9373dcdc28558da07690e57ff7a162a11d.tar.gz
sssd-2fbe9b9373dcdc28558da07690e57ff7a162a11d.tar.xz
sssd-2fbe9b9373dcdc28558da07690e57ff7a162a11d.zip
IFP: Add GetUserAttrs call
Adds a DBus method that allows the caller to retrieve attributes of a user. The synopsis of the call is as follows: <method name="GetUserAttr"> <arg type="s" name="user" direction="in"/> <arg type="as" name="attr" direction="in"/> <arg type="a{sv}" name="values" direction="out"/> </method> The return value is an array (one attribute per array member) of dictionaries. The key of the dictionary is the attribute name, the value is a variant containing the attribute values as strings. If an attribute does not exist or is not permitted to be read, no error is returned. If the users does not exist, the method returns an error. In future patches this function will be marked as obsolete in favor of object-oriented approach. ifp_user_get_attr_unpack_msg is a separate function to allow extending it in a later patch. The function to check the cache validity duplicates quite a bit of code with the NSS responder. The refactoring would be nice to get done along with #843. Reviewed-by: Pavel Březina <pbrezina@redhat.com> Reviewed-by: Stef Walter <stefw@redhat.com>
Diffstat (limited to 'src/responder/ifp/ifp_iface.xml')
-rw-r--r--src/responder/ifp/ifp_iface.xml9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/responder/ifp/ifp_iface.xml b/src/responder/ifp/ifp_iface.xml
index 078d29e2d..de6acce2f 100644
--- a/src/responder/ifp/ifp_iface.xml
+++ b/src/responder/ifp/ifp_iface.xml
@@ -3,9 +3,18 @@
<node>
<interface name="org.freedesktop.sssd.infopipe">
<annotation value="infopipe_iface" name="org.freedesktop.DBus.GLib.CSymbol"/>
+
<method name="Ping">
<!-- manual argument parsing, raw handler -->
<annotation name="org.freedesktop.sssd.RawHandler" value="true"/>
</method>
+
+ <method name="GetUserAttr">
+ <arg name="user" type="s" direction="in" />
+ <arg name="attr" type="as" direction="in" />
+ <arg name="values" type="a{sv}" direction="out"/>
+ <annotation name="org.freedesktop.sssd.RawHandler" value="true"/>
+ </method>
+
</interface>
</node>