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).