From fff885d236f2186909211dfd09e4f70cf06a8e74 Mon Sep 17 00:00:00 2001
From: cKey <35512826+colinin@users.noreply.github.com>
Date: Mon, 29 Jun 2020 17:30:10 +0800
Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=BA=9F=E5=BC=83=E7=9A=84?=
=?UTF-8?q?=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../LINGYUN.Abp.FileStorage.Qiniu.csproj | 16 -
.../Qiniu/AbpQiniuFileStorageModule.cs | 10 -
.../Qiniu/QiniuFileStorageOptions.cs | 40 --
.../Qiniu/QiniuFileStorageProvider.cs | 111 -----
.../LINGYUN.Abp.FileStorage.csproj | 12 -
.../Abp/FileStorage/AbpFileStorageModule.cs | 8 -
.../FileDownloadCompletedEventArges.cs | 8 -
.../FileDownloadProgressEventArges.cs | 11 -
.../LINGYUN/Abp/FileStorage/FileInfo.cs | 59 ---
.../Abp/FileStorage/FileStorageProvider.cs | 63 ---
.../FileUploadCompletedEventArges.cs | 8 -
.../FileUploadProgressEventArges.cs | 21 -
.../Abp/FileStorage/IFileStorageProvider.cs | 41 --
.../LINGYUN/Abp/FileStorage/IFileStore.cs | 39 --
.../LINGYUN/Abp/FileStorage/MediaType.cs | 25 -
.../common/LINGYUN.Common.EventBus/.gitignore | 4 -
.../LINGYUN.Common.EventBus.csproj | 12 -
.../Common/EventBus/CommonEventBusModule.cs | 11 -
.../EventBus/Tenants/DeleteEventData.cs | 11 -
.../EventBus/Tenants/TenantEventNames.cs | 19 -
.../LINGYUN.Abp.MultiTenancy.csproj | 8 +
.../CreateConnectionStringEventData.cs | 4 +-
.../Abp/MultiTenancy}/CreateEventData.cs | 4 +-
.../DeleteConnectionStringEventData.cs | 4 +-
.../Abp/MultiTenancy/DeleteEventData.cs | 9 +
.../UpdateConnectionStringEventData.cs | 4 +-
.../Abp/MultiTenancy}/UpdateEventData.cs | 4 +-
...UN.Abp.TenantManagement.Application.csproj | 2 +-
.../Abp/TenantManagement/TenantAppService.cs | 2 +-
.../Abp/TenantManagement/TenantController.cs | 7 +
.../AuthServer.Host/AuthServer.Host.csproj | 2 +-
.../Handlers/TenantCreateEventHandler.cs | 2 +-
.../Distributed/TenantCreateEventHandler.cs | 18 +-
...YUN.Abp.MessageService.HttpApi.Host.csproj | 2 +-
.../Handlers/TenantCreateEventHandler.cs | 2 +-
vueJs/src/lang/en.ts | 450 +++++++++++++++++-
vueJs/src/lang/zh.ts | 3 +-
.../components/GlobalSettingEditForm.vue | 165 ++++++-
38 files changed, 655 insertions(+), 566 deletions(-)
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN.Abp.FileStorage.Qiniu.csproj
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/AbpQiniuFileStorageModule.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/QiniuFileStorageOptions.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/QiniuFileStorageProvider.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN.Abp.FileStorage.csproj
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/AbpFileStorageModule.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileDownloadCompletedEventArges.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileDownloadProgressEventArges.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileInfo.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileStorageProvider.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileUploadCompletedEventArges.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileUploadProgressEventArges.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/IFileStorageProvider.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/IFileStore.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/MediaType.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Common.EventBus/.gitignore
delete mode 100644 aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN.Common.EventBus.csproj
delete mode 100644 aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/CommonEventBusModule.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/DeleteEventData.cs
delete mode 100644 aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/TenantEventNames.cs
create mode 100644 aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN.Abp.MultiTenancy.csproj
rename aspnet-core/modules/{common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants => tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy}/CreateConnectionStringEventData.cs (62%)
rename aspnet-core/modules/{common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants => tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy}/CreateEventData.cs (73%)
rename aspnet-core/modules/{common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants => tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy}/DeleteConnectionStringEventData.cs (56%)
create mode 100644 aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/DeleteEventData.cs
rename aspnet-core/modules/{common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants => tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy}/UpdateConnectionStringEventData.cs (70%)
rename aspnet-core/modules/{common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants => tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy}/UpdateEventData.cs (64%)
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN.Abp.FileStorage.Qiniu.csproj b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN.Abp.FileStorage.Qiniu.csproj
deleted file mode 100644
index 9a462fc2e..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN.Abp.FileStorage.Qiniu.csproj
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
- netstandard2.0
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/AbpQiniuFileStorageModule.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/AbpQiniuFileStorageModule.cs
deleted file mode 100644
index 2568f6cd5..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/AbpQiniuFileStorageModule.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using Volo.Abp.Modularity;
-
-namespace LINGYUN.Abp.FileStorage.Qiniu
-{
- [DependsOn(typeof(AbpFileStorageModule))]
- public class AbpQiniuFileStorageModule : AbpModule
- {
-
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/QiniuFileStorageOptions.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/QiniuFileStorageOptions.cs
deleted file mode 100644
index 7a7838a0b..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/QiniuFileStorageOptions.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-namespace LINGYUN.Abp.FileStorage.Qiniu
-{
- public class QiniuFileStorageOptions
- {
- ///
- /// Api授权码
- ///
- public string AccessKey { get; set; }
- ///
- /// Api密钥
- ///
- public string SecretKey { get; set; }
- ///
- /// 默认自动删除该文件天数
- /// 默认 0,不删除
- ///
- public int DeleteAfterDays { get; set; }
- ///
- /// 上传成功后,七牛云向业务服务器发送 POST 请求的 URL。
- /// 必须是公网上可以正常进行 POST 请求并能响应 HTTP/1.1 200 OK 的有效 URL
- ///
- public string UploadCallbackUrl { get; set; }
- ///
- /// 上传成功后,七牛云向业务服务器发送回调通知时的 Host 值。
- /// 与 callbackUrl 配合使用,仅当设置了 callbackUrl 时才有效。
- ///
- public string UploadCallbackHost { get; set; }
- ///
- /// 上传成功后,七牛云向业务服务器发送回调通知 callbackBody 的 Content-Type。
- /// 默认为 application/x-www-form-urlencoded,也可设置为 application/json。
- ///
- public string UploadCallbackBodyType { get; set; }
- ///
- /// 上传成功后,自定义七牛云最终返回給上传端(在指定 returnUrl 时是携带在跳转路径参数中)的数据。
- /// 支持魔法变量和自定义变量。returnBody 要求是合法的 JSON 文本。
- /// 例如 {"key": $(key), "hash": $(etag), "w": $(imageInfo.width), "h": $(imageInfo.height)}。
- ///
- public string UploadCallbackBody { get; set; }
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/QiniuFileStorageProvider.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/QiniuFileStorageProvider.cs
deleted file mode 100644
index 2a19b2d4e..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage.Qiniu/LINGYUN/Abp/FileStorage/Qiniu/QiniuFileStorageProvider.cs
+++ /dev/null
@@ -1,111 +0,0 @@
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Options;
-using Qiniu.IO;
-using Qiniu.IO.Model;
-using Qiniu.RS;
-using Qiniu.Util;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Threading;
-using System.Threading.Tasks;
-using Volo.Abp.DependencyInjection;
-
-namespace LINGYUN.Abp.FileStorage.Qiniu
-{
- [Dependency(ServiceLifetime.Transient, ReplaceServices = true)]
- [ExposeServices(typeof(IFileStorageProvider), typeof(FileStorageProvider))]
- public class QiniuFileStorageProvider : FileStorageProvider
- {
- protected QiniuFileStorageOptions Options { get; }
- public QiniuFileStorageProvider(
- IFileStore store,
- IOptions options)
- : base(store)
- {
- Options = options.Value;
- }
-
- protected override async Task DownloadFileAsync(FileInfo fileInfo, string saveLocalPath)
- {
- Mac mac = new Mac(Options.AccessKey, Options.SecretKey);
-
- int expireInSeconds = 3600;
- string accUrl = DownloadManager.CreateSignedUrl(mac, fileInfo.Url, expireInSeconds);
-
- var saveLocalFile = Path.Combine(saveLocalPath, fileInfo.Name);
- var httpResult = await DownloadManager.DownloadAsync(accUrl, saveLocalFile);
- if(httpResult.Code == 200)
- {
- using (var fs = new FileStream(saveLocalFile, FileMode.Open, FileAccess.Read))
- {
- fileInfo.Data = new byte[fs.Length];
-
- await fs.ReadAsync(fileInfo.Data, 0, fileInfo.Data.Length).ConfigureAwait(false);
- }
- }
- else
- {
- // TODO: 处理响应代码
-
- Console.WriteLine(httpResult.Code);
- }
-
- return fileInfo;
- }
-
- protected override async Task RemoveFileAsync(FileInfo fileInfo, CancellationToken cancellationToken = default)
- {
- Mac mac = new Mac(Options.AccessKey, Options.SecretKey);
-
- var bucket = fileInfo.Directory + ":" + fileInfo.Name;
- var backetManager = new BucketManager(mac);
- await backetManager.DeleteAsync(bucket, fileInfo.Name);
-
- throw new NotImplementedException();
- }
-
- protected override async Task UploadFileAsync(FileInfo fileInfo, int? expireIn = null, CancellationToken cancellationToken = default)
- {
- Mac mac = new Mac(Options.AccessKey, Options.SecretKey);
-
- PutPolicy putPolicy = new PutPolicy
- {
- Scope = fileInfo.Directory + ":" + fileInfo.Name,
- CallbackBody = Options.UploadCallbackBody,
- CallbackBodyType = Options.UploadCallbackBodyType,
- CallbackHost = Options.UploadCallbackHost,
- CallbackUrl = Options.UploadCallbackUrl
- };
- if (expireIn.HasValue)
- {
- putPolicy.SetExpires(expireIn.Value);
- }
- if (Options.DeleteAfterDays > 0)
- {
- putPolicy.DeleteAfterDays = Options.DeleteAfterDays;
- }
-
-
- string jstr = putPolicy.ToJsonString();
- string token = Auth.CreateUploadToken(mac, jstr);
-
- UploadProgressHandler handler = (uploadByte, totalByte) =>
- {
- OnFileUploadProgressChanged(uploadByte, totalByte);
- };
-
- // 带进度的上传
- ResumableUploader uploader = new ResumableUploader();
- var httpResult = await uploader.UploadDataAsync(fileInfo.Data, fileInfo.Name, token, handler);
-
- // 普通上传
- //FormUploader fu = new FormUploader();
- //var httpResult = await fu.UploadDataAsync(fileInfo.Data, fileInfo.Name, token);
-
- // TODO: 处理响应代码
-
- Console.WriteLine(httpResult.Code);
- }
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN.Abp.FileStorage.csproj b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN.Abp.FileStorage.csproj
deleted file mode 100644
index 248eb0396..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN.Abp.FileStorage.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- netstandard2.0
-
-
-
-
-
-
-
-
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/AbpFileStorageModule.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/AbpFileStorageModule.cs
deleted file mode 100644
index 57147498e..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/AbpFileStorageModule.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using Volo.Abp.Modularity;
-
-namespace LINGYUN.Abp.FileStorage
-{
- public class AbpFileStorageModule : AbpModule
- {
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileDownloadCompletedEventArges.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileDownloadCompletedEventArges.cs
deleted file mode 100644
index 8d41bafa5..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileDownloadCompletedEventArges.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using System;
-
-namespace LINGYUN.Abp.FileStorage
-{
- public class FileDownloadCompletedEventArges : EventArgs
- {
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileDownloadProgressEventArges.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileDownloadProgressEventArges.cs
deleted file mode 100644
index d254b4461..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileDownloadProgressEventArges.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace LINGYUN.Abp.FileStorage
-{
- public class FileDownloadProgressEventArges : EventArgs
- {
-
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileInfo.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileInfo.cs
deleted file mode 100644
index 7376e7297..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileInfo.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System;
-
-namespace LINGYUN.Abp.FileStorage
-{
- ///
- /// 文件信息
- ///
- public class FileInfo
- {
- ///
- /// 名称
- ///
- public string Name { get; set; }
- ///
- /// 大小
- ///
- public long Size { get; set; }
- ///
- /// 文件路径
- ///
- public string Directory { get; set; }
- ///
- /// 文件扩展名
- ///
- public string Extension { get; set; }
- ///
- /// 文件哈希码,用于唯一标识
- ///
- public string Hash { get; set; }
- ///
- /// 文件链接
- ///
- public string Url { get; set; }
- ///
- /// 文件数据
- ///
- public byte[] Data { get; set; }
- ///
- /// 媒体类型
- ///
- public MediaType MediaType { get; set; }
- ///
- /// 创建时间
- ///
- public DateTime CreationTime { get; set; }
- ///
- /// 创建人
- ///
- public Guid? CreatorId { get; set; }
- ///
- /// 上次变更时间
- ///
- public DateTime? LastModificationTime { get; set; }
- ///
- /// 上次变更人
- ///
- public Guid? LastModifierId { get; set; }
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileStorageProvider.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileStorageProvider.cs
deleted file mode 100644
index 57d33ca5e..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileStorageProvider.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace LINGYUN.Abp.FileStorage
-{
- public abstract class FileStorageProvider : IFileStorageProvider
- {
- public event EventHandler FileDownloadProgressChanged;
- public event EventHandler FileDownloadCompleted;
- public event EventHandler FileUploadProgressChanged;
- public event EventHandler FileUploadCompleted;
-
- protected IFileStore Store { get; }
-
- public FileStorageProvider(IFileStore store)
- {
- Store = store;
- }
-
- public async Task DeleteFileAsync(string hash, CancellationToken cancellationToken = default)
- {
- // 获取文件信息
- var file = await Store.GetFileAsync(hash);
- // 删除文件
- await RemoveFileAsync(file, cancellationToken);
- // 删除文件信息
- await Store.DeleteFileAsync(hash, cancellationToken);
- }
-
- public async Task GetFileAsync(string hash, string saveLocalPath)
- {
- // 获取文件信息
- var file = await Store.GetFileAsync(hash);
- // 下载文件
- return await DownloadFileAsync(file, saveLocalPath);
- }
-
- public async Task StorageAsync(FileInfo fileInfo, int? expireIn = null, CancellationToken cancellationToken = default)
- {
- // step1 上传文件
- await UploadFileAsync(fileInfo, expireIn, cancellationToken);
- // step2 保存文件信息
- await Store.StorageAsync(fileInfo, expireIn, cancellationToken);
- }
-
- protected abstract Task UploadFileAsync(FileInfo fileInfo, int? expireIn = null, CancellationToken cancellationToken = default);
-
- protected abstract Task DownloadFileAsync(FileInfo fileInfo, string saveLocalPath);
-
- protected abstract Task RemoveFileAsync(FileInfo fileInfo, CancellationToken cancellationToken = default);
-
- protected virtual void OnFileUploadProgressChanged(long sent, long total)
- {
- FileUploadProgressChanged?.Invoke(this, new FileUploadProgressEventArges(sent, total));
- }
-
- protected virtual void OnFileUploadConpleted()
- {
- FileUploadCompleted?.Invoke(this, new FileUploadCompletedEventArges());
- }
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileUploadCompletedEventArges.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileUploadCompletedEventArges.cs
deleted file mode 100644
index eb23f111d..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileUploadCompletedEventArges.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using System;
-
-namespace LINGYUN.Abp.FileStorage
-{
- public class FileUploadCompletedEventArges : EventArgs
- {
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileUploadProgressEventArges.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileUploadProgressEventArges.cs
deleted file mode 100644
index 9ae7def26..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/FileUploadProgressEventArges.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System;
-
-namespace LINGYUN.Abp.FileStorage
-{
- public class FileUploadProgressEventArges : EventArgs
- {
- ///
- /// 上传数据大小
- ///
- public long BytesSent { get; }
- ///
- /// 总数据大小
- ///
- public long TotalBytesSent { get; }
- public FileUploadProgressEventArges(long sent, long total)
- {
- BytesSent = sent;
- TotalBytesSent = total;
- }
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/IFileStorageProvider.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/IFileStorageProvider.cs
deleted file mode 100644
index b7c892b45..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/IFileStorageProvider.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using System;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace LINGYUN.Abp.FileStorage
-{
- ///
- /// 文件存储提供者
- ///
- public interface IFileStorageProvider
- {
- event EventHandler FileDownloadProgressChanged;
- event EventHandler FileDownloadCompleted;
-
- event EventHandler FileUploadProgressChanged;
- event EventHandler FileUploadCompleted;
-
- ///
- /// 存储文件
- ///
- /// 文件信息
- /// 过期时间,单位(s)
- ///
- ///
- Task StorageAsync(FileInfo fileInfo, int? expireIn = null, CancellationToken cancellationToken = default);
- ///
- /// 获取文件
- ///
- /// 文件唯一标识
- /// 保存到本地路径
- ///
- Task GetFileAsync(string hash, string saveLocalPath);
- ///
- /// 删除文件
- ///
- /// 文件唯一标识
- ///
- ///
- Task DeleteFileAsync(string hash, CancellationToken cancellationToken = default);
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/IFileStore.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/IFileStore.cs
deleted file mode 100644
index f4b12a87b..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/IFileStore.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace LINGYUN.Abp.FileStorage
-{
- ///
- /// 文件存储接口
- ///
- public interface IFileStore
- {
- ///
- /// 存储文件
- ///
- /// 文件信息
- /// 过期时间,单位(s)
- ///
- ///
- Task StorageAsync(FileInfo fileInfo, int? expireIn = null, CancellationToken cancellationToken = default);
- ///
- /// 获取文件
- ///
- /// 文件唯一标识
- ///
- Task GetFileAsync(string hash);
- ///
- /// 文件是否存在
- ///
- /// 文件唯一标识
- ///
- Task FileHasExistsAsync(string hash);
- ///
- /// 删除文件
- ///
- /// 文件唯一标识
- ///
- ///
- Task DeleteFileAsync(string hash, CancellationToken cancellationToken = default);
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/MediaType.cs b/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/MediaType.cs
deleted file mode 100644
index ebabe6fda..000000000
--- a/aspnet-core/modules/common/LINGYUN.Abp.FileStorage/LINGYUN/Abp/FileStorage/MediaType.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-namespace LINGYUN.Abp.FileStorage
-{
- ///
- /// 媒体类型
- ///
- public enum MediaType
- {
- ///
- /// 文档
- ///
- Document = 0,
- ///
- /// 图像
- ///
- Image = 2,
- ///
- /// 影像
- ///
- Video = 3,
- ///
- /// 音乐
- ///
- Music = 4
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Common.EventBus/.gitignore b/aspnet-core/modules/common/LINGYUN.Common.EventBus/.gitignore
deleted file mode 100644
index 53f2c2fc2..000000000
--- a/aspnet-core/modules/common/LINGYUN.Common.EventBus/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin
-obj
-Logs
-appsettings.*.json
\ No newline at end of file
diff --git a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN.Common.EventBus.csproj b/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN.Common.EventBus.csproj
deleted file mode 100644
index 44af410ff..000000000
--- a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN.Common.EventBus.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- netstandard2.0
-
-
-
-
-
-
-
-
diff --git a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/CommonEventBusModule.cs b/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/CommonEventBusModule.cs
deleted file mode 100644
index 8d1bf3eca..000000000
--- a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/CommonEventBusModule.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Volo.Abp.EventBus;
-using Volo.Abp.Modularity;
-
-namespace LINGYUN.Common.EventBus
-{
- [DependsOn(typeof(AbpEventBusModule))]
- public class CommonEventBusModule : AbpModule
- {
-
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/DeleteEventData.cs b/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/DeleteEventData.cs
deleted file mode 100644
index ad3b76210..000000000
--- a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/DeleteEventData.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System;
-using Volo.Abp.EventBus;
-
-namespace LINGYUN.Common.EventBus.Tenants
-{
- [EventName(TenantEventNames.Delete)]
- public class DeleteEventData
- {
- public Guid Id { get; set; }
- }
-}
diff --git a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/TenantEventNames.cs b/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/TenantEventNames.cs
deleted file mode 100644
index c483c53c6..000000000
--- a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/TenantEventNames.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-namespace LINGYUN.Common.EventBus.Tenants
-{
- public class TenantEventNames
- {
- public const string Default = "TenantEvent";
-
- public const string Create = Default + ".Create";
-
- public const string Update = Default + ".Update";
-
- public const string Delete = Default + ".Delete";
-
- public const string CreateConnectionString = Default + ".CreateConnectionString";
-
- public const string UpdateConnectionString = Default + ".UpdateConnectionString";
-
- public const string DeleteConnectionString = Default + ".DeleteConnectionString";
- }
-}
diff --git a/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN.Abp.MultiTenancy.csproj b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN.Abp.MultiTenancy.csproj
new file mode 100644
index 000000000..9115b80b6
--- /dev/null
+++ b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN.Abp.MultiTenancy.csproj
@@ -0,0 +1,8 @@
+
+
+
+ netstandard2.0
+
+
+
+
diff --git a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/CreateConnectionStringEventData.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/CreateConnectionStringEventData.cs
similarity index 62%
rename from aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/CreateConnectionStringEventData.cs
rename to aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/CreateConnectionStringEventData.cs
index e74818278..678434f7d 100644
--- a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/CreateConnectionStringEventData.cs
+++ b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/CreateConnectionStringEventData.cs
@@ -1,9 +1,7 @@
using System;
-using Volo.Abp.EventBus;
-namespace LINGYUN.Common.EventBus.Tenants
+namespace LINGYUN.Abp.MultiTenancy
{
- [EventName(TenantEventNames.CreateConnectionString)]
public class CreateConnectionStringEventData
{
public Guid Id { get; set; }
diff --git a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/CreateEventData.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/CreateEventData.cs
similarity index 73%
rename from aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/CreateEventData.cs
rename to aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/CreateEventData.cs
index 5585cb3b9..a3d62eb2f 100644
--- a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/CreateEventData.cs
+++ b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/CreateEventData.cs
@@ -1,9 +1,7 @@
using System;
-using Volo.Abp.EventBus;
-namespace LINGYUN.Common.EventBus.Tenants
+namespace LINGYUN.Abp.MultiTenancy
{
- [EventName(TenantEventNames.Create)]
public class CreateEventData
{
public Guid Id { get; set; }
diff --git a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/DeleteConnectionStringEventData.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/DeleteConnectionStringEventData.cs
similarity index 56%
rename from aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/DeleteConnectionStringEventData.cs
rename to aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/DeleteConnectionStringEventData.cs
index 907e0d7ce..ddc973d28 100644
--- a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/DeleteConnectionStringEventData.cs
+++ b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/DeleteConnectionStringEventData.cs
@@ -1,9 +1,7 @@
using System;
-using Volo.Abp.EventBus;
-namespace LINGYUN.Common.EventBus.Tenants
+namespace LINGYUN.Abp.MultiTenancy
{
- [EventName(TenantEventNames.DeleteConnectionString)]
public class DeleteConnectionStringEventData
{
public Guid Id { get; set; }
diff --git a/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/DeleteEventData.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/DeleteEventData.cs
new file mode 100644
index 000000000..077f5cd21
--- /dev/null
+++ b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/DeleteEventData.cs
@@ -0,0 +1,9 @@
+using System;
+
+namespace LINGYUN.Abp.MultiTenancy
+{
+ public class DeleteEventData
+ {
+ public Guid Id { get; set; }
+ }
+}
diff --git a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/UpdateConnectionStringEventData.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/UpdateConnectionStringEventData.cs
similarity index 70%
rename from aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/UpdateConnectionStringEventData.cs
rename to aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/UpdateConnectionStringEventData.cs
index 82b80c089..bd55bdf4f 100644
--- a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/UpdateConnectionStringEventData.cs
+++ b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/UpdateConnectionStringEventData.cs
@@ -1,9 +1,7 @@
using System;
-using Volo.Abp.EventBus;
-namespace LINGYUN.Common.EventBus.Tenants
+namespace LINGYUN.Abp.MultiTenancy
{
- [EventName(TenantEventNames.UpdateConnectionString)]
public class UpdateConnectionStringEventData
{
public Guid Id { get; set; }
diff --git a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/UpdateEventData.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/UpdateEventData.cs
similarity index 64%
rename from aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/UpdateEventData.cs
rename to aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/UpdateEventData.cs
index db2308c84..6ff148d0b 100644
--- a/aspnet-core/modules/common/LINGYUN.Common.EventBus/LINGYUN/Common/EventBus/Tenants/UpdateEventData.cs
+++ b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy/LINGYUN/Abp/MultiTenancy/UpdateEventData.cs
@@ -1,9 +1,7 @@
using System;
-using Volo.Abp.EventBus;
-namespace LINGYUN.Common.EventBus.Tenants
+namespace LINGYUN.Abp.MultiTenancy
{
- [EventName(TenantEventNames.Update)]
public class UpdateEventData
{
public Guid Id { get; set; }
diff --git a/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.Application/LINGYUN.Abp.TenantManagement.Application.csproj b/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.Application/LINGYUN.Abp.TenantManagement.Application.csproj
index 1a8b4c03b..2cd39b192 100644
--- a/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.Application/LINGYUN.Abp.TenantManagement.Application.csproj
+++ b/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.Application/LINGYUN.Abp.TenantManagement.Application.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.Application/LINGYUN/Abp/TenantManagement/TenantAppService.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.Application/LINGYUN/Abp/TenantManagement/TenantAppService.cs
index 2782cd12b..6c40eb4c7 100644
--- a/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.Application/LINGYUN/Abp/TenantManagement/TenantAppService.cs
+++ b/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.Application/LINGYUN/Abp/TenantManagement/TenantAppService.cs
@@ -1,4 +1,4 @@
-using LINGYUN.Common.EventBus.Tenants;
+using LINGYUN.Abp.MultiTenancy;
using Microsoft.AspNetCore.Authorization;
using System;
using System.Collections.Generic;
diff --git a/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.HttpApi/LINGYUN/Abp/TenantManagement/TenantController.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.HttpApi/LINGYUN/Abp/TenantManagement/TenantController.cs
index c7ccb42fe..690697a7a 100644
--- a/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.HttpApi/LINGYUN/Abp/TenantManagement/TenantController.cs
+++ b/aspnet-core/modules/tenants/LINGYUN.Abp.TenantManagement.HttpApi/LINGYUN/Abp/TenantManagement/TenantController.cs
@@ -80,5 +80,12 @@ namespace LINGYUN.Abp.TenantManagement
{
return TenantAppService.DeleteConnectionStringAsync(tenantConnectionGetByName);
}
+
+ [HttpGet]
+ [Route("name/{name}")]
+ public virtual Task GetAsync(TenantGetByNameInputDto tenantGetByNameInput)
+ {
+ return TenantAppService.GetAsync(tenantGetByNameInput);
+ }
}
}
diff --git a/aspnet-core/services/account/AuthServer.Host/AuthServer.Host.csproj b/aspnet-core/services/account/AuthServer.Host/AuthServer.Host.csproj
index 45c5bef4f..4cdd8a9a2 100644
--- a/aspnet-core/services/account/AuthServer.Host/AuthServer.Host.csproj
+++ b/aspnet-core/services/account/AuthServer.Host/AuthServer.Host.csproj
@@ -36,8 +36,8 @@
-
+
diff --git a/aspnet-core/services/account/AuthServer.Host/EventBus/Handlers/TenantCreateEventHandler.cs b/aspnet-core/services/account/AuthServer.Host/EventBus/Handlers/TenantCreateEventHandler.cs
index dcc69e2e9..f1ef512c2 100644
--- a/aspnet-core/services/account/AuthServer.Host/EventBus/Handlers/TenantCreateEventHandler.cs
+++ b/aspnet-core/services/account/AuthServer.Host/EventBus/Handlers/TenantCreateEventHandler.cs
@@ -1,4 +1,4 @@
-using LINGYUN.Common.EventBus.Tenants;
+using LINGYUN.Abp.MultiTenancy;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Logging;
using System;
diff --git a/aspnet-core/services/messages/LINGYUN.Abp.MessageService.HttpApi.Host/EventBus/Distributed/TenantCreateEventHandler.cs b/aspnet-core/services/messages/LINGYUN.Abp.MessageService.HttpApi.Host/EventBus/Distributed/TenantCreateEventHandler.cs
index 48e62bcc3..9053a16e9 100644
--- a/aspnet-core/services/messages/LINGYUN.Abp.MessageService.HttpApi.Host/EventBus/Distributed/TenantCreateEventHandler.cs
+++ b/aspnet-core/services/messages/LINGYUN.Abp.MessageService.HttpApi.Host/EventBus/Distributed/TenantCreateEventHandler.cs
@@ -1,16 +1,16 @@
-using LINGYUN.Common.EventBus.Tenants;
-using System.Threading.Tasks;
-using Volo.Abp.EventBus.Distributed;
-using Volo.Abp.DependencyInjection;
-using Microsoft.Extensions.Logging;
-using Volo.Abp.MultiTenancy;
+using LINGYUN.Abp.MessageService.Localization;
+using LINGYUN.Abp.MultiTenancy;
using LINGYUN.Abp.Notifications;
using Microsoft.Extensions.Localization;
-using LINGYUN.Abp.MessageService.Localization;
+using Microsoft.Extensions.Logging;
using System;
-using Volo.Abp.Settings;
-using Volo.Abp.Localization;
using System.Globalization;
+using System.Threading.Tasks;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.EventBus.Distributed;
+using Volo.Abp.Localization;
+using Volo.Abp.MultiTenancy;
+using Volo.Abp.Settings;
namespace LINGYUN.Abp.MessageService.EventBus.Distributed
{
diff --git a/aspnet-core/services/messages/LINGYUN.Abp.MessageService.HttpApi.Host/LINGYUN.Abp.MessageService.HttpApi.Host.csproj b/aspnet-core/services/messages/LINGYUN.Abp.MessageService.HttpApi.Host/LINGYUN.Abp.MessageService.HttpApi.Host.csproj
index e2f59b8a9..7c3fa1fa3 100644
--- a/aspnet-core/services/messages/LINGYUN.Abp.MessageService.HttpApi.Host/LINGYUN.Abp.MessageService.HttpApi.Host.csproj
+++ b/aspnet-core/services/messages/LINGYUN.Abp.MessageService.HttpApi.Host/LINGYUN.Abp.MessageService.HttpApi.Host.csproj
@@ -50,10 +50,10 @@
-
+
diff --git a/aspnet-core/services/platform/LINGYUN.Platform.HttpApi.Host/EventBus/Handlers/TenantCreateEventHandler.cs b/aspnet-core/services/platform/LINGYUN.Platform.HttpApi.Host/EventBus/Handlers/TenantCreateEventHandler.cs
index 622776b8a..a0b05c86f 100644
--- a/aspnet-core/services/platform/LINGYUN.Platform.HttpApi.Host/EventBus/Handlers/TenantCreateEventHandler.cs
+++ b/aspnet-core/services/platform/LINGYUN.Platform.HttpApi.Host/EventBus/Handlers/TenantCreateEventHandler.cs
@@ -1,4 +1,4 @@
-using LINGYUN.Common.EventBus.Tenants;
+using LINGYUN.Abp.MultiTenancy;
using Microsoft.EntityFrameworkCore;
using System;
using System.Linq;
diff --git a/vueJs/src/lang/en.ts b/vueJs/src/lang/en.ts
index 581c52800..68f8c4927 100644
--- a/vueJs/src/lang/en.ts
+++ b/vueJs/src/lang/en.ts
@@ -62,7 +62,22 @@ export default {
clipboard: 'Clipboard',
i18n: 'I18n',
externalLink: 'External Link',
- profile: 'Profile'
+ profile: 'Profile',
+ tasks: 'tasks',
+ admin: 'administration',
+ users: 'users',
+ roles: 'roles',
+ tenants: 'tenants',
+ settings: 'settings',
+ apigateway: 'apigateway',
+ group: 'group',
+ global: 'global',
+ route: 'route',
+ aggregateRoute: 'aggregate',
+ identityServer: 'identity server',
+ clients: 'clients',
+ apiresources: 'api resources',
+ identityresources: 'id resources'
},
navbar: {
logOut: 'Log Out',
@@ -75,12 +90,28 @@ export default {
login: {
title: 'Login Form',
logIn: 'Login',
+ register: 'register',
+ notAccount: 'not account?',
+ existsAccount: 'exists account?',
+ forgotPassword: 'forgot password?',
+ userLogin: 'password login',
+ phoneLogin: 'phone login',
+ resetpassword: 'reset password',
tenantName: 'Tenantname',
username: 'Username',
password: 'Password',
+ phoneNumber: 'phone number',
+ phoneVerifyCode: 'phone verify code',
+ sendVerifyCode: 'send verify code',
+ afterSendVerifyCode: ' s resend after',
any: 'any',
thirdparty: 'Or connect with',
- thirdpartyTips: 'Can not be simulated on local, so please combine you own business simulation! ! !'
+ thirdpartyTips: 'Can not be simulated on local, so please combine you own business simulation! ! !',
+ tokenExprition: 'The identity token has expired. Please log in again!',
+ confirmLogout: 'confirm',
+ relogin: 'relogin',
+ cancel: 'cancel',
+ tenantIsNotAvailable: 'tenant is not available: {name}'
},
documentation: {
documentation: 'Documentation',
@@ -171,6 +202,419 @@ export default {
showTagsView: 'Open Tags-View',
showSidebarLogo: 'Sidebar Logo',
fixedHeader: 'Fixed Header',
- sidebarTextTheme: 'Sidebar Text Theme'
+ sidebarTextTheme: 'Sidebar Text Theme',
+ globalSetting: 'global',
+ tenantSetting: 'tenant',
+ userSetting: 'user',
+ passwordSecurity: 'security',
+ systemSetting: 'system',
+ userAccount: 'user account',
+ mailing: "mailing"
+ },
+ task: {
+ title: 'task'
+ },
+ users: {
+ queryFilter: 'filter:',
+ filterString: 'filter',
+ searchList: 'search',
+ createUser: 'create',
+ userName: 'user name',
+ name: 'name',
+ surname: 'nick name',
+ email: 'email',
+ phoneNumber: 'phone pumber',
+ lockoutEnd: 'lockout',
+ creationTime: 'creation time',
+ operaActions: 'opera',
+ updateUser: 'update',
+ updateUserBy: 'update {name}',
+ otherOpera: 'other',
+ lockUser: 'lock',
+ deleteUser: 'delete',
+ delNotRecoverData: 'Please note that the deletion is not recoverable!',
+ whetherDeleteUser: 'Do you want to delete user {name}?',
+ userHasBeenDeleted: 'User {name} has been deleted!',
+ twoFactorEnabled: 'Two-factor',
+ lockoutEnabled: 'Logon failure locks',
+ createUserSuccess: 'User {name} added successfully!',
+ updateUserSuccess: 'User {name} modify successfully!'
+ },
+ userProfile: {
+ basic: 'basic',
+ security: 'security',
+ roles: 'role',
+ roleList: 'roles',
+ hasRoles: 'existing role',
+ permission: 'permissions',
+ password: 'password',
+ confirmPassword: 'confirm password',
+ pleaseInputName: 'input name',
+ pleaseInputUserName: 'input username',
+ pleaseInputSurname: 'input nick name',
+ pleaseInputPhoneNumber: 'input phonenumber',
+ pleaseInputEmail: 'input email',
+ pleaseInputPassword: 'input password',
+ pleaseConfirmPassword: 'confirm password'
+ },
+ roles: {
+ refreshList: 'refresh',
+ id: 'id',
+ name: 'name',
+ type: 'type',
+ system: 'system',
+ custom: 'custom',
+ isDefault: 'default',
+ isPublic: 'public',
+ isPrivate: 'private',
+ operaActions: 'opera',
+ updateRole: 'update',
+ deleteRole: 'delete',
+ createRole: 'create',
+ permission: 'permissions',
+ otherOpera: 'other',
+ setDefault: 'set default',
+ unSetDefault: 'cancel default',
+ delNotRecoverData: 'Please note that the deletion is not recoverable!',
+ whetherDeleteRole: 'Do you want to delete the role {name}?',
+ roleHasBeenDeleted: 'The role {name} has been deleted!',
+ roleHasBeenSetDefault: '{name} is set to the default role!',
+ createRoleSuccess: 'Role {name} added successfully!',
+ pleaseInputRoleName: 'Please enter a role name',
+ roleNameIsRequired: 'The role name cannot be empty!'
+ },
+ operaActions: 'opera',
+ queryFilter: 'filter',
+ filterString: 'filter',
+ searchList: 'search',
+ creationTime: 'creation time',
+ successful: 'successful',
+ pleaseInputBy: 'Please enter the {key}',
+ pleaseSelectBy: 'Please select a {key}',
+ none: 'none',
+ questingDeleteByMessage: 'Whether to delete{message}?',
+ delNotRecoverData: 'Please note that the deletion is not recoverable!',
+ whetherDeleteData: 'Delete the selected record {name}?',
+ dataHasBeenDeleted: 'The selected record {name} has been deleted!',
+ fieldLengthMustBeRange: 'The field length must be between {min} and {Max}!',
+ enabled: 'enabled',
+ disbled: 'disbled',
+ lastModificationTime: 'modify time',
+ apiGateWay: {
+ createGroup: 'create',
+ updateGroup: 'update',
+ updateGroupByApp: 'update {name}',
+ deleteGroup: 'delete',
+ createGlobal: 'create',
+ updateGlobal: 'update',
+ updateGlobalByApp: 'update {name}',
+ deleteGlobal: 'delete',
+ createRoute: 'create',
+ updateRoute: 'update',
+ updateRouteByApp: 'update {name}',
+ deleteRoute: 'delete',
+ deleteRouteByName: 'delete {name}',
+ deleteRouteSuccess: 'Route {name} has been deleted!',
+ groupName: 'group',
+ pleaseInputGroupName: 'Please enter the routing group name',
+ appId: 'appid',
+ pleaseInputAppId: 'Please enter the appid',
+ appName: 'appName',
+ pleaseInputAppName: 'Please enter the appName',
+ appIpAddress: 'ip address',
+ description: 'description',
+ isActive: 'actived',
+ active: 'active',
+ dnActive: 'disable',
+ basicOptions: 'basic',
+ routingForward: 'foeward',
+ requestProcessing: 'request handler',
+ httpOptions: 'http handler',
+ rateLimitOptions: 'limit',
+ authorization: 'security',
+ qoSOptions: 'qos',
+ loadBalancerOptions: 'load balancer',
+ serviceDiscovery: 'discovery',
+ baseUrl: 'baseUrl',
+ downstreamScheme: 'downstream scheme',
+ requestIdKey: 'request key',
+ maxConnectionsPerServer: 'max connections',
+ useProxy: 'proxy',
+ useTracing: 'tracing',
+ allowAutoRedirect: 'redirect',
+ useCookieContainer: 'cookie',
+ clientIdHeader: '客户端请求头',
+ httpStatusCode: 'Http错误代码',
+ quotaExceededMessage: '过载错误消息',
+ rateLimitCounterPrefix: '速率限制器前缀',
+ disableRateLimitHeaders: '禁用速率限制头',
+ timeoutValue: '超时时间(ms)',
+ durationOfBreak: '熔断时间(ms)',
+ exceptionsAllowedBeforeBreaking: '允许的最大异常次数',
+ loadBalancerType: '轮询方式',
+ leastConnection: '总是空闲服务器',
+ roundRobin: '服务器轮询',
+ noLoadBalance: '发往首个服务器',
+ loadBalancerKey: '轮询标识',
+ loadBalancerExpiry: '到期时间',
+ discoverType: '实例类型',
+ discoverHost: '主机地址',
+ discoverPort: '主机端口',
+ discoverToken: '访问标识',
+ configurationKey: '配置标识',
+ pollingInterval: '轮询间隔',
+ namespace: '命名空间',
+ discoverScheme: '协议类型',
+ downstreamHttpVersion: '下游服务版本',
+ reRouteName: '路由名称',
+ appIdHasRequired: '应用标识不能为空!',
+ upstreamPathTemplate: '上游请求路径',
+ upstreamHttpMethod: '上游请求方式',
+ upstreamHost: '上游主机地址',
+ downstreamHostAndPorts: '下游请求地址',
+ downstreamPathTemplate: '下游请求路径',
+ serviceName: '服务名称',
+ serviceNamespace: '命名空间',
+ addDownHost: '添加下游主机',
+ priority: '优先级',
+ downHostPortFormat: '输入格式: Ip地址:端口号',
+ aggrefateKey: '聚合标识',
+ downstreamHttpMethod: '下游请求方法',
+ changeDownstreamPathTemplate: '下游路径声明转换',
+ downstreamHeaderTransform: '添加下游响应标头',
+ addHeadersToRequest: '添加请求标头转换',
+ addClaimsToRequest: '添加请求声明转换',
+ addQueriesToRequest: '添加查询参数转换',
+ upstreamHeaderTransform: '添加上游请求标头',
+ routeClaimsRequirement: '路由必要声明',
+ delegatingHandlers: '委托处理程序',
+ reRouteIsCaseSensitive: '忽略大小写',
+ dangerousAcceptAnyServerCertificateValidator: '忽略SSL错误',
+ enableRateLimiting: '启用流量控制',
+ rateLimitCount: '最大请求数量',
+ period: '速率限制时间',
+ periodTimespan: '允许错开时间重试(s)',
+ clientWhitelist: '客户端白名单',
+ ipAllowedList: 'Ip白名单',
+ ipBlockedList: 'Ip黑名单',
+ authenticationProviderKey: '身份认证程序',
+ allowedScopes: '允许认证范围',
+ createAggregateRoute: '新建聚合',
+ aggregateRouteName: '聚合名称',
+ reRouteKeys: '路由标识列表',
+ aggregateOptions: '聚合选项',
+ routeKeysConfig: '路由配置',
+ updateAggregateRoute: '编辑聚合',
+ updateAggregateRouteByName: '编辑聚合 {name}',
+ deleteAggregateRoute: '删除聚合',
+ deleteAggregateRouteByName: '删除聚合 {name}',
+ deleteAggregateRouteSuccess: '聚合路由 {name} 已删除!',
+ createAggregateRouteKey: '新建聚合参数',
+ deleteAggregateRouteConfig: '删除配置',
+ deleteAggregateRouteConfigByKey: '删除路由配置 {key}',
+ deleteAggregateRouteConfigSuccess: '路由配置 {key} 已删除!',
+ createAggregateRouteConfigSuccess: '路由配置 {key} 已添加!',
+ createAggregateRouteConfig: '新建路由配置',
+ aggregateRouteKey: '路由标识',
+ aggregateParameter: '聚合参数',
+ aggregateJsonPath: 'Json路径'
+ },
+ identityServer: {
+ otherOpera: '更多操作',
+ enabled: '启用客户端',
+ disbled: '停用客户端',
+ clientStatus: '客户端状态',
+ deleteClient: '删除客户端',
+ updateClient: '编辑客户端',
+ updateClientByName: '编辑客户端 {name}',
+ deleteClientById: '是否要删除客户端: {id}',
+ deleteClientSuccess: '客户端: {id} 已删除!',
+ createClientSuccess: '客户端: {id} 已添加!',
+ updateClientSuccess: '客户端: {id} 已修改!',
+ clientClaim: '客户端声明',
+ clientProperty: '客户端属性',
+ clientSecret: '客户端密钥',
+ clientPermission: '客户端权限',
+ deleteSecret: '删除密钥',
+ deleteSecretByType: '是否要删除客户端密钥: {type}',
+ deleteSecretSuccess: '客户端密钥: {type} 已删除!',
+ createSecretSuccess: '客户端密钥: {type} 已添加!',
+ createSecret: '添加客户端密钥',
+ deleteClaim: '删除声明',
+ deleteClaimByType: '是否要删除客户端声明: {type}',
+ deleteClaimSuccess: '客户端声明: {type} 已删除!',
+ createClaimSuccess: '客户端声明: {type} 已添加!',
+ createClaim: '添加客户端声明',
+ deleteProperty: '删除属性',
+ deleteClientPropertyByType: '是否要删除客户端属性: {key}',
+ deleteClientPropertySuccess: '客户端属性: {key} 已删除!',
+ createClientPropertySuccess: '客户端属性: {key} 已添加!',
+ createClientProperty: '添加客户端属性',
+ createClient: '添加客户端',
+ clientId: '客户端标识',
+ clientName: '客户端名称',
+ description: '客户端说明',
+ cloneClint: '克隆客户端',
+ copyAllowedGrantType: '复制客户端授权类型',
+ copyRedirectUri: '复制客户端重定向Uri',
+ copyAllowedScope: '复制客户端作用域',
+ copyClaim: '复制客户端声明',
+ copyAllowedCorsOrigin: '复制客户端跨域来源',
+ copyPostLogoutRedirectUri: '复制客户端注销重定向Uri',
+ copyPropertie: '复制客户端属性',
+ copyIdentityProviderRestriction: '复制身份提供程序限制',
+ protocolType: '协议类型',
+ requireClientSecret: '需要客户端密钥',
+ requirePkce: '需要Pkce',
+ allowPlainTextPkce: '允许纯文本Pkce',
+ allowOfflineAccess: '允许离线访问',
+ allowedScopes: '允许的作用域',
+ redirectUris: '重定向Uri',
+ allowedGrantTypes: '允许的授权类型',
+ allowAccessTokensViaBrowser: '允许通过浏览器访问令牌',
+ identityTokenLifetime: '身份令牌有效期(s)',
+ accessTokenLifetime: '访问令牌有效期(s)',
+ authorizationCodeLifetime: '授权码有效期(s)',
+ absoluteRefreshTokenLifetime: '绝对刷新令牌有效期(s)',
+ slidingRefreshTokenLifetime: '滚动刷新令牌有效期(s)',
+ deviceCodeLifetime: '设备授权码有效期(s)',
+ clientClaimsPrefix: '客户端声明前缀',
+ basicOptions: '基本设置',
+ frontChannelLogoutUri: '前端通道注销 Uri',
+ frontChannelLogoutSessionRequired: '需要前端通道注销会话',
+ backChannelLogoutUri: '后端通道退出 Uri',
+ backChannelLogoutSessionRequired: '需要后端通道注销会话',
+ enableLocalLogin: '启用本地登录',
+ postLogoutRedirectUris: '注销重定向 Uri',
+ identityProviderRestrictions: '身份提供程序限制',
+ userSsoLifetime: '用户 SSO 生命周期',
+ accessTokenType: '访问令牌类型',
+ refreshTokenUsage: '刷新令牌使用情况',
+ refreshTokenExpiration: '刷新令牌过期方式',
+ allowedCorsOrigins: '允许跨域来源',
+ updateAccessTokenClaimsOnRefresh: '刷新时更新访问令牌声明',
+ includeJwtId: '包括 Jwt 标识',
+ alwaysSendClientClaims: '始终发送客户端声明',
+ alwaysIncludeUserClaimsInIdToken: '始终在标识令牌中包含用户声明',
+ pairWiseSubjectSalt: '配对主体盐',
+ requireConsent: '需要同意',
+ allowRememberConsent: '允许记住同意',
+ clientUri: '客户端 Uri',
+ logoUri: '徽标 Uri',
+ userCodeType: '用户代码类型',
+ secretType: '密钥类型',
+ secretValue: '密钥值',
+ secretHashType: '哈希类型',
+ hashOnlySharedSecret: '哈希类型仅适用于 SharedSecret 类型',
+ secretDescription: '密钥说明',
+ expiration: '过期日期',
+ claimType: '声明类型',
+ claimValue: '声明值',
+ propertyKey: '属性名称',
+ propertyValue: '属性值',
+ createApiResource: '添加Api资源',
+ updateApiResource: '编辑Api资源',
+ updateApiResourceByName: '编辑Api资源 {name}',
+ deleteApiResourceByName: '删除Api资源 {name}',
+ createApiResourceSuccess: 'Api资源 {name} 已添加!',
+ deleteApiResourceSuccess: 'Api资源 {name} 已删除!',
+ updateApiResourceSuccess: 'Api资源 {name} 已修改!',
+ createApiSecret: '添加Api密钥',
+ deleteApiSecret: '删除Api密钥',
+ deleteApiSecretByType: '删除Api密钥 {type}',
+ createApiSecretSuccess: 'Api密钥 {type} 已添加!',
+ deleteApiSecretSuccess: 'Api密钥 {type} 已删除!',
+ apiResourceSecret: 'Api 密钥',
+ createApiScope: '添加Api作用域',
+ deleteApiScope: '删除Api作用域',
+ deleteApiScopeByName: '删除Api作用域 {name}',
+ createApiScopeSuccess: 'Api作用域 {name} 已添加!',
+ deleteApiScopeSuccess: 'Api作用域 {name} 已删除!',
+ apiResourceScope: 'Api 作用域',
+ deleteApiResource: '删除资源',
+ resourceName: '资源名称',
+ resourceDisplayName: '显示名称',
+ enabledResource: '启用资源',
+ resourceStatus: '资源状态',
+ resourceDescription: '资源说明',
+ resourceUserClaims: '用户声明',
+ apiScopeName: '名称',
+ apiScopeDisplayName: '显示名称',
+ apiScopeDescription: '描述',
+ apiScopeRequired: '必须',
+ apiScopeEmphasize: '强调',
+ apiScopeShowInDiscoveryDocument: '在发现文档显示',
+ createIdentityResource: '添加身份资源',
+ updateIdentityResource: '编辑身份资源',
+ identityResourceProperties: '资源属性',
+ deleteIdentityResource: '删除资源',
+ updateIdentityResourceByName: '编辑身份资源 {name}',
+ deleteIdentityResourceByName: '删除身份资源 {name}',
+ createIdentityResourceSuccess: '身份资源 {name} 已添加!',
+ deleteIdentityResourceSuccess: '身份资源 {name} 已删除!',
+ updateIdentityResourceSuccess: '身份资源 {name} 已修改!',
+ identityResourceRequired: '必须',
+ identityResourceEmphasize: '强调',
+ identityResourceShowInDiscoveryDocument: '在发现文档显示',
+ deleteIdentityPropertyByKey: '是否要删除身份资源属性: {key}',
+ deleteIdentityPropertySuccess: '身份资源属性: {key} 已删除!',
+ createIdentityPropertySuccess: '身份资源属性: {key} 已添加!',
+ createIdentityProperty: '添加身份资源属性'
+ },
+ tenant: {
+ createTenant: '创建租户',
+ updateTenant: '编辑租户',
+ deleteTenant: '删除租户',
+ createTenantSuccess: '租户 {name} 已添加!',
+ deleteTenantByName: '删除租户 {name}',
+ deleteTenantSuccess: '租户 {name} 已删除!',
+ tenantNameChanged: '租户名称 {name} 已变更!',
+ id: '租户标识',
+ name: '租户名称',
+ changeTenantName: '变更租户名称',
+ connectionOptions: '连接配置',
+ adminEmailAddress: '管理员邮件',
+ adminPassword: '管理员密码',
+ connectionName: '连接名称',
+ connectionString: '连接字符串',
+ setTenantConnection: '设置连接',
+ deleteConnection: '删除连接',
+ setTenantConnectionSuccess: '租户连接 {name} 已添加!',
+ deleteTenantConnectionName: '删除租户连接 {name}',
+ deleteTenantConnectionSuccess: '租户连接 {name} 已删除!'
+ },
+ global: {
+ name: '名称',
+ displayName: '显示名称',
+ description: '说明',
+ operaActions: '操作方法',
+ queryFilter: '查询过滤',
+ filterString: '过滤字符',
+ searchList: '查询列表',
+ creationTime: '创建时间',
+ successful: '提交成功',
+ pleaseInputBy: '请输入{key}',
+ pleaseSelectBy: '请选择{key}',
+ none: '未定义',
+ charLengthRange: '长度在 {min} 到 {max} 个字符!',
+ questingDeleteByMessage: '是否要删除{message}?',
+ delNotRecoverData: '请注意,删除后不可恢复!',
+ whetherDeleteData: '是否删除选择的记录 {name} ?',
+ dataHasBeenDeleted: '选定的记录 {name} 已删除!',
+ fieldLengthMustBeRange: '字段的长度必须在{min}到{max}之间!',
+ enabled: '启用',
+ disbled: '停用',
+ status: '状态',
+ lastModificationTime: '修改时间',
+ otherOpera: '更多操作',
+ cancel: '取 消',
+ confirm: '确 定',
+ correctEmailAddress: '正确的邮件地址',
+ correctPhoneNumber: '正确的手机号码',
+ operatingFast: '您的操作过快,请稍后再试!'
+ },
+ messages: {
+ noNotifications: '没有通知',
+ noMessages: '没有消息'
}
}
diff --git a/vueJs/src/lang/zh.ts b/vueJs/src/lang/zh.ts
index 9f451ed92..ceac1578f 100644
--- a/vueJs/src/lang/zh.ts
+++ b/vueJs/src/lang/zh.ts
@@ -208,7 +208,8 @@ export default {
userSetting: '用户设置',
passwordSecurity: '密码安全',
systemSetting: '系统配置',
- userAccount: '用户账户'
+ userAccount: '用户账户',
+ mailing: "邮件配置"
},
task: {
title: '任务管理'
diff --git a/vueJs/src/views/admin/settings/components/GlobalSettingEditForm.vue b/vueJs/src/views/admin/settings/components/GlobalSettingEditForm.vue
index 4f81d06ae..fa3ea44e2 100644
--- a/vueJs/src/views/admin/settings/components/GlobalSettingEditForm.vue
+++ b/vueJs/src/views/admin/settings/components/GlobalSettingEditForm.vue
@@ -486,6 +486,162 @@
+
+
+
+ {{ globalSetting['Abp.Mailing.Smtp.Host'].displayName }}
+ handleSettingValueChanged('Abp.Mailing.Smtp.Host', value)"
+ />
+
+
+
+ {{ globalSetting['Abp.Mailing.Smtp.Port'].displayName }}
+ handleSettingValueChanged('Abp.Mailing.Smtp.Port', value)"
+ />
+
+
+
+ {{ globalSetting['Abp.Mailing.Smtp.UserName'].displayName }}
+ handleSettingValueChanged('Abp.Mailing.Smtp.UserName', value)"
+ />
+
+
+
+ {{ globalSetting['Abp.Mailing.Smtp.Password'].displayName }}
+ handleSettingValueChanged('Abp.Mailing.Smtp.Password', value)"
+ />
+
+
+
+ {{ globalSetting['Abp.Mailing.Smtp.Domain'].displayName }}
+ handleSettingValueChanged('Abp.Mailing.Smtp.Domain', value)"
+ />
+
+
+
+ {{ globalSetting['Abp.Mailing.Smtp.EnableSsl'].displayName }}
+ handleSettingValueChanged('Abp.Mailing.Smtp.EnableSsl', value)"
+ />
+
+
+
+ {{ globalSetting['Abp.Mailing.Smtp.UseDefaultCredentials'].displayName }}
+ handleSettingValueChanged('Abp.Mailing.Smtp.UseDefaultCredentials', value)"
+ />
+
+
+
+ {{ globalSetting['Abp.Mailing.DefaultFromAddress'].displayName }}
+ handleSettingValueChanged('Abp.Mailing.DefaultFromAddress', value)"
+ />
+
+
+
+ {{ globalSetting['Abp.Mailing.DefaultFromDisplayName'].displayName }}
+ handleSettingValueChanged('Abp.Mailing.DefaultFromDisplayName', value)"
+ />
+
+
@@ -544,6 +700,7 @@ export default class extends Vue {
private handleGetGlobalSettings() {
SettingService.getSettings('G', '').then(settings => {
+ console.log(settings)
settings.items.forEach(setting => {
if (setting.value) {
const value = setting.value.toLowerCase()
@@ -551,9 +708,11 @@ export default class extends Vue {
setting.value = value === 'true'
}
} else {
- const defaultValue = setting.defaultValue.toLowerCase()
- if (booleanStrings.includes(defaultValue)) {
- setting.value = defaultValue === 'true'
+ if (setting.defaultValue) {
+ const defaultValue = setting.defaultValue.toLowerCase()
+ if (booleanStrings.includes(defaultValue)) {
+ setting.value = defaultValue === 'true'
+ }
}
}
this.globalSetting[setting.name] = setting