feat(admin): onboarding por invitación — /admin/usuarios + /auth/confirm
Platform admin invita usuarios de empresa desde /admin/usuarios. inviteUserByEmail + insert inmediato en user_roles (org_admin). Rollback explícito si falla el insert. /auth/confirm maneja el link de invitación con PASSWORD_RECOVERY event. Middleware no requirió cambios — /auth/confirm ya queda fuera del matcher de rutas protegidas. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -11,3 +11,14 @@ export function createClient() {
|
||||
|
||||
return createSupabaseClient(url, anonKey)
|
||||
}
|
||||
|
||||
// service_role — bypasa RLS por completo (regla 9 CLAUDE.md). Solo se importa
|
||||
// desde Server Components / Server Actions ('use server'), nunca desde código
|
||||
// que se bundlea al cliente. No exportar este cliente ni su resultado hacia props
|
||||
// de un Client Component.
|
||||
export function getSupabaseAdmin() {
|
||||
const url = process.env.NEXT_PUBLIC_SUPABASE_URL ?? 'https://placeholder.supabase.co'
|
||||
const serviceKey = process.env.SUPABASE_SERVICE_ROLE_KEY ?? 'placeholder'
|
||||
|
||||
return createSupabaseClient(url, serviceKey)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user