refactor: rename idp fields to provider naming
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<template #header>
|
||||
<div class="text-center">
|
||||
<h1 class="text-xl font-bold text-gray-800">member.ose.tw</h1>
|
||||
<p class="text-sm text-gray-500 mt-1">按下按鈕前往 Keycloak 登入</p>
|
||||
<p class="text-sm text-gray-500 mt-1">按下按鈕前往身分提供者登入</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
:loading="loginLoading"
|
||||
@click="handleLogin"
|
||||
>
|
||||
前往 Keycloak 登入
|
||||
前往登入
|
||||
</el-button>
|
||||
|
||||
<div class="mt-4 text-xs text-gray-400 text-center space-y-1">
|
||||
<p>登入會統一跳轉到 Keycloak 登入頁,完成後自動返回。</p>
|
||||
<p>登入會統一跳轉到身分提供者登入頁,完成後自動返回。</p>
|
||||
<p>登入成功後 access token 會存於本機 localStorage。</p>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="啟用"><el-switch v-model="createForm.is_active" /></el-form-item>
|
||||
<el-form-item label="同步 Keycloak"><el-switch v-model="createForm.sync_to_idp" /></el-form-item>
|
||||
<el-form-item label="同步 Provider"><el-switch v-model="createForm.sync_to_idp" /></el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="showCreateDialog = false">取消</el-button>
|
||||
@@ -71,7 +71,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="啟用"><el-switch v-model="editForm.is_active" /></el-form-item>
|
||||
<el-form-item label="同步 Keycloak"><el-switch v-model="editForm.sync_to_idp" /></el-form-item>
|
||||
<el-form-item label="同步 Provider"><el-switch v-model="editForm.sync_to_idp" /></el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="showEditDialog = false">取消</el-button>
|
||||
@@ -86,7 +86,7 @@
|
||||
<el-table-column prop="site_display_name" label="站台" min-width="170" />
|
||||
<el-table-column prop="system_name" label="系統" min-width="150" />
|
||||
<el-table-column prop="role_name" label="角色" min-width="160" />
|
||||
<el-table-column prop="idp_role_name" label="Keycloak Role" min-width="190" />
|
||||
<el-table-column prop="provider_role_name" label="Provider Role" min-width="190" />
|
||||
</el-table>
|
||||
<template #footer>
|
||||
<el-button @click="showRolesDialog = false">關閉</el-button>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<el-table-column prop="role_key" label="Role Key" width="200" />
|
||||
<el-table-column prop="system_name" label="系統" min-width="150" />
|
||||
<el-table-column prop="name" label="角色名稱" min-width="180" />
|
||||
<el-table-column prop="idp_role_name" label="Keycloak Role" min-width="190" />
|
||||
<el-table-column prop="provider_role_name" label="Provider Role" min-width="190" />
|
||||
<el-table-column prop="status" label="狀態" width="110" />
|
||||
<el-table-column label="操作" width="280">
|
||||
<template #default="{ row }">
|
||||
@@ -37,7 +37,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="角色名稱" prop="name"><el-input v-model="createForm.name" /></el-form-item>
|
||||
<el-form-item label="Keycloak Role" prop="idp_role_name"><el-input v-model="createForm.idp_role_name" /></el-form-item>
|
||||
<el-form-item label="Provider Role" prop="provider_role_name"><el-input v-model="createForm.provider_role_name" /></el-form-item>
|
||||
<el-form-item label="描述"><el-input v-model="createForm.description" type="textarea" :rows="2" /></el-form-item>
|
||||
<el-form-item label="狀態">
|
||||
<el-select v-model="createForm.status" style="width: 100%">
|
||||
@@ -66,7 +66,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="角色名稱"><el-input v-model="editForm.name" /></el-form-item>
|
||||
<el-form-item label="Keycloak Role"><el-input v-model="editForm.idp_role_name" /></el-form-item>
|
||||
<el-form-item label="Provider Role"><el-input v-model="editForm.provider_role_name" /></el-form-item>
|
||||
<el-form-item label="描述"><el-input v-model="editForm.description" type="textarea" :rows="2" /></el-form-item>
|
||||
<el-form-item label="狀態">
|
||||
<el-select v-model="editForm.status" style="width: 100%">
|
||||
@@ -117,7 +117,7 @@ const createFormRef = ref()
|
||||
const createForm = ref({
|
||||
system_key: '',
|
||||
name: '',
|
||||
idp_role_name: '',
|
||||
provider_role_name: '',
|
||||
description: '',
|
||||
status: 'active'
|
||||
})
|
||||
@@ -125,14 +125,14 @@ const editForm = ref({
|
||||
role_key: '',
|
||||
system_key: '',
|
||||
name: '',
|
||||
idp_role_name: '',
|
||||
provider_role_name: '',
|
||||
description: '',
|
||||
status: 'active'
|
||||
})
|
||||
const rules = {
|
||||
system_key: [{ required: true, message: '請選擇系統', trigger: 'change' }],
|
||||
name: [{ required: true, message: '請輸入角色名稱', trigger: 'blur' }],
|
||||
idp_role_name: [{ required: true, message: '請輸入 Keycloak Role', trigger: 'blur' }]
|
||||
provider_role_name: [{ required: true, message: '請輸入 Provider Role', trigger: 'blur' }]
|
||||
}
|
||||
|
||||
const showSitesDialog = ref(false)
|
||||
@@ -162,7 +162,7 @@ function resetCreateForm() {
|
||||
createForm.value = {
|
||||
system_key: '',
|
||||
name: '',
|
||||
idp_role_name: '',
|
||||
provider_role_name: '',
|
||||
description: '',
|
||||
status: 'active'
|
||||
}
|
||||
@@ -173,7 +173,7 @@ function openEdit(row) {
|
||||
role_key: row.role_key,
|
||||
system_key: row.system_key,
|
||||
name: row.name,
|
||||
idp_role_name: row.idp_role_name,
|
||||
provider_role_name: row.provider_role_name,
|
||||
description: row.description || '',
|
||||
status: row.status || 'active'
|
||||
}
|
||||
@@ -185,7 +185,7 @@ function resetEditForm() {
|
||||
role_key: '',
|
||||
system_key: '',
|
||||
name: '',
|
||||
idp_role_name: '',
|
||||
provider_role_name: '',
|
||||
description: '',
|
||||
status: 'active'
|
||||
}
|
||||
@@ -199,7 +199,7 @@ async function handleCreate() {
|
||||
await createRole({
|
||||
system_key: createForm.value.system_key,
|
||||
name: createForm.value.name,
|
||||
idp_role_name: createForm.value.idp_role_name,
|
||||
provider_role_name: createForm.value.provider_role_name,
|
||||
description: createForm.value.description || null,
|
||||
status: createForm.value.status
|
||||
})
|
||||
@@ -220,7 +220,7 @@ async function handleEdit() {
|
||||
await updateRole(editForm.value.role_key, {
|
||||
system_key: editForm.value.system_key,
|
||||
name: editForm.value.name,
|
||||
idp_role_name: editForm.value.idp_role_name,
|
||||
provider_role_name: editForm.value.provider_role_name,
|
||||
description: editForm.value.description || null,
|
||||
status: editForm.value.status
|
||||
})
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="flex items-center justify-between mb-6">
|
||||
<h2 class="text-xl font-bold text-gray-800">系統管理(Keycloak 唯一來源)</h2>
|
||||
<h2 class="text-xl font-bold text-gray-800">系統管理(身分提供者唯一來源)</h2>
|
||||
<div class="flex gap-2">
|
||||
<el-button :loading="syncing" @click="handleSync">同步 Keycloak</el-button>
|
||||
<el-button :loading="syncing" @click="handleSync">同步 Provider</el-button>
|
||||
<el-button :loading="loading" @click="load">重新整理</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-alert type="info" :closable="false" show-icon class="mb-4">
|
||||
<template #title>
|
||||
系統與角色請在 Keycloak 建立與調整,member 後台只做顯示與關聯。
|
||||
系統與角色請在身分提供者建立與調整,member 後台只做顯示與關聯。
|
||||
</template>
|
||||
</el-alert>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<template #empty><el-empty description="目前無系統" /></template>
|
||||
<el-table-column prop="system_key" label="System Key" width="200" />
|
||||
<el-table-column prop="name" label="系統名稱" min-width="180" />
|
||||
<el-table-column prop="idp_client_id" label="Keycloak Client ID" min-width="220" />
|
||||
<el-table-column prop="provider_client_id" label="Provider Client ID" min-width="220" />
|
||||
<el-table-column prop="status" label="狀態" width="110" />
|
||||
<el-table-column label="操作" width="120">
|
||||
<template #default="{ row }">
|
||||
@@ -35,7 +35,7 @@
|
||||
<template #empty><el-empty description="此系統目前沒有角色" /></template>
|
||||
<el-table-column prop="role_key" label="Role Key" width="200" />
|
||||
<el-table-column prop="name" label="角色名稱" min-width="200" />
|
||||
<el-table-column prop="idp_role_name" label="Keycloak Role" min-width="210" />
|
||||
<el-table-column prop="provider_role_name" label="Provider Role" min-width="210" />
|
||||
<el-table-column prop="status" label="狀態" width="110" />
|
||||
</el-table>
|
||||
<template #footer>
|
||||
@@ -79,7 +79,7 @@ async function load() {
|
||||
async function handleSync() {
|
||||
syncing.value = true
|
||||
try {
|
||||
const res = await adminHttp.post('/admin/sync/from-keycloak', null, { params: { force: true } })
|
||||
const res = await adminHttp.post('/admin/sync/from-provider', null, { params: { force: true } })
|
||||
const summary = [
|
||||
`systems +${res.data?.systems_created ?? 0}`,
|
||||
`roles +${res.data?.roles_created ?? 0}`,
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<el-table-column prop="site_display_name" label="站台" min-width="160" />
|
||||
<el-table-column prop="system_name" label="系統" min-width="150" />
|
||||
<el-table-column prop="role_name" label="角色" min-width="160" />
|
||||
<el-table-column prop="idp_role_name" label="Keycloak Role" min-width="180" />
|
||||
<el-table-column prop="provider_role_name" label="Provider Role" min-width="180" />
|
||||
</el-table>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user