diff options
author | Jonathon Jongsma <jonathon.jongsma@collabora.co.uk> | 2011-02-21 11:13:49 -0600 |
---|---|---|
committer | Jonathon Jongsma <jonathon.jongsma@collabora.co.uk> | 2011-02-21 11:13:49 -0600 |
commit | 1af47cc711a1924bb135f57a7dd423d1124fcc18 (patch) | |
tree | 22a050b19c9dc075f20b817fec79ccb7560f8c06 | |
parent | 64c042f5fe1ac631059f0383ac976ca1474a7c0f (diff) | |
parent | 37d63ee6316537f02c345c60f6383f775d54d605 (diff) |
Merge branch 'account-storage'
-rw-r--r-- | spec/Account_Interface_External_Password_Storage.xml | 52 | ||||
-rw-r--r-- | spec/Channel_Interface_Credentials_Storage.xml | 58 | ||||
-rw-r--r-- | spec/Channel_Interface_SASL_Authentication.xml | 19 | ||||
-rw-r--r-- | spec/Connection_Manager_Interface_Account_Storage.xml | 117 | ||||
-rw-r--r-- | spec/all.xml | 3 |
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"> |