$user->hasPermission() method

Does the user have the given permission?

  • Optionally accepts a Page or Template context for the permission.
  • This method accounts for the user's permissions across all their roles.

Example

if($user->hasPermission('page-publish')) {
  // user has the page-publish permission in one of their roles
}
if($user->hasPermission('page-publish', $page)) {
  // user has page-publish permission for $page
}

Usage

// basic usage
$bool = $user->hasPermission($name);

// usage with all arguments
$bool = $user->hasPermission($name, $context = null);

Arguments

NameType(s)Description
namestring, Permission

Permission name, object or id.

context (optional)Page, Template, bool, string

Page or Template...

  • or specify boolean true to return if user has permission OR if it was added at any template
  • or specify string "templates" to return array of Template objects where user has permission

Return value

bool array


$user methods and properties

API reference based on ProcessWire core version 3.0.137

Twitter updates

  • ProcessWire 3.0.144 and 3.0.145 add improved field template context override settings and include a new Inputfields API, along with numerous other issue fixes, optimizations and improvements to the core. More
    8 November 2019
  • ProcessWire 3.0.144 core updates: Upgraded overrides section in the field editor, a new Inputfields JS API, and more— More
    1 November 2019
  • ProcessWire 3.0.143 core updates — 26 commits and 18 resolved issue reports, plus some other useful improvements and additions. More here: More
    25 October 2019

Latest news

  • ProcessWire Weekly #287
    In the 287th issue of ProcessWire Weekly we'll talk a bit about the latest core versions 3.0.144 and 3.0.145, introduce a third party module called Sanitizer EasySlugger, and publish a new #processwireworks poll. Read on!
    Weekly.pw / 9 November 2019
  • ProcessWire 3.0.145 core updates
    ProcessWire 3.0.144 and 3.0.145 add improved field template context override settings and include a new Inputfields API, along with numerous other issue fixes, optimizations and improvements to the core.
    Blog / 8 November 2019
  • 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