appAdminRole.ts 1.03 KB
import type { UsAppMyProfileOutputDto } from '../services/usAppAuth'

function isCompanyAdminProfile(profile: UsAppMyProfileOutputDto): boolean {
  const code = (profile.primaryRoleCode ?? '').trim().toLowerCase()
  if (code === 'companyadmin' || code.includes('partner')) return true
  const display = (profile.roleDisplay ?? '').trim().toLowerCase()
  if (!display) return false
  if (display === 'company admin') return true
  if (display.includes('partner admin')) return true
  return false
}

/** 平台管理员或 Company Admin(App 级联选店) */
export function isAppAdminUser(profile: UsAppMyProfileOutputDto | null | undefined): boolean {
  if (!profile) return false
  const code = (profile.primaryRoleCode ?? '').trim().toLowerCase()
  if (code === 'admin') return true
  const display = (profile.roleDisplay ?? '').trim().toLowerCase()
  if (!display) return isCompanyAdminProfile(profile)
  if (display.includes('administrator')) return true
  if (display.includes('super admin')) return true
  return isCompanyAdminProfile(profile)
}