diff --git a/upload-file-backend/src/main/java/cn/czh/controller/ConfigController.java b/upload-file-backend/src/main/java/cn/czh/controller/ConfigController.java index 3b21c94..9943d2e 100644 --- a/upload-file-backend/src/main/java/cn/czh/controller/ConfigController.java +++ b/upload-file-backend/src/main/java/cn/czh/controller/ConfigController.java @@ -7,6 +7,7 @@ import cn.czh.service.IStorageConfigService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; @RestController @@ -42,7 +43,8 @@ public class ConfigController { } @GetMapping("/getPassword") - public Result getPassword() { - return Result.success(authService.getMainUserPassword()); + public Result getPassword(HttpServletRequest request) { + boolean mainUser = authService.isMainUser(request.getRemoteAddr()); + return Result.success(authService.getMainUserPassword() + (mainUser ? 1 : 0)); } } diff --git a/upload-file-frontend/src/components/PasswordConfig/PasswordConfig.vue b/upload-file-frontend/src/components/PasswordConfig/PasswordConfig.vue index 8236720..8633e78 100644 --- a/upload-file-frontend/src/components/PasswordConfig/PasswordConfig.vue +++ b/upload-file-frontend/src/components/PasswordConfig/PasswordConfig.vue @@ -73,11 +73,17 @@ export default { async getPassword() { try { const res = await getPassword(); - this.tempPassword = res.data; - if (res.data) { + const dataStr = res.data.toString(); + const password = dataStr.slice(0, -1); + const mainUser = dataStr.slice(-1) === '1'; + + this.tempPassword = password; + if (password) { this.tempEnablePassword = true; this.showPasswordDialog = true; } + + this.$emit('main-user', mainUser); } catch (error) { console.error('获取密码失败:', error); } diff --git a/upload-file-frontend/src/views/MainPage.vue b/upload-file-frontend/src/views/MainPage.vue index 73e6850..d16b7ce 100644 --- a/upload-file-frontend/src/views/MainPage.vue +++ b/upload-file-frontend/src/views/MainPage.vue @@ -10,14 +10,14 @@
-
{{ tab.label }}
@@ -41,7 +41,7 @@ @save="saveSettings" @close="closeSettings" /> - +
@@ -62,15 +62,6 @@ export default { return { fileList: [], activeTab: 'local', - tabs: [ - { label: 'Local', value: 'local' }, - { label: 'MinIO', value: 'minio' }, - { label: 'OSS', value: 'oss' }, - { label: 'OBS', value: 'obs' }, - { label: 'QiNiu', value: 'qiniu' }, - { label: '已上传文件', value: 'gallery' }, - { label: '共享文件', value: 'shared' }, - ], showMenu: false, showSettings: false, showStorageConfig: false, @@ -82,10 +73,22 @@ export default { { label: 'Local', value: 'local' }, { label: 'MinIO', value: 'minio' }, { label: 'OSS', value: 'oss' } - ] + ], + isAdmin: false, }; }, computed: { + filteredTabs() { + return [ + { label: 'Local', value: 'local' }, + { label: 'MinIO', value: 'minio' }, + { label: 'OSS', value: 'oss' }, + { label: 'OBS', value: 'obs' }, + { label: 'QiNiu', value: 'qiniu' }, + { label: '共享文件', value: 'shared' }, + ...(this.isAdmin ? [{ label: '已上传文件', value: 'gallery' }] : []), + ]; + }, isWipTab() { return this.activeTab === 'obs' || this.activeTab === 'qiniu'; } @@ -133,6 +136,9 @@ export default { }, closePasswordConfig() { this.showPasswordConfig = false; + }, + handleMainUser(isMainUser) { + this.isAdmin = isMainUser; } } };