fix: make prefix required in TenantCreate schema and add frontend validation
prefix was optional with empty default, allowing accounts to be created with broken account_code (no prefix). Root fix: enforce prefix at input level rather than patching data after the fact. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@ from pydantic import BaseModel, EmailStr
|
|||||||
|
|
||||||
class TenantBase(BaseModel):
|
class TenantBase(BaseModel):
|
||||||
code: str
|
code: str
|
||||||
prefix: str = ""
|
prefix: str
|
||||||
name: str
|
name: str
|
||||||
name_eng: Optional[str] = None
|
name_eng: Optional[str] = None
|
||||||
tax_id: Optional[str] = None
|
tax_id: Optional[str] = None
|
||||||
|
|||||||
@@ -272,12 +272,20 @@ function editRow(t) {
|
|||||||
|
|
||||||
async function saveForm() {
|
async function saveForm() {
|
||||||
const id = document.getElementById('f-id').value;
|
const id = document.getElementById('f-id').value;
|
||||||
|
const code = document.getElementById('f-code').value.trim();
|
||||||
|
const prefix = document.getElementById('f-prefix').value.trim();
|
||||||
|
const name = document.getElementById('f-name').value.trim();
|
||||||
|
const domain = document.getElementById('f-domain').value.trim();
|
||||||
|
if (!code || !prefix || !name || !domain) {
|
||||||
|
toast('代碼、前置碼、名稱、網域為必填', 'error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
const payload = {
|
const payload = {
|
||||||
code: document.getElementById('f-code').value.trim(),
|
code,
|
||||||
prefix: document.getElementById('f-prefix').value.trim(),
|
prefix,
|
||||||
name: document.getElementById('f-name').value.trim(),
|
name,
|
||||||
name_eng: document.getElementById('f-name-eng').value.trim() || null,
|
name_eng: document.getElementById('f-name-eng').value.trim() || null,
|
||||||
domain: document.getElementById('f-domain').value.trim(),
|
domain,
|
||||||
tax_id: document.getElementById('f-tax-id').value.trim() || null,
|
tax_id: document.getElementById('f-tax-id').value.trim() || null,
|
||||||
quota_per_user: parseInt(document.getElementById('f-quota-user').value),
|
quota_per_user: parseInt(document.getElementById('f-quota-user').value),
|
||||||
total_quota: parseInt(document.getElementById('f-quota-total').value),
|
total_quota: parseInt(document.getElementById('f-quota-total').value),
|
||||||
|
|||||||
Reference in New Issue
Block a user