Home / Function/ useGetRolesManagementPermissions() — supabase Function Reference

useGetRolesManagementPermissions() — supabase Function Reference

Architecture documentation for the useGetRolesManagementPermissions() function in TeamSettings.utils.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  f6ac5702_c235_901f_8a41_8cfe80ab3f6f["useGetRolesManagementPermissions()"]
  84bec98b_714e_f59d_0bc7_84d6d1175062["InviteMemberButton()"]
  84bec98b_714e_f59d_0bc7_84d6d1175062 -->|calls| f6ac5702_c235_901f_8a41_8cfe80ab3f6f
  0fcab92a_2321_8135_7b0a_0636fbbbac51["MemberActions()"]
  0fcab92a_2321_8135_7b0a_0636fbbbac51 -->|calls| f6ac5702_c235_901f_8a41_8cfe80ab3f6f
  26567e94_e158_8cd1_b1e4_49300baf745f["UpdateRolesPanel()"]
  26567e94_e158_8cd1_b1e4_49300baf745f -->|calls| f6ac5702_c235_901f_8a41_8cfe80ab3f6f
  style f6ac5702_c235_901f_8a41_8cfe80ab3f6f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/studio/components/interfaces/Organization/TeamSettings/TeamSettings.utils.ts lines 6–46

export const useGetRolesManagementPermissions = (
  orgSlug?: string,
  roles?: Role[],
  permissions?: Permission[]
): { rolesAddable: Number[]; rolesRemovable: Number[] } => {
  const { permissions: allPermissions, organizationSlug } = useGetPermissions(
    permissions,
    orgSlug,
    permissions !== undefined && orgSlug !== undefined
  )

  const rolesAddable: Number[] = []
  const rolesRemovable: Number[] = []
  if (!roles || !orgSlug) return { rolesAddable, rolesRemovable }

  roles.forEach((role: Role) => {
    const canAdd = doPermissionsCheck(
      allPermissions,
      PermissionAction.CREATE,
      'auth.subject_roles',
      {
        resource: { role_id: role.id },
      },
      organizationSlug
    )
    if (canAdd) rolesAddable.push(role.id)

    const canRemove = doPermissionsCheck(
      allPermissions,
      PermissionAction.DELETE,
      'auth.subject_roles',
      {
        resource: { role_id: role.id },
      },
      organizationSlug
    )
    if (canRemove) rolesRemovable.push(role.id)
  })

  return { rolesAddable, rolesRemovable }
}

Subdomains

Frequently Asked Questions

What does useGetRolesManagementPermissions() do?
useGetRolesManagementPermissions() is a function in the supabase codebase.
What calls useGetRolesManagementPermissions()?
useGetRolesManagementPermissions() is called by 3 function(s): InviteMemberButton, MemberActions, UpdateRolesPanel.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free