View Source SecureX.Permissions (SecureX v1.1.0)

Contains CRUD For Permissions.

Link to this section Summary

Functions

Add a Permission. You can send either Atom Map or String Map to add a Permission.

Delete a Permission.

Get list of Permissions by User Roles. List/1 is without pagination, List/2 & List/3 is with pagination.

Update a Permission. You can send either Atom Map or String Map to update a Permission.

Link to this section Functions

@spec add(map()) :: tuple()

Add a Permission. You can send either Atom Map or String Map to add a Permission.

examples

Examples

iex> add(%{"permission" => -1, "resource_id" => "users", "role_id" => "super_admin"})
%Permission{
  id: 1,
  permission: -1,
  resource_id: "users",
  role_id: "super_admin"
}
@spec delete(map()) :: tuple()

Delete a Permission.

examples

Examples

iex> delete(%{"id" => 1)
%Permission{
  id: 1,
  permission: 4,
  resource_id: "users",
  role_id: "admin"
}
Link to this function

list(list, page \\ nil, page_size \\ 10)

View Source
@spec list(list(), number(), number()) :: tuple()

Get list of Permissions by User Roles. List/1 is without pagination, List/2 & List/3 is with pagination.

examples

Examples

iex> list([], 1)
{:error, :bad_input}

iex> list([])
{:error, :bad_input}

iex> list(["owner", "super_admin"], 1)
{:ok,
  %Scrivener.Page{
    entries: [
      %{permission: 4, resource_id: "roles", role_id: "owner"},
      %{permission: 4, resource_id: "users", role_id: "owner"},
      %{permission: 4, resource_id: "stock_types", role_id: "owner"},
      %{permission: 4, resource_id: "sales", role_id: "owner"},
      %{permission: 4, resource_id: "stocks", role_id: "owner"},
      %{permission: 4, resource_id: "providers", role_id: "owner"},
      %{permission: 4, resource_id: "fuel_dispensers", role_id: "owner"},
      %{permission: 4, resource_id: "employees", role_id: "owner"},
      %{permission: 4, resource_id: "customers", role_id: "owner"},
      %{permission: 4, resource_id: "stock_stats", role_id: "owner"}
    ],
  page_number: 1,
  page_size: 10,
  total_entries: 22,
  total_pages: 3
}

}

iex> list(["owner", "super_admin"])

[
%{ permission: 4, resource_id: "users", role_id: "admin"},
%{ permission: 4, resource_id: "person_form", role_id: "super_admin"}

]

@spec update(map()) :: tuple()

Update a Permission. You can send either Atom Map or String Map to update a Permission.

## Examples

iex> update(%{"id" => "1", "resource_id" => "users", "permission" => 4, "role_id" => "admin"})
%Permission{
  id: 1,
  permission: 4,
  resource_id: "users",
  role_id: "admin"
}