mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-15 18:53:06 +00:00
- ~190 findings zerados: knip --fix (grafo corrigido: tests como entries, migrations como consumidores) + delecao guardada dos orfaos (git grep -w antes de deletar) + reparos manuais dos corpos arrow pendurados - pecas nao usadas do kit ui deletadas (PaginationLink/Next/Previous, familias Sidebar/Combobox/Sheet/Drawer/Dialog etc.) - shadcn add recoloca se precisar - acoes mortas removidas (updateCampaignDemandDetails*, *Record orfaos), schemas/tipos mortos (campaignDemandDetailsUpdateSchema, Contact do zod), helpers mortos - tipos de eleicao derivam direto das *_OPTIONS (consts intermediarias eliminadas) - knip.json: rules exports/types/enumMembers=error, duplicates=off (unicos hits: 6 aliases deliberados canUpdateX=canReadX); hints aplicados (payload.config entry redundante, ignores de tsx/sharp/playwright/payload-types desnecessarios) - ledger: linha P2 dos unused exports fechada
26 lines
1.1 KiB
TypeScript
26 lines
1.1 KiB
TypeScript
// ---------------------------------------------------------------------------
|
|
// Election data
|
|
// ---------------------------------------------------------------------------
|
|
|
|
import type { CampaignUser, User } from '@/payload-types'
|
|
import type { Access } from 'payload'
|
|
|
|
import type { CampaignActor } from '@/utilities/access/shared'
|
|
import { isCampaignStaff, isPayloadAdmin } from '@/utilities/access/shared'
|
|
|
|
export type ElectionDataReader = CampaignUser | User
|
|
|
|
const canReadElectionDataAsUser = (user: CampaignActor): user is ElectionDataReader =>
|
|
isPayloadAdmin(user) || isCampaignStaff(user)
|
|
|
|
export function assertCanReadElectionData(user: CampaignActor): asserts user is ElectionDataReader {
|
|
if (!canReadElectionDataAsUser(user)) {
|
|
throw new Error('Leitura de dados eleitorais negada.')
|
|
}
|
|
}
|
|
|
|
/** Public TSE election data: any authenticated campaign or admin user may read. */
|
|
export const canReadElectionData: Access = ({ req }) => canReadElectionDataAsUser(req.user)
|
|
|
|
/** Election reference data is mutated only by Payload admins (or CLI with overrideAccess). */
|
|
export const canMutateElectionData: Access = ({ req }) => isPayloadAdmin(req.user)
|