/***************************************************************************
- * 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 *
Sha1,
Sha2_512,
Latest=Sha2_512
-
+
};
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;
/** \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.
* \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
*/
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
*/