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"})