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()); }
public async Task <IResultModel> AssignAsync(PermissionAssignInput input) { var result = await _permissionRepository.AssignAsync(input); //清除权限 await _cache.DelByPatternAsync(CacheKey.UserPermissions); return(ResultModel.Result(result)); }
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); }
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()); }
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()); }
public async Task <IResponseOutput> Assign(PermissionAssignInput input) { return(await _permissionServices.AssignAsync(input)); }
public async Task <IActionResult> SetRolePower(PermissionAssignInput input) { var result = await _permissionService.AssignAsync(input); return(Json(result)); }
public async Task <IResultModel> Assign(PermissionAssignInput input) { return(await _permissionServices.AssignAsync(input)); }