mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentralsec.git
synced 2025-10-31 18:57:51 +00:00
Fixing MFA saving issue
This commit is contained in:
@@ -41,7 +41,7 @@ namespace OpenWifi {
|
|||||||
bool MFAServer::SendChallenge(const SecurityObjects::UserInfoAndPolicy &UInfo, const std::string &Method, const std::string &Challenge) {
|
bool MFAServer::SendChallenge(const SecurityObjects::UserInfoAndPolicy &UInfo, const std::string &Method, const std::string &Challenge) {
|
||||||
if(Method=="sms" && SMSSender()->Enabled() && !UInfo.userinfo.userTypeProprietaryInfo.mobiles.empty()) {
|
if(Method=="sms" && SMSSender()->Enabled() && !UInfo.userinfo.userTypeProprietaryInfo.mobiles.empty()) {
|
||||||
std::string Message = "This is your login code: " + Challenge + " Please enter this in your login screen.";
|
std::string Message = "This is your login code: " + Challenge + " Please enter this in your login screen.";
|
||||||
return SMSSender()->Send(UInfo.userinfo.userTypeProprietaryInfo.mobiles[0].number, Message);
|
return (SMSSender()->Send(UInfo.userinfo.userTypeProprietaryInfo.mobiles[0].number, Message)==0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Method=="email" && SMTPMailerService()->Enabled() && !UInfo.userinfo.email.empty()) {
|
if(Method=="email" && SMTPMailerService()->Enabled() && !UInfo.userinfo.email.empty()) {
|
||||||
|
|||||||
@@ -169,30 +169,23 @@ namespace OpenWifi {
|
|||||||
Logger_.information(Poco::format("Verification e-mail requested for %s",Existing.email));
|
Logger_.information(Poco::format("Verification e-mail requested for %s",Existing.email));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(NewUser.userTypeProprietaryInfo.mfa.enabled!=Existing.userTypeProprietaryInfo.mfa.enabled) {
|
if(RawObject->has("userTypeProprietaryInfo")) {
|
||||||
std::cout << "Saving MFA" << std::endl;
|
|
||||||
if(!NewUser.userTypeProprietaryInfo.mfa.enabled) {
|
|
||||||
Existing.userTypeProprietaryInfo.mfa.enabled=false;
|
|
||||||
} else {
|
|
||||||
// Need to make sure the provided number has been validated.
|
|
||||||
if(NewUser.userTypeProprietaryInfo.mfa.method=="sms") {
|
|
||||||
std::cout << "Saving in sms" << std::endl;
|
|
||||||
if(NewUser.userTypeProprietaryInfo.mobiles.empty()) {
|
|
||||||
return BadRequest(RESTAPI::Errors::NeedMobileNumber);
|
|
||||||
}
|
|
||||||
if(!SMSSender()->IsNumberValid(NewUser.userTypeProprietaryInfo.mobiles[0].number)){
|
|
||||||
return BadRequest(RESTAPI::Errors::NeedMobileNumber);
|
|
||||||
}
|
|
||||||
Existing.userTypeProprietaryInfo.mfa.method = "sms";
|
|
||||||
Existing.userTypeProprietaryInfo.mobiles = NewUser.userTypeProprietaryInfo.mobiles;
|
|
||||||
std::cout << "Saving in mobiles" << std::endl;
|
|
||||||
} else if(NewUser.userTypeProprietaryInfo.mfa.method=="email") {
|
|
||||||
|
|
||||||
} else {
|
|
||||||
return BadRequest(RESTAPI::Errors::BadMFAMethod);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Existing.userTypeProprietaryInfo.mfa.enabled = NewUser.userTypeProprietaryInfo.mfa.enabled;
|
Existing.userTypeProprietaryInfo.mfa.enabled = NewUser.userTypeProprietaryInfo.mfa.enabled;
|
||||||
|
if(NewUser.userTypeProprietaryInfo.mfa.method=="sms") {
|
||||||
|
Existing.userTypeProprietaryInfo.mfa.method=NewUser.userTypeProprietaryInfo.mfa.method;
|
||||||
|
auto MobileStruct = RawObject->get("userTypeProprietaryInfo");
|
||||||
|
auto Info = MobileStruct.extract<Poco::JSON::Object::Ptr>();
|
||||||
|
if(Info->isArray("mobiles")) {
|
||||||
|
Existing.userTypeProprietaryInfo.mobiles = NewUser.userTypeProprietaryInfo.mobiles;
|
||||||
|
}
|
||||||
|
if(!NewUser.userTypeProprietaryInfo.mobiles.empty() && !SMSSender()->IsNumberValid(NewUser.userTypeProprietaryInfo.mobiles[0].number)){
|
||||||
|
return BadRequest(RESTAPI::Errors::NeedMobileNumber);
|
||||||
|
}
|
||||||
|
} else if(NewUser.userTypeProprietaryInfo.mfa.method=="email") {
|
||||||
|
Existing.userTypeProprietaryInfo.mfa.method=NewUser.userTypeProprietaryInfo.mfa.method;
|
||||||
|
} else {
|
||||||
|
return BadRequest(RESTAPI::Errors::BadMFAMethod);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Storage()->UpdateUserInfo(UserInfo_.userinfo.email,Id,Existing)) {
|
if(Storage()->UpdateUserInfo(UserInfo_.userinfo.email,Id,Existing)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user