View Source Glific.AccessControl (Glific v5.1.6)

The AccessControl context.

Link to this section Summary

Functions

Common function to filtering entity objects based on user role, fun_with_flag flag and entity type

Return the count of roles, using the same filter as list_roles

Creates a permission.

Creates a role.

Deletes a permission.

Deletes a role.

Common function to filtering entity objects based on user role, fun_with_flag flag and entity type

Gets a single permission.

Gets a single role.

Returns the list of permissions.

Returns the list of roles. Checks if roles and permission flag is enabled first. If roles and permission is enabled then list all roles If roles and permission is disabled then list only default roles

Returns the labels of organization roles.

Updates a permission.

Updates a role.

Link to this section Functions

Link to this function

check_access(entity_list, entity_type)

View Source
@spec check_access(Ecto.Query.t(), atom()) :: Ecto.Query.t()

Common function to filtering entity objects based on user role, fun_with_flag flag and entity type

@spec count_roles(map()) :: integer()

Return the count of roles, using the same filter as list_roles

Link to this function

create_permission(attrs \\ %{})

View Source
@spec create_permission(map()) ::
  {:ok, Glific.AccessControl.Permission.t()} | {:error, Ecto.Changeset.t()}

Creates a permission.

examples

Examples

iex> create_permission(%{field: value})
{:ok, %Permission{}}

iex> create_permission(%{field: bad_value})
{:error, %Ecto.Changeset{}}
Link to this function

create_role(attrs \\ %{})

View Source
@spec create_role(map()) ::
  {:ok, Glific.AccessControl.Role.t()} | {:error, Ecto.Changeset.t()}

Creates a role.

examples

Examples

iex> create_role(%{field: value})
{:ok, %Role{}}

iex> create_role(%{field: bad_value})
{:error, %Ecto.Changeset{}}
Link to this function

delete_permission(permission)

View Source
@spec delete_permission(Glific.AccessControl.Permission.t()) ::
  {:ok, Glific.AccessControl.Permission.t()} | {:error, Ecto.Changeset.t()}

Deletes a permission.

examples

Examples

iex> delete_permission(permission)
{:ok, %Permission{}}

iex> delete_permission(permission)
{:error, %Ecto.Changeset{}}
@spec delete_role(Glific.AccessControl.Role.t()) ::
  {:ok, Glific.AccessControl.Role.t()} | {:error, Ecto.Changeset.t()}

Deletes a role.

examples

Examples

iex> delete_role(role)
{:ok, %Role{}}

iex> delete_role(role)
{:error, %Ecto.Changeset{}}
Link to this function

do_check_access(entity_list, entity_type, user)

View Source
@spec do_check_access(Ecto.Query.t(), atom(), Glific.Users.User.t()) ::
  Ecto.Query.t() | {:error, String.t()}

Common function to filtering entity objects based on user role, fun_with_flag flag and entity type

@spec get_permission!(integer()) :: Glific.AccessControl.Permission.t()

Gets a single permission.

Raises Ecto.NoResultsError if the Permission does not exist.

examples

Examples

iex> get_permission!(123)
%Permission{}

iex> get_permission!(456)
** (Ecto.NoResultsError)
@spec get_role!(integer()) :: Glific.AccessControl.Role.t()

Gets a single role.

Raises Ecto.NoResultsError if the Role does not exist.

examples

Examples

iex> get_role!(123)
%Role{}

iex> get_role!(456)
** (Ecto.NoResultsError)
@spec list_permissions() :: [Glific.AccessControl.Permission.t()]

Returns the list of permissions.

examples

Examples

iex> list_permissions()
[%Permission{}, ...]
@spec list_roles(map()) :: [Glific.AccessControl.Role.t()]

Returns the list of roles. Checks if roles and permission flag is enabled first. If roles and permission is enabled then list all roles If roles and permission is disabled then list only default roles

examples

Examples

iex> list_roles()
[%Role{}, ...]
Link to this function

organization_roles(args)

View Source
@spec organization_roles(map()) :: [Glific.AccessControl.Role.t()]

Returns the labels of organization roles.

examples

Examples

iex> organization_roles()
["Teacher", "Mentor"]
Link to this function

update_permission(permission, attrs)

View Source
@spec update_permission(Glific.AccessControl.Permission.t(), map()) ::
  {:ok, Glific.AccessControl.Permission.t()} | {:error, Ecto.Changeset.t()}

Updates a permission.

examples

Examples

iex> update_permission(permission, %{field: new_value})
{:ok, %Permission{}}

iex> update_permission(permission, %{field: bad_value})
{:error, %Ecto.Changeset{}}
Link to this function

update_role(role, attrs)

View Source
@spec update_role(Glific.AccessControl.Role.t(), map()) ::
  {:ok, Glific.AccessControl.Role.t()} | {:error, Ecto.Changeset.t()}

Updates a role.

examples

Examples

iex> update_role(role, %{field: new_value})
{:ok, %Role{}}

iex> update_role(role, %{field: bad_value})
{:error, %Ecto.Changeset{}}