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 1/3] 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 f340460b8..549ad2ae2 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 61a30fa20..bfa94b59b 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 b91a52a3c..050b27e4c 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 2/3] 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 549ad2ae2..4b42ba6fe 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 3/3] 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 4b42ba6fe..d3c515aaf 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(() => {
{
编辑