mirror of
https://github.com/anjoy8/Blog.Core.git
synced 2024-09-20 23:48:27 +08:00
fix: department set
This commit is contained in:
parent
93361ce67d
commit
3ade35f4dd
|
@ -4,6 +4,36 @@
|
|||
<name>Blog.Core.Model</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="F:Blog.Core.Model.AuthorityScopeEnum.NONE">
|
||||
<summary>
|
||||
无任何权限
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Blog.Core.Model.AuthorityScopeEnum.Custom">
|
||||
<summary>
|
||||
自定义权限
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Blog.Core.Model.AuthorityScopeEnum.MyDepart">
|
||||
<summary>
|
||||
本部门
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Blog.Core.Model.AuthorityScopeEnum.MyDepartAndDown">
|
||||
<summary>
|
||||
本部门及以下
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Blog.Core.Model.AuthorityScopeEnum.OnlySelf">
|
||||
<summary>
|
||||
仅自己
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Blog.Core.Model.AuthorityScopeEnum.ALL">
|
||||
<summary>
|
||||
所有
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Blog.Core.Model.IDS4DbModels.ApplicationRole">
|
||||
<summary>
|
||||
以下model 来自ids4项目,多库模式,为了调取ids4数据
|
||||
|
@ -651,6 +681,17 @@
|
|||
排序
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Blog.Core.Model.Models.Role.Dids">
|
||||
<summary>
|
||||
自定义权限的部门ids
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Blog.Core.Model.Models.Role.AuthorityScope">
|
||||
<summary>
|
||||
权限范围
|
||||
-1 无任何权限;1 自定义权限;2 本部门;3 本部门及以下;4 仅自己;9 全部;
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Blog.Core.Model.Models.Role.Enabled">
|
||||
<summary>
|
||||
是否激活
|
||||
|
@ -751,6 +792,11 @@
|
|||
状态
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Blog.Core.Model.Models.SysUserInfo.DepartmentId">
|
||||
<summary>
|
||||
部门
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Blog.Core.Model.Models.SysUserInfo.Remark">
|
||||
<summary>
|
||||
备注
|
||||
|
|
|
@ -640,7 +640,7 @@
|
|||
用户管理
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Blog.Core.Controllers.UserController.#ctor(Blog.Core.IRepository.UnitOfWork.IUnitOfWork,Blog.Core.IServices.ISysUserInfoServices,Blog.Core.IServices.IUserRoleServices,Blog.Core.IServices.IRoleServices,Blog.Core.Common.HttpContextUser.IUser,AutoMapper.IMapper,Microsoft.Extensions.Logging.ILogger{Blog.Core.Controllers.UserController})">
|
||||
<member name="M:Blog.Core.Controllers.UserController.#ctor(Blog.Core.IRepository.UnitOfWork.IUnitOfWork,Blog.Core.IServices.ISysUserInfoServices,Blog.Core.IServices.IUserRoleServices,Blog.Core.IServices.IRoleServices,Blog.Core.IServices.IDepartmentServices,Blog.Core.Common.HttpContextUser.IUser,AutoMapper.IMapper,Microsoft.Extensions.Logging.ILogger{Blog.Core.Controllers.UserController})">
|
||||
<summary>
|
||||
构造函数
|
||||
</summary>
|
||||
|
|
|
@ -29,9 +29,11 @@ namespace Blog.Core.Controllers
|
|||
readonly ISysUserInfoServices _sysUserInfoServices;
|
||||
readonly IUserRoleServices _userRoleServices;
|
||||
readonly IRoleServices _roleServices;
|
||||
private readonly IDepartmentServices _departmentServices;
|
||||
private readonly IUser _user;
|
||||
private readonly IMapper _mapper;
|
||||
private readonly ILogger<UserController> _logger;
|
||||
private string fullName;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
|
@ -44,13 +46,16 @@ namespace Blog.Core.Controllers
|
|||
/// <param name="mapper"></param>
|
||||
/// <param name="logger"></param>
|
||||
public UserController(IUnitOfWork unitOfWork, ISysUserInfoServices sysUserInfoServices,
|
||||
IUserRoleServices userRoleServices, IRoleServices roleServices,
|
||||
IUserRoleServices userRoleServices,
|
||||
IRoleServices roleServices,
|
||||
IDepartmentServices departmentServices,
|
||||
IUser user, IMapper mapper, ILogger<UserController> logger)
|
||||
{
|
||||
_unitOfWork = unitOfWork;
|
||||
_sysUserInfoServices = sysUserInfoServices;
|
||||
_userRoleServices = userRoleServices;
|
||||
_roleServices = roleServices;
|
||||
_departmentServices = departmentServices;
|
||||
_user = user;
|
||||
_mapper = mapper;
|
||||
_logger = logger;
|
||||
|
@ -81,6 +86,7 @@ namespace Blog.Core.Controllers
|
|||
// 这里可以封装到多表查询,此处简单处理
|
||||
var allUserRoles = await _userRoleServices.Query(d => d.IsDeleted == false);
|
||||
var allRoles = await _roleServices.Query(d => d.IsDeleted == false);
|
||||
var allDepartments = await _departmentServices.Query(d => d.IsDeleted == false);
|
||||
|
||||
var sysUserInfos = data.data;
|
||||
foreach (var item in sysUserInfos)
|
||||
|
@ -88,6 +94,12 @@ namespace Blog.Core.Controllers
|
|||
var currentUserRoles = allUserRoles.Where(d => d.UserId == item.Id).Select(d => d.RoleId).ToList();
|
||||
item.RIDs = currentUserRoles;
|
||||
item.RoleNames = allRoles.Where(d => currentUserRoles.Contains(d.Id)).Select(d => d.Name).ToList();
|
||||
List<int> dids = new List<int>();
|
||||
fullName = "";
|
||||
var departmentName = GetFullDepartmentName(allDepartments, item.DepartmentId, dids);
|
||||
item.DepartmentName = departmentName;
|
||||
dids.Insert(0, 0);
|
||||
item.Dids = dids;
|
||||
}
|
||||
|
||||
data.data = sysUserInfos;
|
||||
|
@ -98,6 +110,21 @@ namespace Blog.Core.Controllers
|
|||
|
||||
}
|
||||
|
||||
private string GetFullDepartmentName(List<Department> departments, int departmentId, List<int> dids)
|
||||
{
|
||||
var departmentModel = departments.FirstOrDefault(d => d.Id == departmentId);
|
||||
if (departmentModel == null)
|
||||
{
|
||||
return fullName;
|
||||
}
|
||||
|
||||
fullName = $"{departmentModel.Name}/{fullName}";
|
||||
dids.Insert(0, departmentModel.Id);
|
||||
GetFullDepartmentName(departments, departmentModel.Pid, dids);
|
||||
|
||||
return fullName;
|
||||
}
|
||||
|
||||
// GET: api/User/5
|
||||
[HttpGet("{id}")]
|
||||
[AllowAnonymous]
|
||||
|
@ -127,7 +154,7 @@ namespace Blog.Core.Controllers
|
|||
var userinfo = await _sysUserInfoServices.QueryById(tokenModel.Uid);
|
||||
if (userinfo != null)
|
||||
{
|
||||
data.response = _mapper.Map<SysUserInfoDto>(userinfo);
|
||||
data.response = _mapper.Map<SysUserInfoDto>(userinfo);
|
||||
data.success = true;
|
||||
data.msg = "获取成功";
|
||||
}
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
using Autofac;
|
||||
|
||||
// 以下为asp.net 6.0的写法,如果用5.0,请看Program.five.cs文件
|
||||
using Autofac;
|
||||
using Autofac.Extensions.DependencyInjection;
|
||||
using Blog.Core;
|
||||
using Blog.Core.Common;
|
||||
|
|
75
Blog.Core.Api/Program.five.cs
Normal file
75
Blog.Core.Api/Program.five.cs
Normal file
|
@ -0,0 +1,75 @@
|
|||
//using Autofac.Extensions.DependencyInjection;
|
||||
//using Blog.Core.Extensions.Apollo;
|
||||
//using Microsoft.AspNetCore.Hosting;
|
||||
//using Microsoft.Extensions.Configuration;
|
||||
//using Microsoft.Extensions.Hosting;
|
||||
//using Microsoft.Extensions.Logging;
|
||||
//using System;
|
||||
//using System.IO;
|
||||
|
||||
// 这是asp.net5.0的写法,如果用5.0,请用本文件代码替换Program.cs代码
|
||||
//namespace Blog.Core
|
||||
//{
|
||||
// public class Program
|
||||
// {
|
||||
// public static void Main(string[] args)
|
||||
// {
|
||||
// //初始化默认主机Builder
|
||||
// Host.CreateDefaultBuilder(args)
|
||||
// .UseServiceProviderFactory(new AutofacServiceProviderFactory())
|
||||
// .ConfigureWebHostDefaults(webBuilder =>
|
||||
// {
|
||||
// webBuilder
|
||||
// .UseStartup<Startup>()
|
||||
// .ConfigureAppConfiguration((hostingContext, config) =>
|
||||
// {
|
||||
// config.Sources.Clear();
|
||||
// config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
|
||||
// //.AddJsonFile($"appsettings{ GetAppSettingsConfigName() }json", optional: true, reloadOnChange: false)
|
||||
// ;
|
||||
// //接入Apollo配置中心
|
||||
// config.AddConfigurationApollo("appsettings.apollo.json");
|
||||
// })
|
||||
// .UseUrls("http://*:9291")
|
||||
// .ConfigureLogging((hostingContext, builder) =>
|
||||
// {
|
||||
// // 1.过滤掉系统默认的一些日志
|
||||
// builder.AddFilter("System", LogLevel.Error);
|
||||
// builder.AddFilter("Microsoft", LogLevel.Error);
|
||||
|
||||
// // 2.也可以在appsettings.json中配置,LogLevel节点
|
||||
|
||||
// // 3.统一设置
|
||||
// builder.SetMinimumLevel(LogLevel.Error);
|
||||
|
||||
// // 默认log4net.confg
|
||||
// builder.AddLog4Net(Path.Combine(Directory.GetCurrentDirectory(), "Log4net.config"));
|
||||
// })
|
||||
// ;
|
||||
// })
|
||||
// // 生成承载 web 应用程序的 Microsoft.AspNetCore.Hosting.IWebHost。Build是WebHostBuilder最终的目的,将返回一个构造的WebHost,最终生成宿主。
|
||||
// .Build()
|
||||
// // 运行 web 应用程序并阻止调用线程, 直到主机关闭。
|
||||
// // ※※※※ 有异常,查看 Log 文件夹下的异常日志 ※※※※
|
||||
// .Run();
|
||||
// }
|
||||
|
||||
|
||||
// /// <summary>
|
||||
// /// 根据环境变量定向配置文件名称
|
||||
// /// </summary>
|
||||
// /// <returns></returns>
|
||||
// private static string GetAppSettingsConfigName()
|
||||
// {
|
||||
// if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != null
|
||||
// && Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != "")
|
||||
// {
|
||||
// return $".{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.";
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// return ".";
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
30
Blog.Core.Model/CustomEnums/AuthorityScopeEnum.cs
Normal file
30
Blog.Core.Model/CustomEnums/AuthorityScopeEnum.cs
Normal file
|
@ -0,0 +1,30 @@
|
|||
namespace Blog.Core.Model
|
||||
{
|
||||
public enum AuthorityScopeEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// 无任何权限
|
||||
/// </summary>
|
||||
NONE = -1,
|
||||
/// <summary>
|
||||
/// 自定义权限
|
||||
/// </summary>
|
||||
Custom = 1,
|
||||
/// <summary>
|
||||
/// 本部门
|
||||
/// </summary>
|
||||
MyDepart = 2,
|
||||
/// <summary>
|
||||
/// 本部门及以下
|
||||
/// </summary>
|
||||
MyDepartAndDown = 3,
|
||||
/// <summary>
|
||||
/// 仅自己
|
||||
/// </summary>
|
||||
OnlySelf = 4,
|
||||
/// <summary>
|
||||
/// 所有
|
||||
/// </summary>
|
||||
ALL = 9
|
||||
}
|
||||
}
|
|
@ -46,6 +46,17 @@ namespace Blog.Core.Model.Models
|
|||
/// </summary>
|
||||
public int OrderSort { get; set; }
|
||||
/// <summary>
|
||||
/// 自定义权限的部门ids
|
||||
/// </summary>
|
||||
[SugarColumn(Length = 500, IsNullable = true)]
|
||||
public string Dids { get; set; }
|
||||
/// <summary>
|
||||
/// 权限范围
|
||||
/// -1 无任何权限;1 自定义权限;2 本部门;3 本部门及以下;4 仅自己;9 全部;
|
||||
/// </summary>
|
||||
[SugarColumn(IsNullable = true)]
|
||||
public int AuthorityScope { get; set; } = -1;
|
||||
/// <summary>
|
||||
/// 是否激活
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
|
|
@ -45,6 +45,11 @@ namespace Blog.Core.Model.Models
|
|||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
/// <summary>
|
||||
/// 部门
|
||||
/// </summary>
|
||||
[SugarColumn(IsNullable = true)]
|
||||
public int DepartmentId { get; set; } = -1;
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
[SugarColumn(Length = 2000, IsNullable = true)]
|
||||
|
@ -94,6 +99,10 @@ namespace Blog.Core.Model.Models
|
|||
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public List<string> RoleNames { get; set; }
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public List<int> Dids { get; set; }
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public string DepartmentName { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ namespace Blog.Core.Model.ViewModels
|
|||
public string uLoginPWD { get; set; }
|
||||
public string uRealName { get; set; }
|
||||
public int uStatus { get; set; }
|
||||
public int DepartmentId { get; set; }
|
||||
public string uRemark { get; set; }
|
||||
public System.DateTime uCreateTime { get; set; } = DateTime.Now;
|
||||
public System.DateTime uUpdateTime { get; set; } = DateTime.Now;
|
||||
|
@ -21,5 +22,7 @@ namespace Blog.Core.Model.ViewModels
|
|||
public string addr { get; set; }
|
||||
public bool tdIsDelete { get; set; }
|
||||
public List<string> RoleNames { get; set; }
|
||||
public List<int> Dids { get; set; }
|
||||
public string DepartmentName { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user