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