Пример #1
0
        public async Task <IActionResult> Edit(int id)
        {
            var user = await permissionService.GetAppUserByIdAsync(id);

            if (user == null)
            {
                return(NotFound());
            }

            var  model = new UserEditForm();
            bool edit  = true;

            model.permissionOptions = await GetPermissionOptions(edit);

            var permissions = await permissionService.GetUserPermissionsAsync(user);

            var userModel = PermissionViewService.MapUserViewModel(user, permissions.ToList());

            userModel.permissionIds = permissions.Select(p => p.Id).ToArray();



            model.user = userModel;

            return(new ObjectResult(model));
        }
Пример #2
0
        public async Task <IActionResult> Index(int permission = 0, string keyword = "", int page = 1, int pageSize = 10)
        {
            Permission selectedPermission = null;

            if (permission > 0)
            {
                selectedPermission = await permissionService.GetPermissionByIdAsync(permission);
            }
            if (selectedPermission == null)
            {
                permission = 0;
            }

            var users = await permissionService.FetchUsersWithPermissions(selectedPermission, keyword);

            users = users.OrderByDescending(u => u.LastUpdated);

            var pageList = new PagedList <AppUser, UserViewModel>(users, page, pageSize);

            foreach (var user in pageList.List)
            {
                var permissions = await permissionService.GetUserPermissionsAsync(user);

                pageList.ViewList.Add(PermissionViewService.MapUserViewModel(user, permissions.ToList()));
            }

            pageList.List = null;


            if (Request.IsAjaxRequest())
            {
                return(new ObjectResult(pageList));
            }

            string token = await GetToken();

            ViewData["token"] = token;

            bool edit = false;
            var  permissionsOptions = await GetPermissionOptions(edit);

            permissionsOptions.Insert(0, new PermissionOption {
                text = "----------", value = 0
            });

            ViewData["permissions"] = this.ToJsonString(permissionsOptions);


            ViewData["list"] = this.ToJsonString(pageList);

            return(View());
        }
Пример #3
0
        public async Task <List <PermissionOption> > GetPermissionOptionsAsync(bool edit, bool isDev = false)
        {
            var permissions = await permissionRepository.ListAllAsync();

            permissions = permissions.OrderByDescending(p => p.Order).ToList();

            if (edit)
            {
                if (!isDev)
                {
                    permissions = permissions.Where(p => !p.AdminOnly).ToList();
                }
            }

            var options = new List <PermissionOption>();

            foreach (var item in permissions)
            {
                options.Add(PermissionViewService.MapPermissionOption(item));
            }

            return(options);
        }