public async Task <IActionResult> StoreUsers(StoreUsersViewModel vm) { await FillUsers(vm); if (!ModelState.IsValid) { return(View(vm)); } var user = await _UserManager.FindByEmailAsync(vm.Email); if (user == null) { ModelState.AddModelError(nameof(vm.Email), "User not found"); return(View(vm)); } if (!StoreRoles.AllRoles.Contains(vm.Role)) { ModelState.AddModelError(nameof(vm.Role), "Invalid role"); return(View(vm)); } if (!await _Repo.AddStoreUser(StoreData.Id, user.Id, vm.Role)) { ModelState.AddModelError(nameof(vm.Email), "The user already has access to this store"); return(View(vm)); } StatusMessage = "User added successfully"; return(RedirectToAction(nameof(StoreUsers))); }
public async Task <IActionResult> StoreUsers(StoreUsersViewModel vm) { await FillUsers(vm); if (!ModelState.IsValid) { return(View(vm)); } var user = await _UserManager.FindByEmailAsync(vm.Email); if (user == null) { ModelState.AddModelError(nameof(vm.Email), "Usuario no encontrado"); return(View(vm)); } if (!StoreRoles.AllRoles.Contains(vm.Role)) { ModelState.AddModelError(nameof(vm.Role), "Rol inválido"); return(View(vm)); } if (!await _Repo.AddStoreUser(StoreData.Id, user.Id, vm.Role)) { ModelState.AddModelError(nameof(vm.Email), "El usuario ya tiene acceso a esta tienda."); return(View(vm)); } StatusMessage = "Usuario agregado exitosamente"; return(RedirectToAction(nameof(StoreUsers))); }
public async Task <IActionResult> AddStoreUser(string storeId, StoreUserData request) { var store = HttpContext.GetStoreData(); if (store == null) { return(StoreNotFound()); } //we do not need to validate the role string as any value other than `StoreRoles.Owner` is currently treated like a guest if (await _storeRepository.AddStoreUser(storeId, request.UserId, request.Role)) { return(Ok()); } return(this.CreateAPIError(409, "duplicate-store-user-role", "The user is already added to the store")); }