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)));
        }
Beispiel #3
0
        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"));
        }