Users
Users are extensible stream entries that can be associated with multiples roles
. Users have their own permissions
that merge with those inherited from the roles
they belong to.
User Fields
Below is a list of fields
in the users
stream. Fields are accessed as attributes:
$user->email;
Same goes for decorated instances in Twig:
{{ user.email }}
Fields
Key | Type | Description |
---|---|---|
|
|
The login email address. |
username |
text |
The login username. |
password |
text |
The hashed login password. |
roles |
multiple relationship |
The roles the user has. |
display_name |
text |
The publicly displayable name. |
first_name |
text |
The real first name. |
last_name |
text |
The real last name. |
permissions |
textarea |
The serialized user permission array. |
last_login_at |
datetime |
The last login datetime. |
last_activity_at |
text |
The datetime for the last action made by the user. |
ip_address |
text |
The last IP address that accessed the user account. |
Custom User Fields
Custom user fields assigned through the control panel are assigned directly to the users
stream and can be accessed directly from the user object.
$user->favorite_color;
And in Twig:
{{ user.favorite_color }}
User Interface
This section will go over the features of the \Anomaly\UsersModule\User\Contract\UserInterface
class.
UserInterface::hasRole()
The hasRole
method ensures that the user has the given role
.
Returns: boolean
Arguments
Key | Required | Type | Default | Description |
---|---|---|---|---|
$role |
true |
string |
none |
The role ID, slug, or interface. |
Example
if (auth()->user()->hasRole('admin') {
echo "User is an admin!";
}
Twig
{% if auth_user().hasRole('admin') %}
User is an admin!
{% endif %}
UserInterface::hasAnyRole()
The hasAnyRole
method ensures that the user has at least one of the provided roles.
Returns: boolean
Arguments
Key | Required | Type | Default | Description |
---|---|---|---|---|
$roles |
true |
mixed |
none |
An array of role IDs or slugs. A collection of roles can also be passed. |
Example
if (auth()->user()->hasAnyRole(['admin', 'manager'])) {
echo 'Hello ' . $user->display_name;
}
Twig
{% if auth().user().hasAnyRole(['admin', 'manager'])) %}
Hello {{ auth_user().display_name }}
{% endif %}
UserInterface::isAdmin()
The isAdmin
method returns if the user has the admin
role or not.
Returns: boolean
Example
if ($user->isAdmin()) {
echo "Hi Admin.";
}
Twig
Hello {{ auth_user().isAdmin() ? 'admin' : 'user' }}
UserInterface::hasPermission()
The hasPermission
method verifies that the user has the permission
.
Returns: boolean
Arguments
Key | Required | Type | Default | Description |
---|---|---|---|---|
$permission |
true |
string |
none |
The permission string. |
$checkRoles |
false |
boolean |
true |
Check the users roles for the permission too. |
Example
if (auth()->user()->hasPermission('vendor.module.example::example.test')) {
// So something
}
Twig
{% if auth_user().hasPermission('vendor.module.example::example.test')) %}
{# So something #}
{% endif %}
UserInterface::hasAnyPermission()
The hasAnyPermission
method verifies that the user has at least one of the given permissions.
Returns: boolean
Arguments
Key | Required | Type | Default | Description |
---|---|---|---|---|
$permissions |
true |
array |
none |
The array of permissions. |
$checkRoles |
false |
boolean |
true |
Check the users roles for the permission too. |
Example
$hasPermission = auth()->user()->hasAnyPermission(
['vendor.module.example::example.test', 'vendor.module.example::widget.example']
);
if ($hasPermission) {
// Do something
}
Twig
{% set hasPermission = auth_user().hasAnyPermission(
['vendor.module.example::example.test', 'vendor.module.example::widget.example']
) %}
{% if hasPermission %}
{# Do something #}
{% endif %}
User Presenter
This section will go over the \Anomaly\UsersModule\User\UserPresenter
class that's returned in the view layer.
UserPresenter::name()
The name
method returns the concatenated first and last name.
Returns: string
Example
$decorated->name();
Twig
Hi {{ user().name() }}
UserPresenter::gravatar()
The gravatar
method returns a Gravatar image URL for the user.
Returns: string
Arguments
Key | Required | Type | Default | Description |
---|---|---|---|---|
$parameters |
true |
array |
none |
Gravatar URL parameters. |
Example
$decorated->avatar(['d' => 'mm']);
Twig
{{ img(user().gravatar({'d': 'mm'})).class('img-rounded')|raw }}
User Repository
The \Anomaly\UsersModule\User\Contract\UserRepositoryInterface
class helps you retrieve users from the database.
UserRepositoryInterface::findByEmail()
The findByEmail
method finds a user by their email.
Returns: \Anomaly\UsersModule\User\Contract\UserInterface
or null
Arguments
Key | Required | Type | Default | Description |
---|---|---|---|---|
|
true |
string |
none |
The users email. |
Example
$user = $repository->findByEmail('[email protected]');
UserRepositoryInterface::findByUsername()
The findByUsername
method finds a user by their username.
Returns: \Anomaly\UsersModule\User\Contract\UserInterface
or null
Arguments
Key | Required | Type | Default | Description |
---|---|---|---|---|
$username |
true |
string |
none |
The username of the user. |
Example
$user = $repository->findByUsername('ryanthepyro');
UserRepositoryInterface::findByCredentials()
The findByCredentials
method finds a user by their login field and password.
Returns: \Anomaly\UsersModule\User\Contract\UserInterface
or null
Arguments
Key | Required | Type | Default | Description |
---|---|---|---|---|
$credentials |
true |
array |
none |
The credentials array containing email/username and password. |
Example
$user = $repository->findByCredentials(['email' => '[email protected]', 'password' => 'secret password']);