コード例 #1
0
        public async Task <IResponseOutput> AssignAsync(PermissionAssignInput input)
        {
            //查询角色权限
            var permissionIds = await _rolePermissionRepository.Select.Where(d => d.RoleId == input.RoleId).ToListAsync(m => m.PermissionId);

            //批量删除权限
            var deleteIds = permissionIds.Where(d => !input.PermissionIds.Contains(d.ToInt()));

            if (deleteIds.Count() > 0)
            {
                await _rolePermissionRepository.DeleteAsync(m => m.RoleId == input.RoleId && deleteIds.Contains(m.PermissionId));
            }

            //批量插入权限
            var insertRolePermissions = new List <RolePermissionEntity>();
            var insertPermissionIds   = input.PermissionIds.Where(d => !permissionIds.Contains(d));

            if (insertPermissionIds.Count() > 0)
            {
                foreach (var permissionId in insertPermissionIds)
                {
                    insertRolePermissions.Add(new RolePermissionEntity()
                    {
                        RoleId       = input.RoleId,
                        PermissionId = permissionId,
                    });
                }
                await _rolePermissionRepository.InsertAsync(insertRolePermissions);
            }

            //清除权限
            await _cache.DelByPatternAsync(CacheKey.UserPermissions);

            return(ResponseOutput.Ok());
        }
コード例 #2
0
ファイル: PermissionService.cs プロジェクト: qshitems/QH
        public async Task <IResultModel> AssignAsync(PermissionAssignInput input)
        {
            var result = await _permissionRepository.AssignAsync(input);

            //清除权限
            await _cache.DelByPatternAsync(CacheKey.UserPermissions);

            return(ResultModel.Result(result));
        }
コード例 #3
0
        public async Task <bool> AssignAsync(PermissionAssignInput input)
        {
            var sql = @"SELECT a.[PermissionId] FROM[ad_role_permission] a WHERE(a.[RoleId] = @RoleId)";

            try
            {
                BeginTrans();
                //查询角色权限
                var permissionIds = await Transaction.Connection.QueryAsync <int>(sql, new { input.RoleId }, Transaction);

                //批量删除权限
                var deleteIds = permissionIds.Where(d => !input.PermissionIds.Contains(d));
                if (deleteIds.Count() > 0)
                {
                    sql = "DELETE FROM  ad_role_permission WHERE RoleId = @RoleId AND PermissionId in @PermissionId";
                    await Transaction.Connection.ExecuteAsync(sql, new { input.RoleId, PermissionId = deleteIds }, Transaction);
                }
                //批量插入权限
                var insertRolePermissions = new List <RolePermissionEntity>();
                var insertPermissionIds   = input.PermissionIds.Where(d => !permissionIds.Contains(d));
                if (insertPermissionIds.Count() > 0)
                {
                    foreach (var permissionId in insertPermissionIds)
                    {
                        //insertRolePermissions.Add(new RolePermissionEntity()
                        //{
                        //    RoleId = input.RoleId,
                        //    PermissionId = permissionId,
                        //    CreatedTime = DateTime.UtcNow,
                        //    CreatedUserId = _user.Id,
                        //    CreatedUserName = _user.Name
                        //});

                        await Transaction.Connection.InsertAsync(new RolePermissionEntity()
                        {
                            RoleId          = input.RoleId,
                            PermissionId    = permissionId,
                            CreatedTime     = DateTime.UtcNow,
                            CreatedUserId   = _user.Id,
                            CreatedUserName = _user.Name
                        }, Transaction);
                    }
                    //  await Transaction.Connection.InsertAsync(insertRolePermissions, Transaction);
                }
                Commit();
                return(true);
            }
            catch (Exception ex)
            {
                Rollback();
            }

            return(false);
        }
コード例 #4
0
        public async Task <IResponseOutput> AssignAsync(PermissionAssignInput input)
        {
            //分配权限的时候判断角色是否存在
            var exists = await _roleRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(input.RoleId).AnyAsync();

            if (!exists)
            {
                return(ResponseOutput.NotOk("该角色不存在或已被删除!"));
            }

            //查询角色权限
            var permissionIds = await _rolePermissionRepository.Select.Where(d => d.RoleId == input.RoleId).ToListAsync(m => m.PermissionId);

            //批量删除权限
            var deleteIds = permissionIds.Where(d => !input.PermissionIds.Contains(d));

            if (deleteIds.Count() > 0)
            {
                await _rolePermissionRepository.DeleteAsync(m => m.RoleId == input.RoleId && deleteIds.Contains(m.PermissionId));
            }

            //批量插入权限
            var insertRolePermissions = new List <RolePermissionEntity>();
            var insertPermissionIds   = input.PermissionIds.Where(d => !permissionIds.Contains(d));

            if (insertPermissionIds.Count() > 0)
            {
                foreach (var permissionId in insertPermissionIds)
                {
                    insertRolePermissions.Add(new RolePermissionEntity()
                    {
                        RoleId       = input.RoleId,
                        PermissionId = permissionId,
                    });
                }
                await _rolePermissionRepository.InsertAsync(insertRolePermissions);
            }

            //清除权限
            await Cache.DelByPatternAsync(CacheKey.UserPermissions);

            return(ResponseOutput.Ok());
        }
コード例 #5
0
ファイル: PermissionServices.cs プロジェクト: war-man/Managix
        public async Task <IResponseOutput> AssignAsync(PermissionAssignInput input)
        {
            //查询角色权限
            var permissionIds = await _rolePermissionRepo.Query.Where(d => d.RoleId == input.RoleId).Select(x => x.PermissionId).ToListAsync();

            //批量删除权限
            var deleteIds = permissionIds.Where(d => !input.PermissionIds.Contains(d));

            if (deleteIds.Count() > 0)
            {
                await _rolePermissionRepo.DeleteAsync(m => m.RoleId == input.RoleId && deleteIds.Contains(m.PermissionId));
            }

            //批量插入权限
            var insertRolePermissions = new List <RolePermissionEntity>();
            var insertPermissionIds   = input.PermissionIds.Where(d => !permissionIds.Contains(d));

            if (insertPermissionIds.Count() > 0)
            {
                foreach (var permissionId in insertPermissionIds)
                {
                    var id = SnowflakeId.CreateInstance().NextId();

                    insertRolePermissions.Add(new RolePermissionEntity()
                    {
                        Id           = id,
                        RoleId       = input.RoleId,
                        PermissionId = permissionId,
                    });
                }
                await _rolePermissionRepo.BulkInsertAsync(insertRolePermissions);
            }


            return(ResponseOutput.Ok());
        }
コード例 #6
0
 public async Task <IResponseOutput> Assign(PermissionAssignInput input)
 {
     return(await _permissionServices.AssignAsync(input));
 }
コード例 #7
0
ファイル: RoleController.cs プロジェクト: qshitems/QH
        public async Task <IActionResult> SetRolePower(PermissionAssignInput input)
        {
            var result = await _permissionService.AssignAsync(input);

            return(Json(result));
        }
コード例 #8
0
ファイル: PermissionController.cs プロジェクト: qshitems/QH
 public async Task <IResultModel> Assign(PermissionAssignInput input)
 {
     return(await _permissionServices.AssignAsync(input));
 }