From fd5a6c75870cfa24acfbccad8faa3179b702ec90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E5=86=9B?= <510423039@qq.com>
Date: Sat, 15 May 2021 14:05:58 +0800
Subject: [PATCH] =?UTF-8?q?fix:=201.=E6=B7=BB=E5=8A=A0=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E5=AF=86=E7=A0=81=202.=E4=BC=98=E5=8C=96=E5=89=8D=E7=AB=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CompanyNameProjectName.HttpApi.Host.xml | 84 +
.../appsettings.json | 4 +-
...yNameProjectName.Application.Contracts.xml | 44 +
.../CompanyNameProjectName.Application.xml | 73 +
.../Users/LoginAppService.cs | 19 +-
.../Users/UserAppService.cs | 30 +-
.../CompanyNameProjectName.HttpApi.xml | 8 +
.../user-dropdown/ChangePassword.vue | 83 +
.../header/components/user-dropdown/index.vue | 19 +-
.../vue/src/locales/lang/en/layout/header.ts | 5 +-
.../src/locales/lang/zh_CN/layout/header.ts | 6 +-
content/vue/src/router/index.ts | 4 +-
content/vue/src/services/ServiceProxies.ts | 5213 +++++++++--------
content/vue/src/services/ServiceProxyBase.ts | 11 +-
content/vue/src/store/modules/user.ts | 1 -
content/vue/src/views/admin/roles/AbpRole.ts | 45 +-
.../src/views/admin/roles/CreateAbpRole.vue | 16 +-
.../vue/src/views/admin/roles/EditAbpRole.vue | 24 +-
.../views/admin/roles/PermissionAbpRole.vue | 12 +-
content/vue/src/views/admin/users/AbpUser.ts | 43 +-
.../src/views/admin/users/CreateAbpUser.vue | 48 +-
.../vue/src/views/admin/users/EditAbpUser.vue | 57 +-
content/vue/src/views/sys/login/LoginForm.vue | 235 +-
23 files changed, 3514 insertions(+), 2570 deletions(-)
create mode 100644 content/aspnetcore/host/CompanyName.ProjectName.HttpApi.Host/CompanyNameProjectName.HttpApi.Host.xml
create mode 100644 content/aspnetcore/src/CompanyName.ProjectName.Application.Contracts/CompanyNameProjectName.Application.Contracts.xml
create mode 100644 content/aspnetcore/src/CompanyName.ProjectName.Application/CompanyNameProjectName.Application.xml
create mode 100644 content/aspnetcore/src/CompanyName.ProjectName.HttpApi/CompanyNameProjectName.HttpApi.xml
create mode 100644 content/vue/src/layouts/default/header/components/user-dropdown/ChangePassword.vue
diff --git a/content/aspnetcore/host/CompanyName.ProjectName.HttpApi.Host/CompanyNameProjectName.HttpApi.Host.xml b/content/aspnetcore/host/CompanyName.ProjectName.HttpApi.Host/CompanyNameProjectName.HttpApi.Host.xml
new file mode 100644
index 00000000..11085c4f
--- /dev/null
+++ b/content/aspnetcore/host/CompanyName.ProjectName.HttpApi.Host/CompanyNameProjectName.HttpApi.Host.xml
@@ -0,0 +1,84 @@
+
+
+
+ CompanyName.ProjectName.HttpApi.Host
+
+
+
+
+ 配置options
+
+
+
+
+
+ 审计日志
+
+
+
+
+ Redis缓存
+
+
+
+
+
+ 异常处理
+
+
+
+
+
+ 配置虚拟文件系统
+
+
+
+
+
+ 映射Controller
+
+
+
+
+ 配置JWT
+
+
+
+
+
+
+ 配置SwaggerUI
+
+
+
+
+
+ 配置本地化
+
+
+
+
+ 配置跨域
+
+
+
+
+
+
+ 配置Hangfire服务
+
+
+
+
+
+ 在使用nswag的时候,原生默认的api导致生产的代理类存在问题
+ 所有隐藏原生的api,重写路由
+
+
+
+
+ 把abp vnext 提供的api 归档
+
+
+
+
diff --git a/content/aspnetcore/host/CompanyName.ProjectName.HttpApi.Host/appsettings.json b/content/aspnetcore/host/CompanyName.ProjectName.HttpApi.Host/appsettings.json
index 2350b5cf..941171a1 100644
--- a/content/aspnetcore/host/CompanyName.ProjectName.HttpApi.Host/appsettings.json
+++ b/content/aspnetcore/host/CompanyName.ProjectName.HttpApi.Host/appsettings.json
@@ -31,11 +31,11 @@
}
},
"ConnectionStrings": {
- "Default": "Data Source=mysql.platform.development.cn;Database=CompanyNameProjectName;uid=root;pwd=mysql@dmin;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
+ "Default": "Data Source=mysql.platform.development.yhglobal.cn;Database=CompanyNameProjectName;uid=root;pwd=mysql@dmin;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
},
"Cache": {
"Redis": {
- "ConnectionString": "redis.platform.development.cn,password=OD5VbzIuAWsHOZV5ncYx9xaDsAMsKXn7",
+ "ConnectionString": "redis.platform.development.yhglobal.cn,password=OD5VbzIuAWsHOZV5ncYx9xaDsAMsKXn7",
"DatabaseId": 234
}
},
diff --git a/content/aspnetcore/src/CompanyName.ProjectName.Application.Contracts/CompanyNameProjectName.Application.Contracts.xml b/content/aspnetcore/src/CompanyName.ProjectName.Application.Contracts/CompanyNameProjectName.Application.Contracts.xml
new file mode 100644
index 00000000..123c6ec3
--- /dev/null
+++ b/content/aspnetcore/src/CompanyName.ProjectName.Application.Contracts/CompanyNameProjectName.Application.Contracts.xml
@@ -0,0 +1,44 @@
+
+
+
+ CompanyName.ProjectName.Application.Contracts
+
+
+
+
+ 执行任务
+
+
+
+
+
+ 当前页面
+
+
+
+
+ 每页多少条
+
+
+
+
+ 登录
+
+
+
+
+ 用户名或者邮箱
+
+
+
+
+ 密码
+
+
+
+
+ 过期时间
+
+
+
+
diff --git a/content/aspnetcore/src/CompanyName.ProjectName.Application/CompanyNameProjectName.Application.xml b/content/aspnetcore/src/CompanyName.ProjectName.Application/CompanyNameProjectName.Application.xml
new file mode 100644
index 00000000..23b1e13e
--- /dev/null
+++ b/content/aspnetcore/src/CompanyName.ProjectName.Application/CompanyNameProjectName.Application.xml
@@ -0,0 +1,73 @@
+
+
+
+ CompanyName.ProjectName.Application
+
+
+
+
+ Cron类型
+
+
+
+
+ 周期性为分钟的任务
+
+ 执行周期的间隔,默认为每分钟一次
+
+
+
+
+ 周期性为小时的任务
+
+ 第几分钟开始,默认为第一分钟
+ 执行周期的间隔,默认为每小时一次
+
+
+
+
+ 周期性为天的任务
+
+ 第几小时开始,默认从1点开始
+ 第几分钟开始,默认从第1分钟开始
+ 执行周期的间隔,默认为每天一次
+
+
+
+
+ 周期性为周的任务
+
+ 星期几开始,默认从星期一点开始
+ 第几小时开始,默认从1点开始
+ 第几分钟开始,默认从第1分钟开始
+
+
+
+
+ 周期性为月的任务
+
+ 几号开始,默认从一号开始
+ 第几小时开始,默认从1点开始
+ 第几分钟开始,默认从第1分钟开始
+
+
+
+
+ 周期性为年的任务
+
+ 几月开始,默认从一月开始
+ 几号开始,默认从一号开始
+ 第几小时开始,默认从1点开始
+ 第几分钟开始,默认从第1分钟开始
+
+
+
+
+ 生成jwt token
+
+
+
+
+
+
+
diff --git a/content/aspnetcore/src/CompanyName.ProjectName.Application/Users/LoginAppService.cs b/content/aspnetcore/src/CompanyName.ProjectName.Application/Users/LoginAppService.cs
index a5fc3689..df44c7a2 100644
--- a/content/aspnetcore/src/CompanyName.ProjectName.Application/Users/LoginAppService.cs
+++ b/content/aspnetcore/src/CompanyName.ProjectName.Application/Users/LoginAppService.cs
@@ -38,23 +38,24 @@ namespace CompanyNameProjectName.Users
[SwaggerOperation(summary: "登录", Tags = new[] { "Login" })]
public async Task PostAsync(LoginInputDto input)
{
- var result = await _signInManager.PasswordSignInAsync(input.Name, input.Password, false, true);
- if (!result.Succeeded) throw new BusinessException("Login Faild");
-
- var user = await _userManager.FindByNameAsync(input.Name);
- if (user != null)
+ try
{
-
- if (user == null) throw new BusinessException("Login Faild");
+ var result = await _signInManager.PasswordSignInAsync(input.Name, input.Password, false, true);
+ if (!result.Succeeded) throw new Exception("用户名或者密码错误");
+ var user = await _userManager.FindByNameAsync(input.Name);
var roles = await _userManager.GetRolesAsync(user);
- if (roles == null || roles.Count == 0) throw new BusinessException("Login Faild");
+ if (roles == null || roles.Count == 0) throw new Exception("当前用户未分配角色");
var token = GenerateJwt(user, roles.ToList());
var loginOutputDto = ObjectMapper.Map(user);
loginOutputDto.Token = token;
loginOutputDto.Expiration = DateTime.Now.AddHours(_jwtOptions.ExpirationTime);
return loginOutputDto;
}
- throw new BusinessException("Login Faild");
+ catch(Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+
}
///
diff --git a/content/aspnetcore/src/CompanyName.ProjectName.Application/Users/UserAppService.cs b/content/aspnetcore/src/CompanyName.ProjectName.Application/Users/UserAppService.cs
index 2ec2c220..caeb1e1a 100644
--- a/content/aspnetcore/src/CompanyName.ProjectName.Application/Users/UserAppService.cs
+++ b/content/aspnetcore/src/CompanyName.ProjectName.Application/Users/UserAppService.cs
@@ -1,5 +1,6 @@
using CompanyNameProjectName.Users.Dtos;
using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;
using System;
@@ -10,16 +11,19 @@ using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Identity;
+using Volo.Abp.Users;
namespace CompanyNameProjectName.Users
{
+ [Authorize]
public class UserAppService : ApplicationService
{
private readonly IIdentityUserAppService _identityUserAppService;
-
- public UserAppService(IIdentityUserAppService identityUserAppService)
+ private readonly IdentityUserManager _userManager;
+ public UserAppService(IIdentityUserAppService identityUserAppService, IdentityUserManager userManager)
{
_identityUserAppService = identityUserAppService;
+ _userManager = userManager;
}
[SwaggerOperation(summary: "分页获取用户信息", Tags = new[] { "User" })]
@@ -65,5 +69,27 @@ namespace CompanyNameProjectName.Users
{
return await _identityUserAppService.GetRolesAsync(userId);
}
+
+ ///
+ /// 修改密码
+ ///
+ ///
+ ///
+ public async Task ChangePasswordAsync(ChangePasswordInput input)
+ {
+ var identityUser = await _userManager.GetByIdAsync(base.CurrentUser.GetId());
+ IdentityResult result;
+ if (identityUser.PasswordHash == null)
+ {
+ result = await _userManager.AddPasswordAsync(identityUser, input.NewPassword);
+ }
+ else
+ {
+ result = await _userManager.ChangePasswordAsync(identityUser, input.CurrentPassword, input.NewPassword);
+ }
+
+ if (!result.Succeeded) throw new Exception(result.Errors.FirstOrDefault().Description);
+ return result.Succeeded;
+ }
}
}
diff --git a/content/aspnetcore/src/CompanyName.ProjectName.HttpApi/CompanyNameProjectName.HttpApi.xml b/content/aspnetcore/src/CompanyName.ProjectName.HttpApi/CompanyNameProjectName.HttpApi.xml
new file mode 100644
index 00000000..27b12d23
--- /dev/null
+++ b/content/aspnetcore/src/CompanyName.ProjectName.HttpApi/CompanyNameProjectName.HttpApi.xml
@@ -0,0 +1,8 @@
+
+
+
+ CompanyName.ProjectName.HttpApi
+
+
+
+
diff --git a/content/vue/src/layouts/default/header/components/user-dropdown/ChangePassword.vue b/content/vue/src/layouts/default/header/components/user-dropdown/ChangePassword.vue
new file mode 100644
index 00000000..8460b7d2
--- /dev/null
+++ b/content/vue/src/layouts/default/header/components/user-dropdown/ChangePassword.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
diff --git a/content/vue/src/layouts/default/header/components/user-dropdown/index.vue b/content/vue/src/layouts/default/header/components/user-dropdown/index.vue
index 9c6779ac..5913631d 100644
--- a/content/vue/src/layouts/default/header/components/user-dropdown/index.vue
+++ b/content/vue/src/layouts/default/header/components/user-dropdown/index.vue
@@ -17,6 +17,11 @@
icon="ion:document-text-outline"
v-if="getShowDoc"
/>
+