The $user API variable

The $user API variable is your connection to the current user viewing the page.

Unless a user is logged in, $user is always referring to the guest user account. If the user is logged in, then $user can be the superuser or any other user that you may have added to the system.

Technically $user is just a Page object (like $page), except that it contains fields and methods specific to a user. See the full $user API reference for full details on the available methods and properties. Note that $user is represented by the template named user, which can be viewed in Setup > Templates, after adjusting the filters to show system templates.

Examples

Depending on the context, you may have to call $user->of(false); to turn off output formatting before assigning values to a user.

Changing the user's password

<?php
$user->pass = "Bam!";
$user->save(); 

Adding a new user with the "superuser" role

<?php
$u = $users->add('gonzo');
$u->pass = "BamBam!";
$u->addRole("superuser");
$u->save();

Latest news

  • ProcessWire Weekly #558
    In the 558th issue of ProcessWire Weekly we'll check out the blog post that introduces ProcessWire 3.0.244, share some recent ProcessWire highlights, and more. Read on!
    Weekly.pw / 18 January 2025
  • ProcessWire 3.0.244 new main/master version
    ProcessWire 3.0.244 is our newest main/master/stable version. It's been more than a year in the making and is packed with tons of new features, issue fixes, optimizations and more. This post covers all the details.
    Blog / 18 January 2025
  • Subscribe to weekly ProcessWire news

“…building with ProcessWire was a breeze, I really love all the flexibility the system provides. I can’t imagine using any other CMS in the future.” —Thomas Aull