useAuth.ts 837 Bytes
import { isFromEdge } from './useParseParams'
import { getCurrentRolePermission } from '@/api/sys'
import { useContentDataStoreWithOut } from '@/store/modules/contentData'
import { isShareMode } from '@/utils/env'

export function useAuth() {
  const contentDataStore = useContentDataStoreWithOut()
  const getAuthInfo = async () => {
    const result = { permissions: [] as string[], hasPreview: true, hasDesign: true }

    if (isFromEdge())
      return Object.assign(result, { hasDesignAuth: true, hasPreviewAuth: true })

    if (isShareMode()) return result

    const permissions = await getCurrentRolePermission()
    result.permissions = permissions
    const ret = contentDataStore.setPermissions(permissions)
    return {
      permissions,
      ...ret,
    }
  }

  return {
    getAuthInfo,
  }
}

window.useAuth = useAuth