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();

Twitter updates

  • Weekly update, July 29: Continuing upgrades to ProcessWire’s comments system and FormBuilder, along with a working example—More
    29 July 2022
  • Weekly update for July 22– Looking back at what web development was like in the year 2000. Plus some more discussion on the path from CKEditor 4 to CkEditor 5 in ProcessWire: More
    22 July 2022
  • ProcessWire 3.0.203 core updates: new support for custom fields on comments and more— More
    15 July 2022

Latest news

  • ProcessWire Weekly #429
    In the 429th issue of ProcessWire Weekly we'll check out the latest core updates, introduce a new third party module, and more. Read on!
    Weekly.pw / 30 July 2022
  • Debugging tools built into ProcessWire
    ProcessWire's core comes with a lot of helpful debugging tools and capabilities built-in. In this post we'll cover some of these useful tools and how to use them.
    Blog / 1 July 2022
  • Subscribe to weekly ProcessWire news

“We were really happy to build our new portfolio website on ProcessWire! We wanted something that gave us plenty of control on the back-end, without any bloat on the front end - just a nice, easy to access API for all our content that left us free to design and build however we liked.” —Castus, web design agency in Sheffield, UK