public async Task <ActionResult> ChangePassword( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "user/changepassword")] HttpRequest req, ILogger log) { TSUser tsUser = await MyFromBody <TSUser> .FromBody(req, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); ClaimsPrincipal User = MyTokenValidator.Authenticate(req, AllowedRoles, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); Guid UserID = Guid.Parse(LocalFunctions.CmdGetValueFromClaim(User.Claims, "UserID", 10, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()))); await CosmosAPI.cosmosDBClientActivity.AddActivityLog(UserID, "change password", TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); string MachineID = LocalFunctions.CmdGetValueFromClaim(User.Claims, "MachineID", 10, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); string IPAddress = req.HttpContext.Connection.RemoteIpAddress.ToString(); CosmosEmailedCode emailedCode = await CosmosAPI.cosmosDBClientEmailedCode.FindEmaiedCode(tsUser.Email, IPAddress, MachineID, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); if (emailedCode != null) { if (emailedCode.Code.ToLower().Equals(tsUser.EmailedCode)) { await CosmosAPI.cosmosDBClientEmailedCode.DeleteEmailedCodes(tsUser.Email, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); TSUser currUser = (await CosmosAPI.cosmosDBClientUser.FindUserByID(UserID, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()))).toTSUser(); currUser.Password = tsUser.Password; if (await CosmosAPI.cosmosDBClientUser.UpdateUser(currUser, false, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()))) { return(new OkObjectResult("OK")); } else { return(new OkObjectResult("Error:Can't add new user!")); } } else { return(new OkObjectResult("Error:Emailed code is not correct!")); } } else { await CosmosAPI.cosmosDBClientError.AddErrorLog(Guid.Empty, "EmaiedCode expected but not found", TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); return(new OkObjectResult("Error:Server can't find emailed code to compare!")); } }
public async Task <bool> AddEmailedCode(CosmosEmailedCode tsEmailedCode, List <string> CallTrace) { try { return(await cosmosDBClientBase.AddItemAsync(tsEmailedCode, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod()))); } catch (CosmosException ex) { await CosmosAPI.cosmosDBClientError.AddErrorLog(Guid.Empty, ex.Message, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())); return(false); } }
private static async Task <bool> CmdSaveEmailedCode(CosmosEmailedCode ParEmailedCode, List <string> CallTrace) { bool result = true; try { await CosmosAPI.cosmosDBClientEmailedCode.DeleteEmailedCodes(ParEmailedCode.Email, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())); result = await CosmosAPI.cosmosDBClientEmailedCode.AddEmailedCode(ParEmailedCode, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())); } catch (Exception ex) { await CosmosAPI.cosmosDBClientError.AddErrorLog(Guid.Empty, ex.Message, AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())); result = false; } return(result); }
public async Task <CosmosEmailedCode> GetEmailedCode(CosmosEmailedCode tsEmailedCode, List <string> CallTrace) { return(await cosmosDBClientBase.GetItemAsync(tsEmailedCode, pkPrefix, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod()))); }
public async Task <ActionResult> Add( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "user/add")] HttpRequest req, ILogger log) { TSUser tsUser = await MyFromBody <TSUser> .FromBody(req, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); List <WebApiUserTypesEnum> localAllowedRoles = new List <WebApiUserTypesEnum> { WebApiUserTypesEnum.NotAuthorized, WebApiUserTypesEnum.Authorized, WebApiUserTypesEnum.Admin }; ClaimsPrincipal User = MyTokenValidator.Authenticate(req, localAllowedRoles, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); Guid UserID = Guid.Parse(LocalFunctions.CmdGetValueFromClaim(User.Claims, "UserID", 10, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()))); await CosmosAPI.cosmosDBClientActivity.AddActivityLog(UserID, "post user", TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); string MachineID = LocalFunctions.CmdGetValueFromClaim(User.Claims, "MachineID", 10, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); string IPAddress = req.HttpContext.Connection.RemoteIpAddress.ToString(); CosmosEmailedCode emailedCode = await CosmosAPI.cosmosDBClientEmailedCode.FindEmaiedCode(tsUser.Email, IPAddress, MachineID, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); if (emailedCode != null) { if (emailedCode.Code.ToLower().Equals(tsUser.EmailedCode)) { await CosmosAPI.cosmosDBClientEmailedCode.DeleteEmailedCodes(tsUser.Email, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); tsUser.ID = Guid.NewGuid(); tsUser.CreateDate = DateTime.Now; if (await CosmosAPI.cosmosDBClientUser.AddUser(tsUser, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()))) { await CosmosAPI.cosmosDBClientSetting.UpdateSettingCounter(Guid.Empty, "UsersCount", true, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); return(new OkObjectResult("OK")); } else { return(new OkObjectResult("Error:Can't add new user!")); } } else { return(new OkObjectResult("Error:Emailed code is not correct!")); } } else { await CosmosAPI.cosmosDBClientError.AddErrorLog(Guid.Empty, "EmaiedCode expected but not found", TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())); return(new OkObjectResult("Error:Server can't find emailed code to compare!")); } }
public static async Task <TSEmail> SendEmail(TSEmail ParTSEmail, string ParIPAddress, string ParMachineID, List <string> CallTrace) { var attr = new EmailAddressAttribute(); if (!attr.IsValid(ParTSEmail.To)) { ParTSEmail.Result = "Error:Email format is not valid!"; return(ParTSEmail); } if (ParTSEmail.To.ToLower().Equals("*****@*****.**")) { ParTSEmail.Result = "Error:Can't sent any email to demo user!"; return(ParTSEmail); } bool MustSaveEmailedCode = false; EmailOperationsEnum tmp_Operation = (EmailOperationsEnum)ParTSEmail.OperationCode; string tmp_Code = string.Empty; switch (tmp_Operation) { case EmailOperationsEnum.Registration: tmp_Code = GlobalFunctions.GetSalt(); if (CmdSendEmailAsync(ParTSEmail.To.Trim(), "Registration", "Hello,\n\nYour code is " + tmp_Code + "\nThank you for registration.\n\nBest Regards,\nSite Administration", AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())).Result) { ParTSEmail.Result = "OK"; MustSaveEmailedCode = true; } else { ParTSEmail.Result = "Error"; MustSaveEmailedCode = false; } break; case EmailOperationsEnum.EmailChange: tmp_Code = GlobalFunctions.GetSalt(); if (CmdSendEmailAsync(ParTSEmail.To.Trim(), "Email change", "Hello,\n\nYour code is " + tmp_Code + "\n\nBest Regards,\nSite Administration", AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())).Result) { ParTSEmail.Result = "OK"; MustSaveEmailedCode = true; } else { ParTSEmail.Result = "Error"; MustSaveEmailedCode = false; } break; case EmailOperationsEnum.PasswordChange: tmp_Code = GlobalFunctions.GetSalt(); if (CmdSendEmailAsync(ParTSEmail.To.Trim(), "Password change", "Hello,\n\nYour code is " + tmp_Code + "\n\nBest Regards,\nSite Administration", AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())).Result) { ParTSEmail.Result = "OK"; MustSaveEmailedCode = true; } else { ParTSEmail.Result = "Error"; MustSaveEmailedCode = false; } break; case EmailOperationsEnum.PasswordRecovery: MustSaveEmailedCode = false; if (CmdSendEmailAsync(ParTSEmail.To.Trim(), "Password Recovery", "Hello,\n\nYour new password is " + ParMachineID + "\n\nPlease change password after login.\n\nBest Regards,\nSite Administration", AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())).Result) { ParTSEmail.Result = "OK"; } else { ParTSEmail.Result = "Error"; } break; case EmailOperationsEnum.TodoReminder: MustSaveEmailedCode = false; if (CmdSendEmailAsync(ParTSEmail.To.Trim(), "Todo Reminder", "Hello,\n\nYour requested todo remind is here.\n\n" + ParMachineID + "\n\nBest Regards,\nSite Administration", AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())).Result) { ParTSEmail.Result = "OK"; } else { ParTSEmail.Result = "Error"; } break; default: break; } if (MustSaveEmailedCode) { CosmosEmailedCode tsEmailedCode = new CosmosEmailedCode { Email = ParTSEmail.To.Trim(), Code = tmp_Code, IPAddress = ParIPAddress, OperationType = ParTSEmail.OperationCode, MachineID = ParMachineID, }; await CmdSaveEmailedCode(tsEmailedCode, AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())); } return(ParTSEmail); }