summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathon Jongsma <jonathon.jongsma@collabora.co.uk>2011-02-21 11:13:49 -0600
committerJonathon Jongsma <jonathon.jongsma@collabora.co.uk>2011-02-21 11:13:49 -0600
commit1af47cc711a1924bb135f57a7dd423d1124fcc18 (patch)
tree22a050b19c9dc075f20b817fec79ccb7560f8c06
parent64c042f5fe1ac631059f0383ac976ca1474a7c0f (diff)
parent37d63ee6316537f02c345c60f6383f775d54d605 (diff)
Merge branch 'account-storage'
-rw-r--r--spec/Account_Interface_External_Password_Storage.xml52
-rw-r--r--spec/Channel_Interface_Credentials_Storage.xml58
-rw-r--r--spec/Channel_Interface_SASL_Authentication.xml19
-rw-r--r--spec/Connection_Manager_Interface_Account_Storage.xml117
-rw-r--r--spec/all.xml3
5 files changed, 249 insertions, 0 deletions
diff --git a/spec/Account_Interface_External_Password_Storage.xml b/spec/Account_Interface_External_Password_Storage.xml
new file mode 100644
index 00000000..f868f65c
--- /dev/null
+++ b/spec/Account_Interface_External_Password_Storage.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" ?>
+<node name="/Account_Interface_External_Password_Storage"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+
+ <tp:copyright>Copyright © 2011 Collabora Ltd.</tp:copyright>
+ <tp:license xmlns="http://www.w3.org/1999/xhtml">
+ <p>This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.</p>
+
+ <p>This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.</p>
+
+ <p>You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.</p>
+ </tp:license>
+
+ <interface name="org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT"
+ tp:causes-havoc="experimental">
+ <tp:added version="0.21.UNRELEASED">(draft 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.Account"/>
+
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>An interface for Accounts whose passwords are stored externally and
+ SHOULD NOT be stored by either the <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy">AccountManager</tp:dbus-ref> nor
+ any <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy.Channel.Type">ServerAuthentication</tp:dbus-ref>
+ handler.</p>
+ </tp:docstring>
+
+ <method name="ForgetPassword" tp:name-for-bindings="Forget_Password">
+ <tp:docstring>
+ <p>Clears any saved password associated with this account.</p>
+ </tp:docstring>
+ </method>
+
+ <property name="PasswordSaved"
+ tp:name-for-bindings="Password_Saved"
+ type="b" access="read">
+ <tp:docstring>
+ <p>Indicates whether the account has a saved password or not.</p>
+ </tp:docstring>
+ </property>
+
+ </interface>
+</node>
diff --git a/spec/Channel_Interface_Credentials_Storage.xml b/spec/Channel_Interface_Credentials_Storage.xml
new file mode 100644
index 00000000..1af7edb1
--- /dev/null
+++ b/spec/Channel_Interface_Credentials_Storage.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" ?>
+<node name="/Channel_Interface_Credentials_Storage"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+ <tp:copyright> Copyright © 2011 Collabora Limited </tp:copyright>
+ <tp:license xmlns="http://www.w3.org/1999/xhtml">
+ <p>This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.</p>
+
+<p>This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.</p>
+
+<p>You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
+ </tp:license>
+ <interface name="org.freedesktop.Telepathy.Channel.Interface.CredentialsStorage.DRAFT">
+ <tp:added version="0.21.UNRELEASED">(draft 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A channel interface for SASL authentication channels that can save the
+ credentials in the connection manager.</p>
+
+ <p>This interface is unlikely to be present for any SASL channels that are
+ more complex than a simple password prompt (e.g.
+ <code>X-TELEPATHY-PASSWORD</code> or <code>PLAIN</code>).</p>
+
+ <p>In practice, this interface should only be implemented by connection
+ managers that implement the <tp:dbus-ref
+ namespace="ofdT">ConnectionManager.Interface.AccountStorage.DRAFT</tp:dbus-ref>
+ interface. To clear a password that has been saved in this manner, a
+ client should call <tp:dbus-ref
+ namespace="ofdT.ConnectionManager.Interface">AccountStorage.DRAFT.ForgetCredentials</tp:dbus-ref>
+ on the Account.</p>
+ </tp:docstring>
+
+ <method name="StoreCredentials" tp:name-for-bindings="Store_Credentials">
+ <arg direction="in" name="Store" type="b">
+ <tp:docstring>
+ Whether to store the authentication credentials.
+ </tp:docstring>
+ </arg>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>This method tells the connection manager whether to store the
+ authentication response in order to allow the connection manager to
+ sign-on automatically in the future.</p>
+ <p>If credentials have been stored in this way, the client SHOULD NOT
+ attempt to store the credentials locally in a keyring.</p>
+ <p>This method MUST be called before <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication">AcceptSASL</tp:dbus-ref>
+ is called or it will have no effect.</p>
+ </tp:docstring>
+ </method>
+ </interface>
+</node>
diff --git a/spec/Channel_Interface_SASL_Authentication.xml b/spec/Channel_Interface_SASL_Authentication.xml
index 38568b1d..7985a6bd 100644
--- a/spec/Channel_Interface_SASL_Authentication.xml
+++ b/spec/Channel_Interface_SASL_Authentication.xml
@@ -367,6 +367,25 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</tp:docstring>
</property>
+ <property name="MaySaveResponse" tp:name-for-bindings="May_Save_Response"
+ type="b" access="read" tp:immutable="yes">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Whether or not the client can save the authentication response and
+ re-use it to automate future authentication challenges.</p>
+
+ <p>If this property is <code>False</code>, the client SHOULD NOT attempt
+ to cache the authentication response in its own keyring.</p>
+
+ <p>If this property is not specified, it should be treated as if it were
+ <code>True</code>.</p>
+
+ <tp:rationale>Some protocols or services may have terms and conditions
+ that prohibit caching a user's credentials.</tp:rationale>
+
+ </tp:docstring>
+ </property>
+
+
<method name="StartMechanism" tp:name-for-bindings="Start_Mechanism">
<arg direction="in" name="Mechanism" type="s" tp:type="SASL_Mechanism">
<tp:docstring>
diff --git a/spec/Connection_Manager_Interface_Account_Storage.xml b/spec/Connection_Manager_Interface_Account_Storage.xml
new file mode 100644
index 00000000..5c7dd03a
--- /dev/null
+++ b/spec/Connection_Manager_Interface_Account_Storage.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" ?>
+<node name="/Connection_Manager_Interface_Account_Storage"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+
+ <tp:copyright>Copyright © 2011 Collabora Ltd.</tp:copyright>
+ <tp:license xmlns="http://www.w3.org/1999/xhtml">
+ <p>This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.</p>
+
+ <p>This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.</p>
+
+ <p>You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.</p>
+ </tp:license>
+
+ <interface name="org.freedesktop.Telepathy.ConnectionManager.Interface.AccountStorage.DRAFT"
+ tp:causes-havoc="experimental">
+ <tp:added version="0.21.UNRELEASED">(draft 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.ConnectionManager"/>
+
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>An interface for connection managers that store account details
+ internally. At the moment this consists only of storing an account's
+ credentials, but other functionality may be added in the future.</p>
+ <p><tp:dbus-ref
+ namespace="org.freedesktop.Telepathy">Account</tp:dbus-ref> objects
+ representing accounts on a connection manager that implements this
+ interface should implement the <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy.Account.Interface">ExternalPasswordStorage.DRAFT</tp:dbus-ref>
+ interface.</p>
+
+ </tp:docstring>
+
+ <tp:flags name="Account_Flags" value-prefix="Account_Flag" type="u">
+ <tp:docstring>
+ A set of flags representing the status of the Account stored in the Connection Manager.
+ </tp:docstring>
+
+ <tp:flag suffix="Credentials_Stored" value="1">
+ <tp:docstring>
+ The associated account has its authentication credentials (password)
+ stored in the connection manager
+ </tp:docstring>
+ </tp:flag>
+ </tp:flags>
+
+ <tp:mapping name="Account_Flags_Map" array-name="Account_Flags_Map_List">
+ <tp:docstring>A mapping from Account_Ids to account flags.
+ </tp:docstring>
+ <tp:member type="s" name="Account_Id"/>
+ <tp:member type="u" tp:type="Account_Flags" name="Flags"/>
+ </tp:mapping>
+
+ <property name="Accounts"
+ tp:name-for-bindings="Accounts"
+ type="a{su}" tp:type="Account_Flags_Map" access="read">
+ <tp:docstring>
+ The set of Accounts stored in this connection manager, and flags
+ indicating their status.
+ </tp:docstring>
+ </property>
+
+ <method name="ForgetCredentials" tp:name-for-bindings="Forget_Credentials">
+ <tp:docstring>
+ Clears any saved credentials associated with the specified Account_Id.
+ Any other saved data related to the account will be unaffected.
+ </tp:docstring>
+
+ <arg direction="in" name="Account_Id"
+ type="s">
+ <tp:docstring>
+ An account id as returned from <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy">Protocol.IdentifyAccount</tp:dbus-ref>.
+ </tp:docstring>
+ </arg>
+
+ <tp:possible-errors>
+ <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
+ <tp:docstring>
+ The account id is invalid.
+ </tp:docstring>
+ </tp:error>
+ </tp:possible-errors>
+ </method>
+
+ <method name="RemoveAccount" tp:name-for-bindings="Remove_Account">
+ <tp:docstring>
+ Completely removes all data associated with an account from the
+ connection manager's internal storage.
+ </tp:docstring>
+
+ <arg direction="in" name="Account_Id"
+ type="s">
+ <tp:docstring>
+ An account id as returned from <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy">Protocol.IdentifyAccount</tp:dbus-ref>.
+ </tp:docstring>
+ </arg>
+
+ <tp:possible-errors>
+ <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
+ <tp:docstring>
+ The account id is invalid.
+ </tp:docstring>
+ </tp:error>
+ </tp:possible-errors>
+ </method>
+
+ </interface>
+</node>
diff --git a/spec/all.xml b/spec/all.xml
index 0c3fed59..e6392db5 100644
--- a/spec/all.xml
+++ b/spec/all.xml
@@ -32,6 +32,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</p>
</tp:docstring>
<xi:include href="Connection_Manager.xml"/>
+ <xi:include href="Connection_Manager_Interface_Account_Storage.xml"/>
<xi:include href="Protocol.xml"/>
<xi:include href="Protocol_Interface_Addressing.xml"/>
<xi:include href="Protocol_Interface_Avatars.xml"/>
@@ -163,6 +164,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<xi:include href="Channel_Interface_Password.xml"/>
<xi:include href="Channel_Interface_Room.xml"/>
<xi:include href="Channel_Interface_SASL_Authentication.xml"/>
+ <xi:include href="Channel_Interface_Credentials_Storage.xml"/>
<xi:include href="Channel_Interface_Securable.xml"/>
<xi:include href="Channel_Interface_Service_Point.xml"/>
<xi:include href="Channel_Interface_Tube.xml"/>
@@ -261,6 +263,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<xi:include href="Account_Interface_Avatar.xml"/>
<xi:include href="Account_Interface_Hidden.xml"/>
<xi:include href="Account_Interface_Storage.xml"/>
+ <xi:include href="Account_Interface_External_Password_Storage.xml"/>
</tp:section>
<tp:section name="The Channel Dispatcher">