Context for managing which roles have CRM access enabled.
Summary
Functions
Returns whether the given role has CRM access enabled.
Lists all roles eligible for CRM access.
Lists all roles that have CRM access enabled.
Enables or disables CRM access for a role.
Functions
Returns whether the given role has CRM access enabled.
Examples
iex> enabled?("some-uuid")
false
@spec list_eligible_roles() :: [PhoenixKit.Users.Role.t()]
Lists all roles eligible for CRM access.
Returns all non-system roles (i.e. roles where is_system_role is false).
Examples
iex> list_eligible_roles()
[%Role{name: "Manager"}, %Role{name: "User"}, ...]
@spec list_enabled() :: [PhoenixKit.Users.Role.t()]
Lists all roles that have CRM access enabled.
Returns joined %PhoenixKit.Users.Role{} structs.
Examples
iex> list_enabled()
[%Role{name: "Manager"}, ...]
@spec set_enabled(binary(), boolean()) :: {:ok, PhoenixKitCRM.RoleSetting.t()} | {:error, Ecto.Changeset.t()}
Enables or disables CRM access for a role.
Upserts the setting row and triggers a sidebar refresh.
Examples
iex> set_enabled("some-uuid", true)
{:ok, %RoleSetting{}}
iex> set_enabled("some-uuid", false)
{:ok, %RoleSetting{}}