public override ValidationResult Validate(RoleViewModel viewModel) { var validationResult = new ValidationResult <RoleViewModel>(); var permissions = this.permissionProvider.GetAll().ToList(); if (viewModel.Permissions.IsNullOrDefault() || viewModel.Permissions.Count == default(int)) { viewModel.Permissions = new List <PermissionViewModel>(); } if (string.IsNullOrWhiteSpace(viewModel.Name)) { validationResult.AddError(role => role.Name, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Role:NameEmpty")); } for (var i = 0; i < viewModel.Permissions.Count; i++) { if (!permissions.Any(y => y.Id == viewModel.Permissions[i].Id)) { validationResult.AddError($"Permissions[{i}].Action", translationManager.GetTranslationLabel(LanguageId, "Dashboard:Role:PermissionNotExists")); } } return(validationResult); }
public override void Process(PasswordResetViewModel viewModel) { var user = userProvider.GetUserByEmail(viewModel.Email); if (user.IsNullOrDefault()) { return; } var reloadedViewModel = reloader.Reload(viewModel); var subject = translationManager.GetTranslationLabel(LanguageId, "Dashboard:Admin:MailSubject"); using (var transaction = new TransactionScope(TransactionScopeOption.Required)) { user.ResetToken = RandomToken(); user.ResetTokenDate = DateTime.Now; userService.AddOrUpdate(user); reloadedViewModel.Firstname = user.Firstname; reloadedViewModel.RootUrl = GetRootUrl(); reloadedViewModel.Token = user.ResetToken; var mailHTML = CreateResetMail(reloadedViewModel).Result; mailQueueService.AddNew( user.Email, subject, mailHTML); transaction.Complete(); } }
public IActionResult SignIn(SignInViewModel viewModel) { var result = ProcessViewModel( viewModel, async vm => { var validationResult = new ValidationResult <SignInViewModel>(); try { var principal = authentication.SignIn(vm.Username, vm.Password); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal); } catch (DeactivatedException) { validationResult.AddError( x => x.Username, translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:Deactivated")); ModelState.AddValidationResult(validationResult); throw; } catch (Exception) { validationResult.AddError( x => x.Username, translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:WrongLogin")); validationResult.AddError( x => x.Password, translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:WrongLogin")); ModelState.AddValidationResult(validationResult); throw; } }, () => RedirectToAction("Index", "Dashboard"), () => { var reloader = GetReloader <SignInViewModel>(); return(View("SignIn", reloader.Reload(viewModel))); }); return(result.Result); }
public override ValidationResult Validate(PasswordResetViewModel viewModel) { var validationResult = new ValidationResult <PasswordResetViewModel>(); if (string.IsNullOrWhiteSpace(viewModel.Email)) { validationResult.AddError( m => m.Email, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Admin:EmailEmpty")); } if (!ValidEmail(viewModel.Email)) { validationResult.AddError( m => m.Email, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Admin:EmailNotValid")); } return(validationResult); }
public override ValidationResult Validate(SignInViewModel viewModel) { var validationResult = new ValidationResult <SignInViewModel>(); if (string.IsNullOrWhiteSpace(viewModel.Username)) { validationResult.AddError( m => m.Username, translationManager.GetTranslationLabel("Admin", "SignIn", "EmailEmpty")); } if (string.IsNullOrWhiteSpace(viewModel.Password)) { validationResult.AddError( m => m.Password, translationManager.GetTranslationLabel("Admin", "SignIn", "PasswordEmpty")); } return(validationResult); }
public IActionResult Delete(int id) { var role = roleProvider.GetEntity(x => x.Id == id); if (role.IsNullOrDefault()) { return(RedirectToAction("List", "Role")); } try { var rolePermissions = rolePermissionProvider.Where(x => x.Role_Id == role.Id); var userRoles = userRoleProvider.Where(x => x.Role_Id == role.Id); using (var transaction = new TransactionScope(TransactionScopeOption.Required)) { rolePermissionService.DeleteRange(rolePermissions); userRoleService.DeleteRange(userRoles); roleService.Delete(role); transaction.Complete(); } return(RedirectToAction("List", "Role")); } catch (Exception) { var validationResult = new ValidationResult <UserViewModel>(); var loader = GetLoader <RoleViewModel, int>(); var viewModel = loader.Load(role.Id); validationResult.AddError( m => m.Id, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Role:NotDeleted")); ModelState.Clear(); ModelState.AddValidationResult(validationResult); return(View("Details", viewModel)); } }
public override ValidationResult Validate(ResetPasswordViewModel viewModel) { var validationResult = new ValidationResult <ResetPasswordViewModel>(); if (string.IsNullOrWhiteSpace(viewModel.Token)) { validationResult.AddError( x => x.Token, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Admin:EmptyToken")); } if (!string.Equals(viewModel.Password, viewModel.PasswordCheck)) { validationResult.AddError( x => x.Password, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Admin:PasswordMismatch")); validationResult.AddError( x => x.PasswordCheck, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Admin:PasswordMismatch")); } if (string.IsNullOrWhiteSpace(viewModel.Password)) { validationResult.AddError( x => x.Password, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Admin:EmptyPassword")); } if (string.IsNullOrWhiteSpace(viewModel.PasswordCheck)) { validationResult.AddError( x => x.PasswordCheck, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Admin:EmptyPassword")); } if (PasswordStrengthCheck.GetPasswordStrength(viewModel.Password) != PasswordStrength.VeryStrong) { validationResult.AddError( m => m.Password, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Admin:WeakPassword")); } return(validationResult); }
public override ValidationResult Validate(UserViewModel viewModel) { var validationResult = new ValidationResult <UserViewModel>(); if (string.IsNullOrWhiteSpace(viewModel.Firstname)) { validationResult.AddError(m => m.Firstname, translationManager.GetTranslationLabel(LanguageId, "Dashboard:User:FirstnameEmpty")); } if (string.IsNullOrWhiteSpace(viewModel.Lastname)) { validationResult.AddError(m => m.Lastname, translationManager.GetTranslationLabel(LanguageId, "Dashboard:User:LastnameEmpty")); } if (viewModel.Id == default(int)) { if (string.IsNullOrWhiteSpace(viewModel.Email)) { validationResult.AddError(m => m.Email, translationManager.GetTranslationLabel(LanguageId, "Dashboard:User:EmailEmpty")); } var existingUser = userProvider.GetUserByEmail(viewModel.Email); if (!existingUser.IsNullOrDefault()) { validationResult.AddError(m => m.Email, translationManager.GetTranslationLabel(LanguageId, "Dashboard:User:EmailAlreadyExists")); } return(validationResult); } var editedUser = userProvider.GetUserById(viewModel.Id); if (editedUser.IsNullOrDefault()) { validationResult.AddError(m => m.Email, translationManager.GetTranslationLabel(LanguageId, "Dashboard:User:UserNotFound")); return(validationResult); } if (Actions.Contains(Permissions.GetActionKey(Module.Dashboard, Type.User, Action.Edit))) { if (string.IsNullOrWhiteSpace(viewModel.Email)) { validationResult.AddError(m => m.Email, translationManager.GetTranslationLabel(LanguageId, "Dashboard:User:EmailEmpty")); } else if (!ValidEmail(viewModel.Email)) { validationResult.AddError(m => m.Email, translationManager.GetTranslationLabel(LanguageId, "Dashboard:User:EmailNotValid")); } else { var existingUser = userProvider.GetUserByEmail(viewModel.Email); if (!existingUser.IsNullOrDefault() && existingUser.Id != editedUser.Id) { validationResult.AddError(m => m.Email, translationManager.GetTranslationLabel(LanguageId, "Dashboard:User:EmailAlreadyExists")); } } } else { viewModel.Email = editedUser.Email; } return(validationResult); }