diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs index 2ab74c3d..7f7291b6 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs @@ -41,6 +41,7 @@ namespace Yi.Framework.Rbac.Application.Services private IDistributedCache _phoneCache; private readonly ICaptcha _captcha; private readonly IGuidGenerator _guidGenerator; + private readonly RbacOptions _rbacOptions; public AccountService(IUserRepository userRepository, ICurrentUser currentUser, AccountManager accountManager, @@ -50,7 +51,8 @@ namespace Yi.Framework.Rbac.Application.Services IOptions jwtOptions, IDistributedCache phoneCache, ICaptcha captcha, - IGuidGenerator guidGenerator) + IGuidGenerator guidGenerator, + IOptions options) { _userRepository = userRepository; _currentUser = currentUser; @@ -62,6 +64,7 @@ namespace Yi.Framework.Rbac.Application.Services _phoneCache = phoneCache; _captcha = captcha; _guidGenerator = guidGenerator; + _rbacOptions = options.Value; } @@ -79,10 +82,13 @@ namespace Yi.Framework.Rbac.Application.Services /// private void ValidationImageCaptcha(LoginInputVo input) { - //登录不想要验证码 ,可不效验 - if (!_captcha.Validate(input.Uuid, input.Code)) + if (_rbacOptions.EnableCaptcha) { - throw new UserFriendlyException("验证码错误"); + //登录不想要验证码 ,可不效验 + if (!_captcha.Validate(input.Uuid, input.Code)) + { + throw new UserFriendlyException("验证码错误"); + } } } @@ -114,7 +120,7 @@ namespace Yi.Framework.Rbac.Application.Services } //效验验证码 - // ValidationImageCaptcha(input); + ValidationImageCaptcha(input); UserEntity user = new(); //登录成功 @@ -123,6 +129,12 @@ namespace Yi.Framework.Rbac.Application.Services //获取用户信息 var userInfo = await _userRepository.GetUserAllInfoAsync(user.Id); + //判断用户状态 + if (userInfo.User.State == false) + { + throw new UserFriendlyException(UserConst.State_Is_State); + } + if (userInfo.RoleCodes.Count == 0) { throw new UserFriendlyException(UserConst.No_Role); diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Consts/UserConst.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Consts/UserConst.cs index ded4e543..d3e75db1 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Consts/UserConst.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Consts/UserConst.cs @@ -16,6 +16,7 @@ namespace Yi.Framework.Rbac.Domain.Shared.Consts public const string Login_User_No_Exist = "登录失败!用户名不存在!"; public const string Login_Passworld_Error = "密码为空,添加失败!"; public const string User_Exist = "用户已经存在,添加失败!"; + public const string State_Is_State = "该用户已被禁用,请联系管理员进行恢复"; public const string No_Permission = "登录禁用!该用户分配无任何权限,无意义登录!"; public const string No_Role = "登录禁用!该用户分配无任何角色,无意义登录!"; diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Options/RbacOptions.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Options/RbacOptions.cs index 5d082a29..f475b70e 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Options/RbacOptions.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Options/RbacOptions.cs @@ -12,5 +12,10 @@ namespace Yi.Framework.Rbac.Domain.Shared.Options /// 超级管理员默认密码 /// public string AdminPassword { get; set; } = "123456"; + + /// + /// 是否开启登录验证码 + /// + public bool EnableCaptcha { get; set; } = false; } }