LMS.service/LMS.DAO/UserDAO/UserBasicDAO.cs
lq1405 57402e0dda V1.0.4
1. 新增用户注册需要邮箱验证码
2. 机器码、软件权限控制、用户 隔离,除非超级管理员,其他用户只能看到自己下面的用户,管理员可以看到除超级管理员以外的所有
2025-03-16 23:01:50 +08:00

97 lines
3.3 KiB
C#

using LMS.Repository.Models.DB;
using Microsoft.AspNetCore.Identity;
namespace LMS.DAO.UserDAO
{
public class UserBasicDao(UserManager<User> userManager)
{
private readonly UserManager<User> _userManager = userManager;
/// <summary>
/// 检查用户是否存在,通过用户ID
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<bool> CheckUserExistsByID(long? userId)
{
if (userId == null)
{
return false;
}
return await _userManager.FindByIdAsync(userId.ToString()) != null;
}
/// <summary>
/// 判断传入的数据是不是有管理员权限或者是超级管理员权限
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<bool> CheckUserIsAdminOrSuperAdmin(long? userId)
{
if (userId == null)
{
return false;
}
User? user = await _userManager.FindByIdAsync(userId.ToString() ?? "0") ?? throw new Exception("用户不存在");
bool isAdminOrSuperAdmin = await _userManager.IsInRoleAsync(user, "Admin") || await _userManager.IsInRoleAsync(user, "Super Admin");
return isAdminOrSuperAdmin;
}
/// <summary>
/// 检查用户是不是超级管理员
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<bool> CheckUserIsSuperAdmin(long? userId)
{
if (userId == null)
{
return false;
}
User? user = await _userManager.FindByIdAsync(userId.ToString() ?? "0") ?? throw new Exception("用户不存在");
bool isSuperAdmin = await _userManager.IsInRoleAsync(user, "Super Admin");
return isSuperAdmin;
}
/// <summary>
/// 检查用户是不是管理员
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<bool> CheckUserIsAdmin(long? userId)
{
if (userId == null)
{
return false;
}
User? user = await _userManager.FindByIdAsync(userId.ToString() ?? "0") ?? throw new Exception("用户不存在");
bool isSuperAdmin = await _userManager.IsInRoleAsync(user, "Admin");
return isSuperAdmin;
}
/// <summary>
/// 检查用户是不是代理
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<bool> CheckUserIsAgent(long? userId)
{
if (userId == null)
{
return false;
}
User? user = await _userManager.FindByIdAsync(userId.ToString() ?? "0") ?? throw new Exception("用户不存在");
bool isSuperAdmin = await _userManager.IsInRoleAsync(user, "Agent User");
return isSuperAdmin;
}
}
}