private async Task FillViewDataAsync(UserViewModelBase viewModel = null)
        {
            var data = await HandlerDispatcher.ExecuteQueryAsync(new GetDataForUserDetailsQuery());

            ViewData["StudyPlaces"] = data.StudyPlaces;
            ViewData["CityId"]      = new SelectList(data.Cities, "Id", "Name", viewModel?.CityId);
        }
Beispiel #2
0
        private async Task ValidateAsync(UserViewModelBase model)
        {
            if (!User.IsInRole(Role.Admin))
            {
                var id  = _userManager.GetUserId(User);
                var ids = model.SelectedAreas.ToArray();
                var hasClaimsOnSelectedAreas = await _context.UsersAreas.Where(x => x.UserId == id).AllAsync(x => ids.Contains(x.AreaId));

                if (!hasClaimsOnSelectedAreas)
                {
                    ModelState.AddModelError("No Claims", "No claims on selected Areas");
                }
                var possibleRoles = new List <string> {
                    Role.AreaAdmin, Role.ReadOnlyUser, Role.ReadWriteUser
                };
                if (!possibleRoles.Contains(model.Role))
                {
                    ModelState.AddModelError("Not authorized", "Not authorized for selected role");
                }
            }
        }