fix(settings): import preview copies khanegi can_edit=0 values onto this tenant

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-18 18:52:31 +03:30
co-authored by Cursor
parent c882c71067
commit cb2a752306
+12 -6
View File
@@ -369,7 +369,7 @@ async function applyImport() {
applyItems(Array.isArray(data.items) ? data.items : []) applyItems(Array.isArray(data.items) ? data.items : [])
creds.password = '' creds.password = ''
previewOpen.value = false previewOpen.value = false
message.success('ایمپورت اعمال شد. کلیدهای فقط-سوپرادمین با پیش‌فرض قالب پر شدند.') message.success('مقدارهای can_edit=0 خانگی روی این پروژه نوشته شد.')
} catch (e: any) { } catch (e: any) {
message.error(errText(e) || 'اعمال ایمپورت ناموفق بود') message.error(errText(e) || 'اعمال ایمپورت ناموفق بود')
} finally { } finally {
@@ -472,10 +472,13 @@ onMounted(load)
@ok="applyImport" @ok="applyImport"
> >
<p class="field-hint"> <p class="field-hint">
فقط کلیدهایی که در قالب سوپرادمین نیستند. بقیه (مثل مقدار کلیدهای
<code dir="ltr">app_url</code>) از deploy const آمده‌اند و اینجا بازنویسی نمی‌شوند. <code dir="ltr">can_edit=0</code>
کلیدهای فقط-سوپرادمین روی این پروژه با پیش‌فرض قالب تکمیل می‌شوند خانگی روی همین پروژه نوشته می‌شود. ردیف‌های زیر فقط جاهایی هستند که مقدار فرق دارد.
<template v-if="onlySaKeys.length"> ({{ onlySaKeys.length }} کلید)</template>. بدون انتخاب، پیش‌فرض «فقط این پروژه» است
<template v-if="onlySaKeys.length">
· {{ onlySaKeys.length }} کلید فقط در سوپرادمین با پیش‌فرض قالب می‌ماند
</template>.
</p> </p>
<div v-if="previewRows.length" class="preview-list"> <div v-if="previewRows.length" class="preview-list">
<div v-for="row in previewRows" :key="row.key" class="preview-row"> <div v-for="row in previewRows" :key="row.key" class="preview-row">
@@ -483,6 +486,9 @@ onMounted(load)
<code dir="ltr">{{ row.key }}</code> <code dir="ltr">{{ row.key }}</code>
<div class="preview-title">{{ row.title_fa }}</div> <div class="preview-title">{{ row.title_fa }}</div>
<div class="preview-vals" dir="ltr">خانگی: {{ row.khanegi_value || '—' }}</div> <div class="preview-vals" dir="ltr">خانگی: {{ row.khanegi_value || '—' }}</div>
<div v-if="row.superadmin_value != null" class="preview-vals" dir="ltr">
سوپرادمین: {{ row.superadmin_value || '—' }}
</div>
</div> </div>
<a-radio-group v-model:value="row.scope" size="small"> <a-radio-group v-model:value="row.scope" size="small">
<a-radio-button value="none">خیر</a-radio-button> <a-radio-button value="none">خیر</a-radio-button>
@@ -491,7 +497,7 @@ onMounted(load)
</a-radio-group> </a-radio-group>
</div> </div>
</div> </div>
<a-empty v-else description="کلید جدیدی از خانگی نیامد؛ همه در قالب سوپرادمین بودند" /> <a-empty v-else description="مقدارها یکی است؛ اعمال همان can_edit=0 خانگی را روی این پروژه می‌نویسد" />
</a-modal> </a-modal>
<section class="form-section"> <section class="form-section">