diff --git a/.gitignore b/.gitignore index c8154052..72376c27 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,7 @@ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ - +.DS_Store # Visual Studio 2015 cache/options directory .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot diff --git a/aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/UserAppService.cs b/aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/UserAppService.cs index 7634967e..e0cda457 100644 --- a/aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/UserAppService.cs +++ b/aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/UserAppService.cs @@ -109,7 +109,6 @@ namespace Lion.AbpPro.BasicManagement.Users [Authorize(IdentityPermissions.Users.Update)] public virtual async Task UpdateAsync(UpdateUserInput input) { - input.UserInfo.IsActive = true; return await _identityUserAppService.UpdateAsync(input.UserId, input.UserInfo); } diff --git a/aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Lion/AbpPro/AbpProSharedHostingMicroserviceModule.cs b/aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Lion/AbpPro/AbpProSharedHostingMicroserviceModule.cs index 2afe702e..87887ec8 100644 --- a/aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Lion/AbpPro/AbpProSharedHostingMicroserviceModule.cs +++ b/aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Lion/AbpPro/AbpProSharedHostingMicroserviceModule.cs @@ -1,6 +1,8 @@ using Microsoft.AspNetCore.DataProtection; using StackExchange.Redis; +using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.Caching; +using Volo.Abp.MultiTenancy; using Volo.Abp.Settings; namespace Lion.AbpPro; @@ -23,6 +25,7 @@ public class AbpProSharedHostingMicroserviceModule : AbpModule ConfigureConsul(context, configuration); ConfigAntiForgery(); ConfigureAbpExceptions(context); + ConfigureTenantResolvers(); } /// @@ -75,11 +78,11 @@ public class AbpProSharedHostingMicroserviceModule : AbpModule .Select(o => o.RemovePostFix("/")) .ToArray() ) - .WithAbpExposedHeaders() + //.WithAbpExposedHeaders() .SetIsOriginAllowedToAllowWildcardSubdomains() .AllowAnyHeader() .AllowAnyMethod() - .AllowCredentials() + //.AllowCredentials() // https://www.cnblogs.com/JulianHuang/p/14225515.html // https://learn.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-7.0 .SetPreflightMaxAge((TimeSpan.FromHours(24))); @@ -118,4 +121,20 @@ public class AbpProSharedHostingMicroserviceModule : AbpModule // context.Services.AddHealthChecks().AddRedis(redisConnectionString).AddMySql(connectString); context.Services.AddHealthChecks(); } + + /// + /// 配置租户解析 + /// + private void ConfigureTenantResolvers() + { + Configure(options => + { + options.TenantResolvers.Clear(); + // 只保留通过请求头解析租户 + // options.TenantResolvers.Add(new QueryStringTenantResolveContributor()); + // options.TenantResolvers.Add(new RouteTenantResolveContributor()); + options.TenantResolvers.Add(new HeaderTenantResolveContributor()); + // options.TenantResolvers.Add(new CookieTenantResolveContributor()); + }); + } } \ No newline at end of file diff --git a/vben28/package.json b/vben28/package.json index 7940cb02..b503a2d6 100644 --- a/vben28/package.json +++ b/vben28/package.json @@ -70,7 +70,7 @@ "vue": "3.2.33", "vue-i18n": "^9.1.9", "vue-json-pretty": "^2.0.6", - "vue-router": "^4.0.14", + "vue-router": "4.0.14", "vue-types": "^4.1.1", "xlsx": "^0.18.5", "oidc-client": "^1.11.5", diff --git a/vben28/src/router/constant.ts b/vben28/src/router/constant.ts index d39a67e5..68029a1f 100644 --- a/vben28/src/router/constant.ts +++ b/vben28/src/router/constant.ts @@ -4,6 +4,8 @@ export const PARENT_LAYOUT_NAME = 'ParentLayout'; export const PAGE_NOT_FOUND_NAME = 'PageNotFound'; +export const PAGE_NOT_FOUND_NAME_PATH = 'PageNotFoundPath'; + export const EXCEPTION_COMPONENT = () => import('/@/views/sys/exception/Exception.vue'); /** diff --git a/vben28/src/store/modules/user.ts b/vben28/src/store/modules/user.ts index 596ec090..b2af76dd 100644 --- a/vben28/src/store/modules/user.ts +++ b/vben28/src/store/modules/user.ts @@ -224,7 +224,6 @@ export const useUserStore = defineStore({ */ async logout(goLogin = false) { try { - debugger; if (this.userInfo?.isSts) { await useOidcLogout(); } else { diff --git a/vben28/src/views/admin/users/AbpUser.ts b/vben28/src/views/admin/users/AbpUser.ts index 5cc06268..7f4b980b 100644 --- a/vben28/src/views/admin/users/AbpUser.ts +++ b/vben28/src/views/admin/users/AbpUser.ts @@ -136,6 +136,13 @@ export const createFormSchema: FormSchema[] = [ ]; export const editFormSchema: FormSchema[] = [ + { + field: 'isActive', + component: 'Input', + label: t('routes.admin.userManagement_name'), + labelWidth: 130, + show: false, + }, { field: 'userName', component: 'Input', diff --git a/vben28/src/views/admin/users/EditAbpUser.vue b/vben28/src/views/admin/users/EditAbpUser.vue index c9a733ea..9e96ef56 100644 --- a/vben28/src/views/admin/users/EditAbpUser.vue +++ b/vben28/src/views/admin/users/EditAbpUser.vue @@ -83,7 +83,8 @@ export default defineComponent({ name: data.record.name, userName: data.record.userName, email: data.record.email, - phoneNumber: data.record.phoneNumber + phoneNumber: data.record.phoneNumber, + isActive: data.record.isActive, }); }); @@ -127,7 +128,7 @@ export default defineComponent({ userInfo.concurrencyStamp = currentUserInfo.concurrencyStamp; userInfo.roleNames = defaultRolesRef.value; userInfo.password = request.password; - + userInfo.isActive = request.isActive; updateUserInput.userId = currentUserInfo.id; updateUserInput.userInfo = userInfo; await updateUserAsync({