UserModel

Whenever you’re dealing with a user in your template, you’re actually working with a UserModel object.

Simple Output #

Outputting a UserModel object without attaching a property or method will return the user’s username:

<p>Written by {{ entry.author }}</p>

User Properties #

UserModel objects have the following properties:

admin #

Whether the user is an admin.

dateCreated #

A DateTime object of the date the user was created.

dateUpdated #

A DateTime object of the date the user was last updated.

email #

The user’s email address.

fullName #

Alias of getFullName().

friendlyName #

Alias of getFriendlyName().

groups #

Alias of getGroups().

firstName #

The user’s first name.

lastName #

The user’s last name.

lastLoginDate #

A DateTime of the last time the user logged in.

name #

Alias of getName().

next #

Alias of getNext.

id #

The user’s ID.

isCurrent #

Whether this is the currently logged-in user.

photoUrl #

Alias of getPhotoUrl.

preferredLocale #

The user’s preferred locale.

prev #

Alias of getPrev.

status #

The user’s status ('active', 'locked', 'suspended', 'pending', 'archived').

username #

The user’s username.

Methods #

UserModel objects have the following methods:

can( 'permission' ) #

Returns whether the user has a given permission, either directly or via one of its groups.

{% if currentUser.can('accessCp') %}
    <a href="{{ cpUrl() }}">Control Panel</a>
{% endif %}

getFullName() #

Returns the user’s first and last name.

getFriendlyName() #

Returns the user’s first name if they’ve entered it, otherwise their username.

<p>Hello, {{ currentUser.getFriendlyName() }}</p>

getGroups() #

Returns an array of UserGroupModel objects that the user belongs to.

getName() #

Returns the user’s full name if they’ve entered it, otherwise their username.

getNext( params ) #

Returns the next user that should show up in a list based on the parameters entered. This function accepts either a craft.tags variable (sans output function), or a parameter array.

Here’s an example of the getPrev() and getNext() methods in action:

{% set params = {
    group: 'authors',
    order: 'firstName, lastName'
} %}

{% set prevAuthor = entry.getPrev(params) %}
{% set nextAuthor = entry.getNext(params) %}

{% if prevAuthor %}
    <p>Previous: <a href="/authors/{{ prevAuthor.username }}">{{ prevAuthor.name }}</a></p>
{% endif %}

{% if nextAuthor %}
    <p>Next: <a href="/authors/{{ nextAuthor.username }}">{{ nextAuthor.name }}</a></p>
{% endif %}

getPhotoUrl( size ) #

Returns a URL to the user’s photo at a given size in pixels (defaults to 100). You can also pass in "original" if you want to get a non-resized photo back.

getPrev( params ) #

Returns the previous user that would have shown up in a list based on the parameters entered. This function accepts either a craft.tags variable (sans output function), or a parameter array.

Here’s an example of the getPrev() and getNext() methods in action:

{% set params = {
    group: 'authors',
    order: 'firstName, lastName'
} %}

{% set prevAuthor = entry.getPrev(params) %}
{% set nextAuthor = entry.getNext(params) %}

{% if prevAuthor %}
    <p>Previous: <a href="/authors/{{ prevAuthor.username }}">{{ prevAuthor.name }}</a></p>
{% endif %}

{% if nextAuthor %}
    <p>Next: <a href="/authors/{{ nextAuthor.username }}">{{ nextAuthor.name }}</a></p>
{% endif %}

isInGroup( group ) #

Returns whether the user belongs to a given group. This method accepts a UserGroupModel instance, a group ID, or a group handle (string).