edit SMSpanel
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import type { User } from '@/model/user'
|
||||
import { isDeployAdmin } from '@/utils/deployAdmin'
|
||||
|
||||
export const SMS_PANEL_OWNER_MOBILE = '09128081392'
|
||||
|
||||
export function normalizeMobile(mobile: unknown): string {
|
||||
let digits = String(mobile ?? '').replace(/\D/g, '')
|
||||
|
||||
if (digits.startsWith('98') && digits.length === 12) {
|
||||
digits = `0${digits.slice(2)}`
|
||||
} else if (digits.length === 10 && digits.startsWith('9')) {
|
||||
digits = `0${digits}`
|
||||
}
|
||||
|
||||
return digits
|
||||
}
|
||||
|
||||
function parseSettingBool(value: unknown, defaultValue = true): boolean {
|
||||
if (value == null || String(value).trim() === '') {
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
const normalized = String(value).trim().toLowerCase()
|
||||
|
||||
if (['false', '0', 'no', 'off'].includes(normalized)) {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
/** sms_panel = false → بدون کیف پول/billing؛ ارسال مثل قبل */
|
||||
export function isSmsBillingEnabled(user?: User | null): boolean {
|
||||
if (!user) return false
|
||||
if (user.sms_billing_enabled === false) return false
|
||||
|
||||
const panel = user.settings?.find((s) => s.key === 'sms_panel')?.value
|
||||
|
||||
return parseSettingBool(panel, true)
|
||||
}
|
||||
|
||||
export function hasSmsPanelAccess(user?: User | null): boolean {
|
||||
if (!isSmsBillingEnabled(user)) return false
|
||||
if (user?.sms_panel_access === true) return true
|
||||
|
||||
return isDeployAdmin(user?.mobile)
|
||||
}
|
||||
Reference in New Issue
Block a user