Handle invalid token and second registration during the Slack registration

This commit is contained in:
Jan Kaluza 2015-11-25 16:40:10 +01:00
parent 1309637a58
commit 2225eb7765
2 changed files with 17 additions and 14 deletions

View file

@ -126,8 +126,17 @@ std::string SlackUserRegistration::handleOAuth2Code(const std::string &code, con
}
}
std::string domain = getTeamDomain(token);
if (domain.empty()) {
return "The token you have provided is invalid";
}
UserInfo user;
user.jid = getTeamDomain(token);
if (m_storageBackend->getUser(domain, user)) {
return "You have already registered this Spectrum 2 transport for this Slack Team";
}
user.jid = domain;
user.uin = "";
user.password = "";
user.language = "en";

View file

@ -120,7 +120,7 @@ bool SQLite3Backend::connect() {
if (createDatabase() == false)
return false;
PREP_STMT(m_setUser, "INSERT OR REPLACE INTO " + m_prefix + "users (id, jid, uin, password, language, encoding, last_login, vip) VALUES (?, ?, ?, ?, ?, ?, DATETIME('NOW'), ?)");
PREP_STMT(m_setUser, "INSERT OR REPLACE INTO " + m_prefix + "users (jid, uin, password, language, encoding, last_login, vip) VALUES (?, ?, ?, ?, ?, DATETIME('NOW'), ?)");
PREP_STMT(m_getUser, "SELECT id, jid, uin, password, encoding, language, vip FROM " + m_prefix + "users WHERE jid=?");
PREP_STMT(m_removeUser, "DELETE FROM " + m_prefix + "users WHERE id=?");
@ -223,18 +223,12 @@ bool SQLite3Backend::exec(const std::string &query) {
void SQLite3Backend::setUser(const UserInfo &user) {
sqlite3_reset(m_setUser);
if (user.id == 0) {
sqlite3_bind_null(m_setUser, 1);
}
else {
sqlite3_bind_int(m_setUser, 1, user.id);
}
sqlite3_bind_text(m_setUser, 2, user.jid.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_text(m_setUser, 3, user.uin.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_text(m_setUser, 4, user.password.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_text(m_setUser, 5, user.language.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_text(m_setUser, 6, user.encoding.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_int (m_setUser, 7, user.vip);
sqlite3_bind_text(m_setUser, 1, user.jid.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_text(m_setUser, 2, user.uin.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_text(m_setUser, 3, user.password.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_text(m_setUser, 4, user.language.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_text(m_setUser, 5, user.encoding.c_str(), -1, SQLITE_STATIC);
sqlite3_bind_int (m_setUser, 6, user.vip);
if(sqlite3_step(m_setUser) != SQLITE_DONE) {
LOG4CXX_ERROR(logger, "setUser query"<< (sqlite3_errmsg(m_db) == NULL ? "" : sqlite3_errmsg(m_db)));