View Source Terminator.UUID.Role (terminator_uuid v0.6.0)
Role is grouped representation of multiple abilities. It allows you to assign or manage multiple roles at once.
Link to this section Summary
Functions
Builds ecto changeset for a role.
Grant Terminator.UUID.Ability
to a role.
Revoke Terminator.UUID.Ability
from a role.
Link to this section Types
Link to this section Functions
@spec build(identifier :: String.t(), abilities :: [String.t()], name :: String.t()) :: Ecto.Changeset.t()
Builds ecto changeset for a role.
examples
Examples
iex> changeset = Terminator.UUID.Role.build("admin", ["delete_account"], "Administrator of application")
#Ecto.Changeset<
action: nil,
changes: %{
abilities: ["delete_account"],
identifier: "admin",
name: "Administrator of application"
},
errors: [],
data: #Terminator.UUID.Role<>,
valid?: true
>
iex> changeset |> Repo.insert
{:ok,
%Terminator.UUID.Role{
__meta__: #Ecto.Schema.Metadata<:loaded, "terminator_uuid_roles">,
abilities: ["delete_account"],
id: 1,
identifier: "admin",
inserted_at: ~N[2019-01-03 19:50:13],
name: "Administrator of application",
updated_at: ~N[2019-01-03 19:50:13]
}}
@spec changeset(struct :: t(), params :: map() | nil) :: Ecto.Changeset.t()
@spec grant(t(), Terminator.UUID.Ability.t()) :: t()
Grant Terminator.UUID.Ability
to a role.
examples
Examples
Function accepts Terminator.UUID.Ability
grant.
Function is merging existing grants with the new ones, so calling grant with same
grants will not duplicate entries in table.
To grant particular ability to a role
iex> Terminator.UUID.Performer.grant(%Terminator.UUID.Role{id: 1}, %Terminator.UUID.Ability{identifier: "manage"})
@spec revoke(t(), Terminator.UUID.Ability.t()) :: t()
Revoke Terminator.UUID.Ability
from a role.
examples
Examples
Function accepts Terminator.UUID.Ability
grant.
Function is directly opposite of Terminator.UUID.Role.grant/2
To revoke particular ability from a given role
iex> Terminator.UUID.Performer.revoke(%Terminator.UUID.Role{id: 1}, %Terminator.UUID.Ability{identifier: "manage"})