fix: permission (#3325)

This commit is contained in:
shaohuzhang1 2025-06-20 10:17:09 +08:00 committed by GitHub
parent f40e625ee1
commit 4af876f6a8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2,11 +2,11 @@
<el-dropdown trigger="click" type="primary"> <el-dropdown trigger="click" type="primary">
<div class="flex-center cursor"> <div class="flex-center cursor">
<el-avatar :size="30"> <el-avatar :size="30">
<img src="@/assets/user-icon.svg" style="width: 54%" alt=""/> <img src="@/assets/user-icon.svg" style="width: 54%" alt="" />
</el-avatar> </el-avatar>
<span class="ml-8 color-text-primary">{{ user.userInfo?.username }}</span> <span class="ml-8 color-text-primary">{{ user.userInfo?.username }}</span>
<el-icon class="el-icon--right"> <el-icon class="el-icon--right">
<CaretBottom/> <CaretBottom />
</el-icon> </el-icon>
</div> </div>
@ -15,7 +15,7 @@
<div class="userInfo flex align-center"> <div class="userInfo flex align-center">
<div class="mr-12 flex align-center"> <div class="mr-12 flex align-center">
<el-avatar :size="30"> <el-avatar :size="30">
<img src="@/assets/user-icon.svg" style="width: 54%" alt=""/> <img src="@/assets/user-icon.svg" style="width: 54%" alt="" />
</el-avatar> </el-avatar>
</div> </div>
<div style="width: 90%"> <div style="width: 90%">
@ -23,7 +23,7 @@
<template v-if="user.userInfo?.role && user.userInfo.role.length > 0"> <template v-if="user.userInfo?.role && user.userInfo.role.length > 0">
<el-tag size="small" class="default-tag">{{ user.userInfo?.role[0] }}</el-tag> <el-tag size="small" class="default-tag">{{ user.userInfo?.role[0] }}</el-tag>
<el-tag size="small" class="default-tag ml-4" v-if="user.userInfo?.role?.length > 1" <el-tag size="small" class="default-tag ml-4" v-if="user.userInfo?.role?.length > 1"
>+{{ user.userInfo?.role?.length - 1 }} >+{{ user.userInfo?.role?.length - 1 }}
</el-tag> </el-tag>
</template> </template>
</div> </div>
@ -31,7 +31,11 @@
<el-dropdown-item class="border-t p-8" @click="openResetPassword"> <el-dropdown-item class="border-t p-8" @click="openResetPassword">
{{ $t('views.login.resetPassword') }} {{ $t('views.login.resetPassword') }}
</el-dropdown-item> </el-dropdown-item>
<div v-hasPermission="new ComplexPermission([], ['x-pack'], 'OR')"> <div
v-hasPermission="
new ComplexPermission([], [], [EditionConst.IS_EE, EditionConst.IS_PE], 'OR')
"
>
<el-dropdown-item class="p-8" @click="openAPIKeyDialog"> <el-dropdown-item class="p-8" @click="openAPIKeyDialog">
{{ $t('layout.apiKey') }} {{ $t('layout.apiKey') }}
</el-dropdown-item> </el-dropdown-item>
@ -41,7 +45,7 @@
<div class="flex-between w-full" style="line-height: 22px; padding: 12px 11px"> <div class="flex-between w-full" style="line-height: 22px; padding: 12px 11px">
<span> {{ $t('layout.language') }}</span> <span> {{ $t('layout.language') }}</span>
<el-icon> <el-icon>
<ArrowRight/> <ArrowRight />
</el-icon> </el-icon>
</div> </div>
@ -55,14 +59,14 @@
class="flex-between" class="flex-between"
> >
<span :class="lang.value === user.userInfo?.language ? 'primary' : ''">{{ <span :class="lang.value === user.userInfo?.language ? 'primary' : ''">{{
lang.label lang.label
}}</span> }}</span>
<el-icon <el-icon
:class="lang.value === user.userInfo?.language ? 'primary' : ''" :class="lang.value === user.userInfo?.language ? 'primary' : ''"
v-if="lang.value === user.userInfo?.language" v-if="lang.value === user.userInfo?.language"
> >
<Check/> <Check />
</el-icon> </el-icon>
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
@ -86,24 +90,25 @@
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
</el-dropdown> </el-dropdown>
<APIKeyDialog :user-id="user.userInfo?.id" ref="APIKeyDialogRef"/> <APIKeyDialog :user-id="user.userInfo?.id" ref="APIKeyDialogRef" />
<ResetPassword ref="resetPasswordRef"></ResetPassword> <ResetPassword ref="resetPasswordRef"></ResetPassword>
<AboutDialog ref="AboutDialogRef"></AboutDialog> <AboutDialog ref="AboutDialogRef"></AboutDialog>
<!-- <UserPwdDialog ref="UserPwdDialogRef" /> --> <!-- <UserPwdDialog ref="UserPwdDialogRef" /> -->
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {ref, onMounted} from 'vue' import { ref, onMounted } from 'vue'
import useStore from '@/stores' import useStore from '@/stores'
import {useRouter} from 'vue-router' import { useRouter } from 'vue-router'
import ResetPassword from './ResetPassword.vue' import ResetPassword from './ResetPassword.vue'
import AboutDialog from './AboutDialog.vue' import AboutDialog from './AboutDialog.vue'
// import UserPwdDialog from '@/views/user-manage/component/UserPwdDialog.vue' // import UserPwdDialog from '@/views/user-manage/component/UserPwdDialog.vue'
import APIKeyDialog from './APIKeyDialog.vue' import APIKeyDialog from './APIKeyDialog.vue'
import {ComplexPermission} from '@/utils/permission/type' import { ComplexPermission } from '@/utils/permission/type'
import {langList} from '@/locales/index' import { langList } from '@/locales/index'
import { EditionConst } from '@/utils/permission/data'
const {user, login} = useStore() const { user, login } = useStore()
const router = useRouter() const router = useRouter()
const AboutDialogRef = ref() const AboutDialogRef = ref()
@ -129,7 +134,7 @@ const openResetPassword = () => {
const logout = () => { const logout = () => {
login.logout().then(() => { login.logout().then(() => {
router.push({name: 'login'}) router.push({ name: 'login' })
}) })
} }