1: <?php
2:
3: class Users extends PagesType {
4:
5: protected $currentUser = null;
6: protected $guestUser = null;
7:
8: public function setCurrentUser(User $user) {
9: if(!$user->roles->has("id=" . $this->fuel('config')->guestUserRolePageID)) {
10: $guestRole = $this->fuel('roles')->getGuestRole();
11: $user->roles->add($guestRole);
12: }
13: $this->currentUser = $user;
14: Wire::setFuel('user', $user);
15: }
16:
17: 18: 19: 20:
21: protected function loaded(Page $page) {
22: static $guestID = null;
23: if(is_null($guestID)) $guestID = $this->fuel('config')->guestUserRolePageID;
24: if(!$page->roles->has("id=$guestID")) $page->roles->add($this->fuel('roles')->getGuestRole());
25: }
26:
27: 28: 29: 30: 31: 32:
33: public function getCurrentUser() {
34: if($this->currentUser) return $this->currentUser;
35: return $this->getGuestUser();
36: }
37:
38: 39: 40: 41: 42: 43:
44: public function getGuestUser() {
45: if($this->guestUser) return $this->guestUser;
46: $this->guestUser = $this->get($this->config->guestUserPageID);
47: if(defined("PROCESSWIRE_UPGRADE") && !$this->guestUser || !$this->guestUser->id) $this->guestUser = new User();
48: return $this->guestUser;
49: }
50:
51: }
52: