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) {
|
||||
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.";
|
||||
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()) {
|
||||
|
||||
@@ -169,31 +169,24 @@ namespace OpenWifi {
|
||||
Logger_.information(Poco::format("Verification e-mail requested for %s",Existing.email));
|
||||
}
|
||||
|
||||
if(NewUser.userTypeProprietaryInfo.mfa.enabled!=Existing.userTypeProprietaryInfo.mfa.enabled) {
|
||||
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(RawObject->has("userTypeProprietaryInfo")) {
|
||||
Existing.userTypeProprietaryInfo.mfa.enabled = NewUser.userTypeProprietaryInfo.mfa.enabled;
|
||||
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.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;
|
||||
std::cout << "Saving in mobiles" << std::endl;
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
Existing.userTypeProprietaryInfo.mfa.enabled = NewUser.userTypeProprietaryInfo.mfa.enabled;
|
||||
}
|
||||
|
||||
if(Storage()->UpdateUserInfo(UserInfo_.userinfo.email,Id,Existing)) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user