fix(iam): keep revocation core active when new flows are disabled

This commit is contained in:
2026-10-29 20:38:08 +08:00
parent 3f3b4b400a
commit 27cab30c48
13 changed files with 59 additions and 20 deletions
+2 -1
View File
@@ -9,7 +9,8 @@ const enabled = ref(false),
busy = ref(false)
onMounted(async () => {
try {
enabled.value = !!(await iamGet('/status')).enabled
const status = await iamGet('/status')
enabled.value = !!status.enabled && status.launch_enabled === true
} catch {
enabled.value = false
}
+3 -3
View File
@@ -27,20 +27,20 @@
<el-button @click="reauthVisible = true">验证当前身份</el-button>
<el-button @click="wecomRelogin">企业微信重新登录</el-button>
<el-button
v-if="!linked && !status.protected_account"
v-if="!linked && !status.protected_account && status.management_enabled"
type="primary"
:loading="busy"
@click="navigate('/self-link/start')"
>关联已有 IAM 账号</el-button
>
<el-button
v-if="linked && status.employee?.passwordSetupPending"
v-if="linked && status.management_enabled && status.employee?.passwordSetupPending"
type="primary"
:loading="busy"
@click="navigate('/password-setup')"
>设置 IAM 登录密码</el-button
>
<el-button v-if="linked" :loading="busy" @click="launch">进入甄美 ERP ↗</el-button>
<el-button v-if="linked && status.launch_enabled" :loading="busy" @click="launch">进入甄美 ERP ↗</el-button>
</div>
<el-dialog
v-model="reauthVisible"
@@ -415,6 +415,7 @@ const titles: Record<string, string> = {
}
const enabled = ref(false),
reviewAllowed = ref(false),
managementEnabled = ref(false),
caps = ref<string[]>([]),
rows = ref<any[]>([]),
total = ref(0),
@@ -446,7 +447,7 @@ const batchVisible = ref(false),
selectedIndexes = ref<number[]>([]),
batchConfirmed = ref(false),
job = ref<any>(null)
const can = (c: string) => caps.value.includes(c)
const can = (c: string) => caps.value.includes(c) && (c === 'read' || managementEnabled.value)
const validIdentity = computed(
() =>
operation.kind === 'unbind' ||
@@ -618,6 +619,7 @@ onMounted(async () => {
enabled.value = s.enabled
caps.value = s.management_capabilities || []
reviewAllowed.value = s.protected_review_operator === true
managementEnabled.value = s.management_enabled === true
if (enabled.value && can('read')) await load()
} catch (e) {
error.value = identityError(e)