From 0036a895e9b0fec6052a6023e352cc13b16908c8 Mon Sep 17 00:00:00 2001 From: Aqr-K <95741669+Aqr-K@users.noreply.github.com> Date: Sat, 19 Oct 2024 11:58:01 +0800 Subject: [PATCH 01/21] feat(login): add userID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改按钮判断的逻辑,将 `userName` 替换成 `userID` 判断;解决不管是主程序还是插件修改用户名,都会存在的条件判断导致的渲染异常显示。(拆分自user的pr) --- src/components/cards/UserCard.vue | 36 +++++++++++++++---------------- src/pages/login.vue | 4 +++- src/store/auth.ts | 9 +++++++- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/components/cards/UserCard.vue b/src/components/cards/UserCard.vue index f340460b..549ad2ae 100644 --- a/src/components/cards/UserCard.vue +++ b/src/components/cards/UserCard.vue @@ -21,8 +21,8 @@ const props = defineProps({ }, }) -// 当前用户名称 -const currentLoginUser = store.state.auth.userName +// 当前用户的ID +const currentLoginUserId = computed(() => store.state.auth.userID) // 定义触发的自定义事件 const emit = defineEmits(['remove', 'save']) @@ -57,7 +57,7 @@ async function fetchSubscriptions() { // 删除用户 async function removeUser() { - if (props.user.name == currentLoginUser) { + if (props.user.id === currentLoginUserId.value) { $toast.error('不能删除当前登录用户!') return } @@ -84,19 +84,6 @@ function editUser() { userEditDialog.value = true } -// 计算是否有用户编辑权限 -const canEditUser = computed(() => { - if (store.state.auth.superUser && props.user.name !== currentLoginUser) return true - return false -}) - -// 计算是否有用户管理权限 -const canManageUser = computed(() => { - if (props.user.name == currentLoginUser) return false - if (store.state.auth.superUser) return true - return false -}) - // 用户重新完成时 function onUserUpdate() { userEditDialog.value = false @@ -170,8 +157,21 @@ onMounted(() => { - 编辑 - 删除 + + 编辑 + + + 删除 + diff --git a/src/pages/login.vue b/src/pages/login.vue index 61a30fa2..bfa94b59 100644 --- a/src/pages/login.vue +++ b/src/pages/login.vue @@ -171,6 +171,7 @@ function login() { // 获取token const token = response.access_token const superUser = response.super_user + const userID = response.user_id const userName = response.user_name const avatar = response.avatar const level = response.level @@ -178,7 +179,8 @@ function login() { const permissions = response.permissions // 更新token和remember状态到Vuex Store - store.dispatch('auth/login', { token, remember, superUser, userName, avatar, level, permissions }) + store.dispatch('auth/login', { + token, remember, superUser, userID, userName, avatar, level, permissions }) // 登录后处理 afterLogin(superUser) diff --git a/src/store/auth.ts b/src/store/auth.ts index b91a52a3..050b27e4 100644 --- a/src/store/auth.ts +++ b/src/store/auth.ts @@ -5,6 +5,7 @@ interface AuthState { token: string | null remember: boolean superUser: boolean + userID: number userName: string avatar: string originalPath: string | null @@ -24,6 +25,7 @@ const authModule: Module = { token: null, // 用户令牌 remember: false, // 记住我 superUser: false, // 超级管理员 + userID: 999, // 用户ID userName: '', // 用户名 avatar: '', // 头像 originalPath: null, // 原始路径 @@ -43,6 +45,9 @@ const authModule: Module = { setSuperUser(state, superUser: boolean) { state.superUser = superUser }, + setUserID(state, userID: number) { + state.userID = userID + }, setUserName(state, userName: string) { state.userName = userName }, @@ -60,10 +65,11 @@ const authModule: Module = { }, }, actions: { - login({ commit }, { token, remember, superUser, userName, avatar, level, permissions }) { + login({ commit }, { token, remember, superUser, userID, userName, avatar, level, permissions }) { commit('setToken', token) commit('setRemember', remember) commit('setSuperUser', superUser) + commit('setUserID', userID) commit('setUserName', userName) commit('setAvatar', avatar) commit('setLevel', level) @@ -78,6 +84,7 @@ const authModule: Module = { getToken: state => state.token, getRemember: state => state.remember, getSuperUser: state => state.superUser, + getUserID: state => state.userID, getUserName: state => state.userName, getAvatar: state => state.avatar, getOriginalPath: state => state.originalPath, From 0b3fc938ae008444f50abbcc9bbcf8c516af2759 Mon Sep 17 00:00:00 2001 From: Aqr-K <95741669+Aqr-K@users.noreply.github.com> Date: Sat, 19 Oct 2024 13:44:19 +0800 Subject: [PATCH 02/21] Update UserCard.vue --- src/components/cards/UserCard.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/cards/UserCard.vue b/src/components/cards/UserCard.vue index 549ad2ae..4b42ba6f 100644 --- a/src/components/cards/UserCard.vue +++ b/src/components/cards/UserCard.vue @@ -165,7 +165,7 @@ onMounted(() => { 编辑 Date: Tue, 22 Oct 2024 01:24:57 +0800 Subject: [PATCH 03/21] fix: bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复超管判断条件。 --- src/components/cards/UserCard.vue | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/cards/UserCard.vue b/src/components/cards/UserCard.vue index 4b42ba6f..d3c515aa 100644 --- a/src/components/cards/UserCard.vue +++ b/src/components/cards/UserCard.vue @@ -24,6 +24,9 @@ const props = defineProps({ // 当前用户的ID const currentLoginUserId = computed(() => store.state.auth.userID) +// 当前用户是否是管理员 +const currentUserIsSuperuser = computed(() => store.state.auth.superUser) + // 定义触发的自定义事件 const emit = defineEmits(['remove', 'save']) @@ -126,8 +129,9 @@ onMounted(() => { -
详情
- + +
详情
+
@@ -158,6 +162,7 @@ onMounted(() => {
{ 编辑 Date: Tue, 22 Oct 2024 10:43:50 +0800 Subject: [PATCH 04/21] =?UTF-8?q?fix=20=E6=99=AE=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=9D=83=E9=99=90=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/@layouts/types.d.ts | 2 +- src/layouts/components/DefaultLayout.vue | 2 +- src/router/menu.ts | 26 ++++++++++++------------ 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/@layouts/types.d.ts b/src/@layouts/types.d.ts index 83d2e244..0acdd517 100644 --- a/src/@layouts/types.d.ts +++ b/src/@layouts/types.d.ts @@ -123,7 +123,7 @@ export interface NavLink extends NavLinkProps, Partial { export interface NavMenu extends NavLink { header: string description?: string - permission?: string + admin?: boolean } // 👉 Vertical nav group diff --git a/src/layouts/components/DefaultLayout.vue b/src/layouts/components/DefaultLayout.vue index 919618a6..ec0ec719 100644 --- a/src/layouts/components/DefaultLayout.vue +++ b/src/layouts/components/DefaultLayout.vue @@ -36,7 +36,7 @@ const systemMenus = ref([]) // 根据分类获取菜单列表 const getMenuList = (header: string) => { - return SystemNavMenus.filter((item: NavMenu) => item.header === header && superUser) + return SystemNavMenus.filter((item: NavMenu) => item.header === header && (superUser || !item.admin)) } // 返回上一页 diff --git a/src/router/menu.ts b/src/router/menu.ts index 43ce4b04..38b48bd0 100644 --- a/src/router/menu.ts +++ b/src/router/menu.ts @@ -5,21 +5,21 @@ export const SystemNavMenus = [ icon: 'mdi-home-outline', to: '/dashboard', header: '开始', - permission: 'dashboard', + admin: false, }, { title: '推荐', icon: 'mdi-star-outline', to: '/ranking', header: '发现', - permission: 'ranking', + admin: false, }, { title: '资源搜索', icon: 'mdi-magnify', to: '/resource', header: '发现', - permission: 'resource.search', + admin: false, }, { title: '电影', @@ -27,7 +27,7 @@ export const SystemNavMenus = [ icon: 'mdi-movie-open-outline', to: '/subscribe/movie', header: '订阅', - permission: 'subscribe.movie', + admin: false, }, { title: '电视剧', @@ -35,7 +35,7 @@ export const SystemNavMenus = [ icon: 'mdi-television', to: '/subscribe/tv', header: '订阅', - permission: 'subscribe.tv', + admin: false, }, { title: '日历', @@ -43,56 +43,56 @@ export const SystemNavMenus = [ icon: 'mdi-calendar', to: '/calendar', header: '订阅', - permission: 'subscribe.calendar', + admin: false, }, { title: '正在下载', icon: 'mdi-download-outline', to: '/downloading', header: '整理', - permission: 'downloading.view', + admin: false, }, { title: '历史记录', icon: 'mdi-history', to: '/history', header: '整理', - permission: 'admin', + admin: true, }, { title: '文件管理', icon: 'mdi-folder-multiple-outline', to: '/filemanager', header: '整理', - permission: 'admin', + admin: true, }, { title: '插件', icon: 'mdi-apps', to: '/plugins', header: '系统', - permission: 'admin', + admin: true, }, { title: '站点管理', icon: 'mdi-web', to: '/site', header: '系统', - permission: 'admin', + admin: true, }, { title: '用户管理', icon: 'mdi-account-group', to: '/user', header: '系统', - permission: 'usermanage', + admin: true, }, { title: '设定', icon: 'mdi-cog', to: '/setting', header: '系统', - permission: 'admin', + admin: true, }, ] From a69d2dfd71c137ce91effcbe554a102bd464a7df Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 22 Oct 2024 11:37:32 +0800 Subject: [PATCH 05/21] build beta --- .github/workflows/build.yml | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a130624d..667f76d1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build Moviepilot-Frontend +name: Build Moviepilot-Frontend v2 on: workflow_dispatch: @@ -43,14 +43,14 @@ jobs: - name: Delete Release uses: dev-drprasad/delete-tag-and-release@v1.1 with: - tag_name: dev_${{ env.frontend_version }} + tag_name: ${{ env.frontend_version }} delete_release: true github_token: ${{ secrets.GITHUB_TOKEN }} - name: Generate Release uses: softprops/action-gh-release@v2 with: - tag_name: dev_${{ env.frontend_version }} + tag_name: ${{ env.frontend_version }} name: ${{ env.frontend_version }} draft: false prerelease: false diff --git a/package.json b/package.json index d9b6a441..f1878e63 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moviepilot", - "version": "2.0.0-alpha", + "version": "2.0.0-beta", "private": true, "bin": "dist/service.js", "scripts": { From 539cf9ada47e7f552002bd3a979d61482d00f623 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 22 Oct 2024 11:54:36 +0800 Subject: [PATCH 06/21] fix build --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 667f76d1..319196e3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,7 +4,7 @@ on: workflow_dispatch: push: branches: - - dev + - v2 jobs: build: From f906a172dd191275a15ce1fdfce1ed0519e35d9a Mon Sep 17 00:00:00 2001 From: thsrite Date: Wed, 23 Oct 2024 11:34:09 +0800 Subject: [PATCH 07/21] =?UTF-8?q?feat=20=E7=9B=AE=E5=BD=95=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E5=8F=AF=E9=80=89=E7=9B=91=E6=8E=A7=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/types.ts | 2 ++ src/components/cards/DirectoryCard.vue | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/api/types.ts b/src/api/types.ts index 7ecea116..fa717550 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -1042,6 +1042,8 @@ export interface TransferDirectoryConf { download_category_folder?: boolean // 监控方式 downloader/monitor,None为不监控 monitor_type?: string + // 监控模式 fast/compatibility + monitor_mode?: string // 整理方式 move/copy/link/softlink transfer_type?: string // 文件覆盖模式 always/size/never/latest diff --git a/src/components/cards/DirectoryCard.vue b/src/components/cards/DirectoryCard.vue index e95bdb6d..db7b7580 100644 --- a/src/components/cards/DirectoryCard.vue +++ b/src/components/cards/DirectoryCard.vue @@ -48,6 +48,12 @@ const transferSourceItems = [ { title: '目录监控', value: 'monitor' }, ] +// 监控模式下拉字典 +const MonitorModeItems = [ + { title: '性能模式', value: 'fast' }, + { title: '兼容模式', value: 'compatibility' }, +] + // 整理方式下拉字典 const transferTypeItems = ref<{ title: string; value: string }[]>([]) @@ -236,6 +242,14 @@ watch( + + + Date: Wed, 23 Oct 2024 12:57:48 +0800 Subject: [PATCH 08/21] =?UTF-8?q?feat=20=E7=9B=AE=E5=BD=95=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=98=AF=E5=90=A6=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/types.ts | 2 ++ src/components/cards/DirectoryCard.vue | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/api/types.ts b/src/api/types.ts index fa717550..80c2b083 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -1060,6 +1060,8 @@ export interface TransferDirectoryConf { library_type_folder?: boolean // 媒体库类别子目录 library_category_folder?: boolean + // 是否发送通知 + notify?: boolean } // 自定义规则项 diff --git a/src/components/cards/DirectoryCard.vue b/src/components/cards/DirectoryCard.vue index db7b7580..04faf329 100644 --- a/src/components/cards/DirectoryCard.vue +++ b/src/components/cards/DirectoryCard.vue @@ -299,6 +299,9 @@ watch( + + + From 9e4655070c2e3f356c3e51bd1f677ac49640e39a Mon Sep 17 00:00:00 2001 From: thsrite Date: Wed, 23 Oct 2024 14:33:49 +0800 Subject: [PATCH 09/21] =?UTF-8?q?feat=20=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E8=A7=84=E5=88=99=20&&=20=E4=BC=98=E5=85=88=E7=BA=A7=E8=A7=84?= =?UTF-8?q?=E5=88=99=E7=BB=84=E6=94=AF=E6=8C=81=E6=8B=96=E6=8B=BD=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/cards/CustomRuleCard.vue | 5 +++++ src/components/cards/FilterRuleGroupCard.vue | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/components/cards/CustomRuleCard.vue b/src/components/cards/CustomRuleCard.vue index 39fe5f71..83ed6863 100644 --- a/src/components/cards/CustomRuleCard.vue +++ b/src/components/cards/CustomRuleCard.vue @@ -93,6 +93,11 @@ function onClose() {