Exemplo n.º 1
0
        public IActionResult GetPermissionsInfo(int id, int[] data)
        {
            //获取该角色已有的权限
            var rolePermission = _permissionService.GetPermissionsByRoleId(id).ToList();

            var infos = new List <PermissionOption>();

            for (int i = 0; i < data.Length; i++)
            {
                var pers = _permissionService.GetPermissionById(data[i]);
                var temp = new PermissionOption
                {
                    Name     = pers.Name,
                    Category = pers.Category,
                    Id       = pers.Id
                };
                if (rolePermission.Contains(pers))
                {
                    //已有权限
                    temp.Selected = true;
                }
                else
                {
                    temp.Selected = false;
                }

                infos.Add(temp);
            }

            return(Success(infos));
        }
Exemplo n.º 2
0
        public List <PermissionMultiSelectModel> GetPermissions(int userId, List <Role> roles)
        {
            //获取用户已有的角色
            var userPermissions = _permissionService.GetPermissionsByUserId(userId).ToList();

            //获取该该用户所有角色的的权限
            var allPermissions = new List <Permission>();

            foreach (var role in roles)
            {
                allPermissions.AddRange(_permissionService.GetPermissionsByRoleId(role.Id).ToList());
            }
            //去除重复元素
            allPermissions = allPermissions.Distinct().ToList();

            //获取所有的权限类型
            var categorys = _menuService.GetBaseMenus().ToList();

            var multiSelectModel = new List <PermissionMultiSelectModel>();

            foreach (var category in categorys)
            {
                //根据权限类型获取权限
                // var tempPermissions = _permissionService.GetPermissionsByCategory(category.Name).ToList();

                var tempPermissions = allPermissions.Where(x => x.Category == category.Name).ToList();

                var options = new List <PermissionOption>();
                if (tempPermissions != null)
                {
                    foreach (var pers in tempPermissions)
                    {
                        var option = new PermissionOption
                        {
                            Id   = pers.Id,
                            Name = pers.Name
                        };
                        //判断给角色是否已有该权限
                        if (userPermissions.Contains(pers))
                        {
                            option.Selected = true;
                        }
                        options.Add(option);
                    }
                }

                multiSelectModel.Add(
                    new PermissionMultiSelectModel
                {
                    Options  = options,
                    Optgroup = category.Name
                });
            }

            return(multiSelectModel);
        }
Exemplo n.º 3
0
        public List <PermissionMultiSelectModel> GetPermissionsForRole(int id)
        {
            //获取该角色已有的权限
            var rolePermission = _permissionService.GetPermissionsByRoleId(id).ToList();

            //获取所有的权限类型
            var categorys = _menuService.GetBaseMenus().ToList();

            var multiSelectModel = new List <PermissionMultiSelectModel>();

            foreach (var category in categorys)
            {
                //根据权限类型获取权限
                var tempPermissions = _permissionService.GetPermissionsByCategory(category.Name).ToList();

                var options = new List <PermissionOption>();
                if (tempPermissions != null)
                {
                    foreach (var pers in tempPermissions)
                    {
                        var option = new PermissionOption
                        {
                            Id   = pers.Id,
                            Name = pers.Name
                        };
                        //判断给角色是否已有该权限
                        if (rolePermission.Contains(pers))
                        {
                            option.Selected = true;
                        }
                        options.Add(option);
                    }
                }

                multiSelectModel.Add(
                    new PermissionMultiSelectModel
                {
                    Options  = options,
                    Optgroup = category.Name
                });
            }

            return(multiSelectModel);
        }