示例#1
0
        public ActionResult CreateUserPermission(NewAppUserPermissionViewModel model)
        {
            using (var context = new AppSecurityContext())
            {
                var actionRepository         = new ActionRepository(context);
                var permissionRepository     = new PermissionRepository(context);
                var userPermissionRepository = new UserPermissionRepository(context);
                var userRepository           = new UserRepository(context);

                try
                {
                    var actions    = actionRepository.Query(x => model.SelectedActions.Contains(x.Key)).Select(x => x.Key);
                    var permission = permissionRepository
                                     .GetAll()
                                     .Where(x => x.ResourceKey == model.SelectedResource)
                                     .Where(x => actions.Contains(x.ActionKey));

                    userPermissionRepository.AddPermissionsByUserId(model.User.Id, permission.Select(x => x.Id).ToArray());
                    context.SaveChanges();
                    return(RedirectToAction("UserPermission", new { id = model.User.Id }));
                }
                catch (Exception ex)
                {
                    ViewBag.Error = ex.Message;
                    var actions = actionRepository.GetAll().OrderBy(x => x.Name);
                    var user    = userRepository.Find(model.User.Id);
                    model.User             = mapper.Map <AppUserViewModel>(user);
                    model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions);
                    model.ResourcesList    = PopulateResourceFromNewUserPermission(model.SelectedResource);
                    return(View(model));
                }
            }
        }
示例#2
0
        public ActionResult CreateUserPermission(string id)
        {
            var model = new NewAppUserPermissionViewModel();

            using (var context = new AppSecurityContext())
            {
                var resourcesRepository    = new ResourceRepository(context);
                var userPermissionRository = new UserPermissionRepository(context);
                var userRepository         = new UserRepository(context);
                var actionRepository       = new ActionRepository(context);

                var user = userRepository.Find(id);
                if (user == null)
                {
                    RedirectToAction("Users");
                }

                var actions = actionRepository.GetAll().OrderBy(x => x.Name);
                model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions);
                model.User             = mapper.Map <AppUserViewModel>(user);
                model.ResourcesList    = PopulateResourceFromNewUserPermission(id);

                return(View(model));
            }
        }