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
@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
Return the count of roles, using the same filter as list_roles
@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{}}
@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{}}
@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{}}
@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{}, ...]
@spec organization_roles(map()) :: [Glific.AccessControl.Role.t()]
Returns the labels of organization roles.
examples
Examples
iex> organization_roles()
["Teacher", "Mentor"]
@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{}}
@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{}}