@plutocms/supabase 0.11.3 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.env.example +14 -0
  2. package/CHANGELOG.md +7 -0
  3. package/FEATURES.md +5 -1
  4. package/README.md +66 -0
  5. package/app/components/access/CopyButton.vue +24 -0
  6. package/app/components/access/DeleteRoleModal.vue +73 -0
  7. package/app/components/access/EditRolesSlideover.vue +134 -0
  8. package/app/components/access/InviteModal.vue +288 -0
  9. package/app/components/access/LinkField.vue +19 -0
  10. package/app/components/access/LinkModal.vue +29 -0
  11. package/app/components/access/RevokeModal.vue +83 -0
  12. package/app/components/access/RoleSlideover.vue +251 -0
  13. package/app/components/mail/AuthEmailsPanel.vue +108 -0
  14. package/app/pages/admin/(auth)/accept-invite.vue +155 -0
  15. package/app/pages/admin/settings/roles.vue +187 -0
  16. package/app/pages/admin/settings/users.vue +372 -0
  17. package/app/plugins/pluto-extension.ts +38 -1
  18. package/app/utils/access-ui.ts +100 -0
  19. package/app/utils/auth-driver.ts +3 -0
  20. package/app/utils/invite-link.ts +70 -0
  21. package/app/utils/supabase-project.ts +54 -0
  22. package/db/migrations/008_users_and_roles_admin.sql +462 -0
  23. package/i18n/locales/en.json +194 -1
  24. package/i18n/locales/pt-BR.json +194 -1
  25. package/package.json +3 -2
  26. package/server/api/access/capabilities.get.ts +17 -0
  27. package/server/api/access/roles/[key].delete.ts +18 -0
  28. package/server/api/access/roles/[key].put.ts +26 -0
  29. package/server/api/access/roles.get.ts +17 -0
  30. package/server/api/access/roles.post.ts +25 -0
  31. package/server/api/access/users/[id]/resend.post.ts +172 -0
  32. package/server/api/access/users/[id]/roles.delete.ts +22 -0
  33. package/server/api/access/users/[id]/roles.put.ts +24 -0
  34. package/server/api/access/users/invite-link.post.ts +50 -0
  35. package/server/api/access/users/invite.post.ts +201 -0
  36. package/server/api/access/users.get.ts +17 -0
  37. package/server/utils/access-errors.ts +148 -0
  38. package/server/utils/access-invite.ts +66 -0
  39. package/server/utils/access-mail.ts +354 -0
  40. package/server/utils/admin-guard.ts +4 -3
  41. package/server/utils/admin-role-guard.ts +44 -0
  42. package/server/utils/rate-limit.ts +84 -0
  43. package/server/utils/service-client.ts +18 -0
  44. package/server/utils/sign-in-link.ts +129 -0
  45. package/shared/types/access.d.ts +41 -0
  46. package/shared/types/supabase.ts +50 -9
@@ -355,20 +355,61 @@ export type Database = {
355
355
  [_ in never]: never
356
356
  }
357
357
  Functions: {
358
- has_capability: {
359
- Args: { cap: string }
360
- Returns: boolean
358
+ add_user_roles: {
359
+ Args: { role_keys: string[]; target: string }
360
+ Returns: undefined
361
+ }
362
+ create_role: {
363
+ Args: {
364
+ p_capabilities: string[]
365
+ p_description: string
366
+ p_key: string
367
+ p_label: string
368
+ }
369
+ Returns: undefined
361
370
  }
362
- my_capabilities: {
371
+ delete_role: { Args: { p_key: string }; Returns: number }
372
+ find_user_id_by_email: { Args: { p_email: string }; Returns: string }
373
+ has_capability: { Args: { cap: string }; Returns: boolean }
374
+ is_admin: { Args: Record<PropertyKey, never>; Returns: boolean }
375
+ list_roles: {
363
376
  Args: Record<PropertyKey, never>
364
- Returns: string[]
377
+ Returns: {
378
+ capabilities: string[]
379
+ description: string
380
+ is_builtin: boolean
381
+ key: string
382
+ label: string
383
+ user_count: number
384
+ }[]
365
385
  }
366
- is_admin: {
386
+ list_staff_users: {
367
387
  Args: Record<PropertyKey, never>
368
- Returns: boolean
388
+ Returns: {
389
+ display_name: string
390
+ email: string
391
+ email_confirmed_at: string
392
+ id: string
393
+ invited_at: string
394
+ is_admin: boolean
395
+ last_sign_in_at: string
396
+ roles: string[]
397
+ username: string
398
+ }[]
369
399
  }
370
- set_my_locale: {
371
- Args: { new_locale: string }
400
+ my_capabilities: { Args: Record<PropertyKey, never>; Returns: string[] }
401
+ set_my_locale: { Args: { new_locale: string }; Returns: undefined }
402
+ set_user_roles: {
403
+ Args: { role_keys: string[]; target: string }
404
+ Returns: undefined
405
+ }
406
+ update_role: {
407
+ Args: {
408
+ p_capabilities: string[]
409
+ p_description: string
410
+ p_key: string
411
+ p_label: string
412
+ }
372
413
  Returns: undefined
373
414
  }
374
415
  }