在环境文件中增加谷歌验证器开关
This commit is contained in:
@@ -154,6 +154,8 @@ export interface SiteConfig {
|
||||
recordNumber?: string
|
||||
// 内容分发网络URL的参数,格式如 imageMogr2/format/heif
|
||||
cdnUrlParams: string
|
||||
// 是否开启管理员谷歌验证器
|
||||
totpEnable?: boolean
|
||||
|
||||
// 初始化状态
|
||||
initialize: boolean
|
||||
|
||||
@@ -15,6 +15,7 @@ export const useSiteConfig = defineStore('siteConfig', {
|
||||
headNav: [],
|
||||
recordNumber: '',
|
||||
cdnUrlParams: '',
|
||||
totpEnable: true,
|
||||
initialize: false,
|
||||
userInitialize: false,
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ import { defaultOptButtons } from '/@/components/table'
|
||||
import { baTableApi } from '/@/api/common'
|
||||
import { resetTotp } from '/@/api/backend/auth/admin'
|
||||
import { useAdminInfo } from '/@/stores/adminInfo'
|
||||
import { useSiteConfig } from '/@/stores/siteConfig'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
defineOptions({
|
||||
@@ -34,9 +35,13 @@ defineOptions({
|
||||
|
||||
const { t } = useI18n()
|
||||
const adminInfo = useAdminInfo()
|
||||
const siteConfig = useSiteConfig()
|
||||
|
||||
/** 超管或拥有 resetTotp 权限,且不能操作自己 */
|
||||
const canManageTotp = (row: TableRow) => {
|
||||
if (!siteConfig.totpEnable) {
|
||||
return false
|
||||
}
|
||||
if (row.id == adminInfo.id) {
|
||||
return false
|
||||
}
|
||||
@@ -114,6 +119,7 @@ const baTable = new baTableClass(
|
||||
replaceValue: { true: t('auth.admin.Bound'), false: t('auth.admin.Not bound') },
|
||||
operator: false,
|
||||
width: 120,
|
||||
show: siteConfig.totpEnable,
|
||||
},
|
||||
{
|
||||
label: t('auth.admin.Last login'),
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<el-form-item :label="t('routine.adminInfo.user name')">
|
||||
<el-input disabled v-model="state.adminInfo.username"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('routine.adminInfo.Google Authenticator')">
|
||||
<el-form-item :label="t('routine.adminInfo.Google Authenticator')" v-if="siteConfig.totpEnable">
|
||||
<el-tag :type="state.adminInfo.totp_bound ? 'success' : 'info'">
|
||||
{{ state.adminInfo.totp_bound ? t('routine.adminInfo.Bound') : t('routine.adminInfo.Not bound') }}
|
||||
</el-tag>
|
||||
@@ -117,6 +117,7 @@ import { uuid } from '../../../utils/random'
|
||||
import { buildValidatorData } from '/@/utils/validate'
|
||||
import { fileUpload } from '/@/api/common'
|
||||
import { useAdminInfo } from '/@/stores/adminInfo'
|
||||
import { useSiteConfig } from '/@/stores/siteConfig'
|
||||
import { isEmpty } from 'lodash-es'
|
||||
|
||||
defineOptions({
|
||||
@@ -127,6 +128,7 @@ const { t } = useI18n()
|
||||
const formRef = useTemplateRef('formRef')
|
||||
|
||||
const adminInfoStore = useAdminInfo()
|
||||
const siteConfig = useSiteConfig()
|
||||
|
||||
const state: {
|
||||
adminInfo: anyObj
|
||||
|
||||
Reference in New Issue
Block a user