public IActionResult AssignPermission(RoleAssignPermissionPayload payload) { var response = ResponseModelFactory.CreateInstance; using (_dbContext) { var role = _dbContext.SystemRole.FirstOrDefault(x => x.SystemRoleUuid.ToString() == payload.RoleCode); if (role == null) { response.SetFailed("角色不存在"); return(Ok(response)); } // 如果是超级管理员,则不写入到角色-权限映射表(在读取时跳过角色权限映射,直接读取系统所有的权限) if (role.RoleName == "超级管理员") { response.SetSuccess(); return(Ok(response)); } //先删除当前角色原来已分配的权限 _dbContext.Database.ExecuteSqlRaw("DELETE FROM SystemRolePermissionMapping WHERE systemroleuuid={0}", payload.RoleCode); if (payload.Permissions != null || payload.Permissions.Count > 0) { var permissions = payload.Permissions.Select(x => new SystemRolePermissionMapping { AddTime = DateTime.Now.ToString("yyyy-MM-dd"), SystemPermissionUuid = new Guid(x.Trim()), SystemRoleUuid = new Guid(payload.RoleCode.Trim()) }); _dbContext.SystemRolePermissionMapping.AddRange(permissions); _dbContext.SaveChanges(); } } return(Ok(response)); }
public IActionResult AssignPermission(RoleAssignPermissionPayload payload) { var response = ResponseModelFactory.CreateInstance; using (_dbContext) { var role = _dbContext.DncRole.FirstOrDefault(x => x.Code == payload.RoleCode); if (role == null) { response.SetFailed("角色不存在"); return(Ok(response)); } // 如果是超级管理员,则不写入到角色-权限映射表(在读取时跳过角色权限映射,直接读取系统所有的权限) if (role.IsSuperAdministrator) { response.SetSuccess(); return(Ok(response)); } //先删除当前角色原来已分配的权限 _dbContext.Database.ExecuteSqlCommand("DELETE FROM DncRolePermissionMapping WHERE RoleCode={0}", payload.RoleCode); if (payload.Permissions != null || payload.Permissions.Count > 0) { var permissions = payload.Permissions.Select(x => new DncRolePermissionMapping { CreatedOn = DateTime.Now, PermissionCode = x.Trim(), RoleCode = payload.RoleCode.Trim() }); _dbContext.DncRolePermissionMapping.AddRange(permissions); _dbContext.SaveChanges(); } } return(Ok(response)); }
public IHttpActionResult AssignPermission(RoleAssignPermissionPayload payload) { var response = ResponseModelFactory.CreateInstance; using (_dbContext) { var role = _dbContext.Roles.Include(x => x.Permissions) .FirstOrDefault(x => x.Code == payload.RoleCode); if (role == null) { response.SetFailed("角色不存在"); return(Ok(response)); } // 如果是超级管理员,则不写入到角色-权限映射表(在读取时跳过角色权限映射,直接读取系统所有的权限) if (role.IsSuperAdministrator) { response.SetSuccess(); return(Ok(response)); } //先删除当前角色原来已分配的权限 // _dbContext.Database.ExecuteSqlCommand("DELETE FROM DncRolePermissionMapping WHERE RoleCode={0}", payload.RoleCode); role.Permissions.Clear(); _dbContext.SaveChanges(); if (payload.Permissions != null || payload.Permissions.Count > 0) { var permissions = _dbContext.Permissions.Where(x => payload.Permissions.Contains(x.Code)); foreach (Permission permission in permissions) { role.Permissions.Add(permission); } _dbContext.SaveChanges(); } } return(Ok(response)); }
public IActionResult AssignPermission(RoleAssignPermissionPayload payload) { HttpResponseModel response = ResponseModelFactory.CreateInstance; using (this.DbContext) { Role role = this.DbContext.Role.FirstOrDefault(x => x.Id == payload.RoleCode); if (role == null) { response.SetFailed("角色不存在"); return(this.Ok(response)); } // 如果是超级管理员,则不写入到角色-权限映射表(在读取时跳过角色权限映射,直接读取系统所有的权限) if (role.IsSuperAdministrator) { response.SetSuccess(); return(this.Ok(response)); } // 先删除当前角色原来已分配的权限 this.DbContext.Database.ExecuteSqlInterpolated($"DELETE FROM DncRolePermissionMapping WHERE RoleCode={payload.RoleCode}"); if (payload.Permissions != null || payload.Permissions.Count > 0) { IEnumerable <RolePermissionMapping> permissions = payload.Permissions.Select(x => new RolePermissionMapping { CreateTime = DateTime.Now, PermissionCode = x.Trim(), // RoleCode = payload.RoleCode.Trim() }); // this.DbContext.RolePermissionMapping.AddRange(permissions); this.DbContext.SaveChanges(); } } return(this.Ok(response)); }