/***************************************************************************
- * 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 *
};
enum HashVersion {
- sha1,
-#if QT_VERSION >= 0x050000
- sha2_512,
- latest=sha2_512
-#else
- latest=sha1
-#endif
+ Sha1,
+ Sha2_512,
+ Latest=Sha2_512
+
};
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
*/
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
*/
QString hashPasswordSha1(const QString &password);
bool checkHashedPasswordSha1(const QString &password, const QString &hashedPassword);
-#if QT_VERSION >= 0x050000
QString hashPasswordSha2_512(const QString &password);
bool checkHashedPasswordSha2_512(const QString &password, const QString &hashedPassword);
-#endif
+ QString sha2_512(const QString &input);
};