From 6fe703f699782e4e144568eb8b1e688229dce104 Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Fri, 10 Mar 2017 08:13:56 -0500 Subject: [PATCH] Fix issue processwire/processwire-issues#203 update to make API-created users always have guest role --- wire/core/Users.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/wire/core/Users.php b/wire/core/Users.php index f9c76090..d55c70c6 100644 --- a/wire/core/Users.php +++ b/wire/core/Users.php @@ -139,5 +139,25 @@ class Users extends PagesType { 'pageClass' => 'User' )); } + + /** + * Hook called just before a user is saved + * + * #pw-hooker + * + * @param Page $page The user about to be saved + * @return array Optional extra data to add to pages save query. + * + */ + public function ___saveReady(Page $page) { + /** @var User $user */ + $user = $page; + if(!$user->id && $user instanceof User) { + // add guest role if user doesn't already have it + $role = $this->wire('roles')->get($this->wire('config')->guestUserRolePageID); + if($role->id && !$user->hasRole($role)) $user->addRole($role); + } + return array(); + } }