Commit 5259e6dc by ryun

账户密码登录相关BUG修复

parent e0d351f1
...@@ -49,7 +49,7 @@ public class AccountController : Controller ...@@ -49,7 +49,7 @@ public class AccountController : Controller
/// { /// {
/// "logintype": 2, /// "logintype": 2,
/// "account": "admin", /// "account": "admin",
/// "password": "1111", /// "password": "e10adc3949ba59abbe56e057f20f883e",
/// "appname": "string", /// "appname": "string",
/// "device": "web" /// "device": "web"
/// } /// }
...@@ -75,6 +75,7 @@ public ApiResponse<JwtToken> Login([FromBody] LoginRequest request) ...@@ -75,6 +75,7 @@ public ApiResponse<JwtToken> Login([FromBody] LoginRequest request)
new Claim(JwtClaimTypes.AppName, request.AppName ?? ""), new Claim(JwtClaimTypes.AppName, request.AppName ?? ""),
new Claim(JwtClaimTypes.Device, request.Device ?? ""), new Claim(JwtClaimTypes.Device, request.Device ?? ""),
new Claim(JwtClaimTypes.Department, user.Department ?? ""), new Claim(JwtClaimTypes.Department, user.Department ?? ""),
new Claim(JwtClaimTypes.QuickLogin, EQuickLogin.NO.ToString()),
}; };
var jwtToken = JwtTokenHelper.GenerateToken(claims, _options.ExpirationMinutes); var jwtToken = JwtTokenHelper.GenerateToken(claims, _options.ExpirationMinutes);
...@@ -104,6 +105,7 @@ public ApiResponse<JwtToken> QuickLogin([FromBody] ResetPwdRequest request) ...@@ -104,6 +105,7 @@ public ApiResponse<JwtToken> QuickLogin([FromBody] ResetPwdRequest request)
new Claim(JwtClaimTypes.AppName, request.AppName ?? ""), new Claim(JwtClaimTypes.AppName, request.AppName ?? ""),
new Claim(JwtClaimTypes.Device, request.Device ?? ""), new Claim(JwtClaimTypes.Device, request.Device ?? ""),
new Claim(JwtClaimTypes.Department, user.Department ?? ""), new Claim(JwtClaimTypes.Department, user.Department ?? ""),
new Claim(JwtClaimTypes.QuickLogin, EQuickLogin.YES.ToString()),
}; };
var jwtToken = JwtTokenHelper.GenerateToken(claims, _options.ExpirationMinutes); var jwtToken = JwtTokenHelper.GenerateToken(claims, _options.ExpirationMinutes);
...@@ -148,6 +150,16 @@ public ApiResponse SelfInfo() ...@@ -148,6 +150,16 @@ public ApiResponse SelfInfo()
{ {
var userid = _claim.GetUserId(); var userid = _claim.GetUserId();
var user = _userService.GetUser(userid); var user = _userService.GetUser(userid);
var userClaim = _claim.GetUserClaim();
// 如果用户是快捷登录的,则不需要重置密码
var quickLogin = userClaim.FirstOrDefault(t => t.Type == JwtClaimTypes.QuickLogin)?.Value ?? "";
if (quickLogin.Equals(EQuickLogin.YES.ToString(), StringComparison.OrdinalIgnoreCase))
{
user.IsInitialPassword = (int)InitialPassword.修改;
}
user.Role = _roleService.GetUserRole(user.UserID); user.Role = _roleService.GetUserRole(user.UserID);
user.Hospital = _hospitalService.GetUserHopital(user.UserID); user.Hospital = _hospitalService.GetUserHopital(user.UserID);
...@@ -299,6 +311,16 @@ public ApiResponse SelfInfos([FromBody] UserRequest request) ...@@ -299,6 +311,16 @@ public ApiResponse SelfInfos([FromBody] UserRequest request)
user.IsAgainAdmin = user.Role != null ? roleArray.Contains(user.Role.First().Type ?? 0) : false; user.IsAgainAdmin = user.Role != null ? roleArray.Contains(user.Role.First().Type ?? 0) : false;
else else
user.IsAgainAdmin = user.Role != null ? roleArray.Contains(user.Role.First(t => t.RoleID == request.Role).Type ?? 0) : false; user.IsAgainAdmin = user.Role != null ? roleArray.Contains(user.Role.First(t => t.RoleID == request.Role).Type ?? 0) : false;
var userClaim = _claim.GetUserClaim();
// 如果用户是快捷登录的,则不需要重置密码
var quickLogin = userClaim.FirstOrDefault(t => t.Type == JwtClaimTypes.QuickLogin)?.Value ?? "";
if (quickLogin.Equals(EQuickLogin.YES.ToString(), StringComparison.OrdinalIgnoreCase))
{
user.IsInitialPassword = (int)InitialPassword.修改;
}
return new ApiResponse(ResponseType.OK, user); return new ApiResponse(ResponseType.OK, user);
} }
......
...@@ -3,18 +3,18 @@ ...@@ -3,18 +3,18 @@
https://go.microsoft.com/fwlink/?LinkID=208121. https://go.microsoft.com/fwlink/?LinkID=208121.
--> -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<DeleteExistingFiles>true</DeleteExistingFiles> <DeleteExistingFiles>true</DeleteExistingFiles>
<ExcludeApp_Data>false</ExcludeApp_Data> <ExcludeApp_Data>false</ExcludeApp_Data>
<LaunchSiteAfterPublish>true</LaunchSiteAfterPublish> <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform> <LastUsedPlatform>Any CPU</LastUsedPlatform>
<PublishProvider>FileSystem</PublishProvider> <PublishProvider>FileSystem</PublishProvider>
<PublishUrl>D:\publish\jx</PublishUrl> <PublishUrl>bin\Release\net6.0\publish\</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod> <WebPublishMethod>FileSystem</WebPublishMethod>
<SiteUrlToLaunchAfterPublish /> <SiteUrlToLaunchAfterPublish />
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net5.0</TargetFramework>
<ProjectGuid>3ae00ff5-f0ba-4d72-a23b-770186309327</ProjectGuid> <ProjectGuid>3ae00ff5-f0ba-4d72-a23b-770186309327</ProjectGuid>
<SelfContained>false</SelfContained> <SelfContained>false</SelfContained>
</PropertyGroup> </PropertyGroup>
</Project> </Project>
\ No newline at end of file
...@@ -99,6 +99,7 @@ public static class JwtClaimTypes ...@@ -99,6 +99,7 @@ public static class JwtClaimTypes
public const string AppName = "appname"; public const string AppName = "appname";
public const string Device = "device"; public const string Device = "device";
public const string Department = "department"; public const string Department = "department";
public const string QuickLogin = "quicklogin";
} }
public static class Consts public static class Consts
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
{ {
"logintype": 2, "logintype": 2,
"account": "admin", "account": "admin",
"password": "1111", "password": "e10adc3949ba59abbe56e057f20f883e",
"appname": "string", "appname": "string",
"device": "web" "device": "web"
} }
...@@ -24,11 +24,10 @@ ...@@ -24,11 +24,10 @@
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AccountController.QuickLogin(System.Int32,Performance.DtoModels.ResetPwdRequest)"> <member name="M:Performance.Api.Controllers.AccountController.QuickLogin(Performance.DtoModels.ResetPwdRequest)">
<summary> <summary>
快速登录 快速登录
</summary> </summary>
<param name="userId">登录目标用户id</param>
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
......
...@@ -2469,6 +2469,21 @@ ...@@ -2469,6 +2469,21 @@
<member name="P:Performance.DtoModels.ReportRequest.AccountingUnit"> <member name="P:Performance.DtoModels.ReportRequest.AccountingUnit">
<summary> 科室 </summary> <summary> 科室 </summary>
</member> </member>
<member name="P:Performance.DtoModels.ResetPwdRequest.Password">
<summary>
操作人密码
</summary>
</member>
<member name="P:Performance.DtoModels.ResetPwdRequest.CurrentUserId">
<summary>
操作人密码
</summary>
</member>
<member name="P:Performance.DtoModels.ResetPwdRequest.TargetUserId">
<summary>
目标登录人,希望登录的账号ID
</summary>
</member>
<member name="P:Performance.DtoModels.SecondAuditRequest.SecondId"> <member name="P:Performance.DtoModels.SecondAuditRequest.SecondId">
<summary> 二次绩效Id </summary> <summary> 二次绩效Id </summary>
</member> </member>
...@@ -2501,11 +2516,6 @@ ...@@ -2501,11 +2516,6 @@
提交类型 1 模板提交 2 其他提交 提交类型 1 模板提交 2 其他提交
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.ResetPwdRequest.Password">
<summary>
操作人密码
</summary>
</member>
<member name="P:Performance.DtoModels.UserListRequest.Role"> <member name="P:Performance.DtoModels.UserListRequest.Role">
<summary> <summary>
角色 角色
......
...@@ -92,3 +92,14 @@ public enum UnitType ...@@ -92,3 +92,14 @@ public enum UnitType
[Description("行政工勤")] [Description("行政工勤")]
行政工勤 = 12, 行政工勤 = 12,
} }
public enum InitialPassword
{
初始 = 1,
修改 = 2,
}
public enum EQuickLogin
{
YES = 1,
NO = 2,
}
...@@ -314,6 +314,7 @@ public UserResponse UpdatePwd(PasswordRequest request, int userId) ...@@ -314,6 +314,7 @@ public UserResponse UpdatePwd(PasswordRequest request, int userId)
//Md5小写加密 //Md5小写加密
user.Password = PwdHelper.MD5AndSalt(request.NewPwd); user.Password = PwdHelper.MD5AndSalt(request.NewPwd);
user.IsInitialPassword = (int)InitialPassword.修改;
if (!_userRepository.Update(user)) if (!_userRepository.Update(user))
throw new PerformanceException("保存失败"); throw new PerformanceException("保存失败");
...@@ -423,7 +424,7 @@ public UserResponse ResetPwd(int userId, int loginUserId, string password) ...@@ -423,7 +424,7 @@ public UserResponse ResetPwd(int userId, int loginUserId, string password)
//MD5小写加密 //MD5小写加密
user.Password = PwdHelper.MD5AndSalt2(AppConst.InitPwd); user.Password = PwdHelper.MD5AndSalt2(AppConst.InitPwd);
user.IsInitialPassword = 1; // 初始密码强制修改 user.IsInitialPassword = (int)InitialPassword.初始; // 初始密码强制修改
if (!_userRepository.Update(user)) if (!_userRepository.Update(user))
throw new PerformanceException("重置失败"); throw new PerformanceException("重置失败");
return _mapper.Map<UserResponse>(user); return _mapper.Map<UserResponse>(user);
...@@ -686,7 +687,7 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request) ...@@ -686,7 +687,7 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request)
{ "登录名", allDataList[i].RealName ?? "" }, { "登录名", allDataList[i].RealName ?? "" },
{ "角色", allDataList[i].RoleName ?? "" }, { "角色", allDataList[i].RoleName ?? "" },
{ "分配医院", allDataList[i].HosName ?? "" }, { "分配医院", allDataList[i].HosName ?? "" },
{ "核算单元", allDataList[i].Department.ToString() ?? "" }, { "核算单元", allDataList[i].Department ?? "" },
{ "错误原因", "“关键信息缺失”请补全或删除" }, { "错误原因", "“关键信息缺失”请补全或删除" },
}); });
continue; continue;
...@@ -700,7 +701,7 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request) ...@@ -700,7 +701,7 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request)
{ "登录名", allDataList[i].RealName ?? "" }, { "登录名", allDataList[i].RealName ?? "" },
{ "角色", allDataList[i].RoleName ?? "" }, { "角色", allDataList[i].RoleName ?? "" },
{ "分配医院", allDataList[i].HosName ?? "" }, { "分配医院", allDataList[i].HosName ?? "" },
{ "核算单元", allDataList[i].Department.ToString() ?? "" }, { "核算单元", allDataList[i].Department ?? "" },
{ "错误原因", "“角色”错误,请修改或删除" }, { "错误原因", "“角色”错误,请修改或删除" },
}); });
} }
...@@ -713,7 +714,7 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request) ...@@ -713,7 +714,7 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request)
{ "登录名", allDataList[i].RealName ?? "" }, { "登录名", allDataList[i].RealName ?? "" },
{ "角色", allDataList[i].RoleName ?? "" }, { "角色", allDataList[i].RoleName ?? "" },
{ "分配医院", allDataList[i].HosName ?? "" }, { "分配医院", allDataList[i].HosName ?? "" },
{ "核算单元", allDataList[i].Department.ToString() ?? "" }, { "核算单元", allDataList[i].Department ?? "" },
{ "错误原因", "“分配医院”错误,请修改或删除" }, { "错误原因", "“分配医院”错误,请修改或删除" },
}); });
} }
...@@ -773,10 +774,11 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request) ...@@ -773,10 +774,11 @@ public ApiResponse SaveUserHandsFlat(UserCollectData request)
UnitCode = cts?.Code ?? "", UnitCode = cts?.Code ?? "",
IsDelete = 1, IsDelete = 1,
Login = data.Login, Login = data.Login,
Password = data?.Password ?? PwdHelper.MD5AndSalt2(AppConst.InitPwd), Password = PwdHelper.MD5AndSalt2(AppConst.InitPwd),
States = 1, States = 1,
Mobile = data?.Mobile ?? "", Mobile = data?.Mobile ?? "",
Mail = data?.Mail ?? "" Mail = data?.Mail ?? "",
IsInitialPassword = (int)InitialPassword.初始,
}; };
users.Add(user); users.Add(user);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment