Dot All Lisbon – the official Craft CMS conference – is happening September 23 - 25.
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:
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() }}">Ccntrol 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.
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).