X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fstorage.h;h=fec8d861cca5045806eef780e827a11048c89de5;hb=ce1feba3940c27dbce5eff9fa9705dce8240a64a;hp=87e9b8421e0019df3469af0df050f8bd22bfe726;hpb=5e6f3661d30bc760f912dfe0627e5c62c6f2c144;p=quassel.git diff --git a/src/core/storage.h b/src/core/storage.h index 87e9b842..fec8d861 100644 --- a/src/core/storage.h +++ b/src/core/storage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 by the Quassel Project * + * Copyright (C) 2005-2016 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -46,7 +46,7 @@ public: Sha1, Sha2_512, Latest=Sha2_512 - + }; public slots: @@ -59,6 +59,10 @@ public slots: */ virtual bool isAvailable() const = 0; + //! Returns the identifier of the authenticator backend + /** \return A string that can be used by the client to identify the authenticator backend */ + virtual QString backendId() const = 0; + //! Returns the display name of the storage backend /** \return A string that can be used by the client to name the storage backend */ virtual QString displayName() const = 0; @@ -67,12 +71,14 @@ public slots: /** \return A string that can be displayed by the client to describe the storage backend */ virtual QString description() const = 0; - //! Returns a list of properties required to use the storage backend - virtual QStringList setupKeys() const = 0; - - //! Returns a map where the keys are are properties to use the storage backend - /* the values are QVariants with default values */ - virtual QVariantMap setupDefaults() const = 0; + //! Returns data required to configure the authenticator backend + /** + * A list of flattened triples for each field: {key, translated field name, default value} + * The default value's type determines the kind of input widget to be shown + * (int -> QSpinBox; QString -> QLineEdit) + * \return A list of triples defining the data to be shown in the configuration dialog + */ + virtual QVariantList setupData() const = 0; //! Setup the storage provider. /** This prepares the storage provider (e.g. create tables, etc.) for use within Quassel. @@ -103,7 +109,7 @@ public slots: * \param password The cleartext password for the new user * \return The new user's UserId */ - virtual UserId addUser(const QString &user, const QString &password) = 0; + virtual UserId addUser(const QString &user, const QString &password, const QString &authenticator = "Database") = 0; //! Update a core user's password. /** \param user The user's id @@ -131,6 +137,13 @@ public slots: */ virtual UserId getUserId(const QString &username) = 0; + //! Get the authentication provider for a given user. + /** \param username The username to validate + * \return The name of the auth provider if the UserId exists, "" otherwise. + */ + virtual QString getUserAuthenticator(const UserId userid) = 0; + + //! Determine the UserId of the internal user /** \return A valid UserId if the password matches the username; 0 else */