Slack: Fix OAuth2 flow

This commit is contained in:
Jan Kaluza 2016-01-07 20:00:50 +01:00
parent 8df5cd7d1b
commit 4f038ef95f
2 changed files with 12 additions and 20 deletions

View file

@ -51,7 +51,7 @@ bool UserRegistration::registerUser(const UserInfo &row, bool allowPasswordChang
UserInfo dummy;
bool registered = m_storageBackend->getUser(row.jid, dummy);
if (registered && !allowPasswordChange) {
if (!registered || (registered && allowPasswordChange)) {
m_storageBackend->setUser(row);
doUserRegistration(row);
onUserRegistered(row);

View file

@ -132,31 +132,23 @@ std::string SlackUserRegistration::handleOAuth2Code(const std::string &code, con
}
UserInfo user;
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";
user.encoding = token; // Use encoding as a token handler... it's BAD, but easy...
user.vip = 0;
user.id = 0;
registerUser(user);
m_storageBackend->getUser(domain, user);
user.jid = domain;
user.language = "en";
user.encoding = "";
user.vip = 0;
registerUser(user, true);
m_storageBackend->getUser(user.jid, user);
if (oauth2) {
std::string value = data[2];
int type = (int) TYPE_STRING;
m_storageBackend->getUserSetting(user.id, "bot_token", type, value);
}
else {
std::string value = token;
int type = (int) TYPE_STRING;
m_storageBackend->getUserSetting(user.id, "bot_token", type, value);
}
std::string value = token;
int type = (int) TYPE_STRING;
m_storageBackend->getUserSetting(user.id, "bot_token", type, value);
LOG4CXX_INFO(logger, "Registered Slack user " << user.jid);