Completed
Branch dev (1399ad)
by
unknown
60:04 queued 50:49
created

CurrentUser::setCurrentUser()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 0
dl 0
loc 10
rs 9.9332
c 0
b 0
f 0
1
<?php
2
3
namespace EventEspresso\core\domain\entities\users;
4
5
use WP_User;
6
7
/**
8
 * Class CurrentUser
9
 *
10
 * @author  Brent Christensen
11
 * @package EventEspresso\core\domain\entities\users
12
 * @since   $VID:$
13
 */
14
class CurrentUser
15
{
16
17
    /**
18
     * @var WP_User
19
     */
20
    private $current_user;
21
22
    /**
23
     * @var boolean
24
     */
25
    private $is_event_manager = false;
26
27
    /**
28
     * @var boolean
29
     */
30
    private $is_logged_in = false;
31
32
33
    /**
34
     * @var EventManagers
35
     */
36
    private $event_managers;
37
38
39
    /**
40
     * CurrentUser constructor.
41
     *
42
     * @param EventManagers $event_managers
43
     */
44
    public function __construct(EventManagers $event_managers)
45
    {
46
        $this->event_managers = $event_managers;
47
        $this->setCurrentUser();
48
    }
49
50
51
    public function setCurrentUser(): void
52
    {
53
        if (! $this->current_user instanceof WP_User) {
0 ignored issues
show
Bug introduced by
The class WP_User does not exist. Is this class maybe located in a folder that is not analyzed, or in a newer version of your dependencies than listed in your composer.lock/composer.json?
Loading history...
54
            $this->current_user = wp_get_current_user();
55
            $event_manager_roles    = array_keys($this->event_managers->roles());
56
            $current_user_roles     = $this->current_user->roles;
57
            $this->is_event_manager = ! empty(array_intersect($event_manager_roles, $current_user_roles));
58
            $this->is_logged_in     = $this->current_user->exists();
59
        }
60
    }
61
62
63
    /**
64
     * @return WP_User
65
     */
66
    public function currentUser(): ?WP_User
67
    {
68
        $this->setCurrentUser();
69
        return $this->current_user;
70
    }
71
72
73
    /**
74
     * @return bool
75
     */
76
    public function isEventManager(): bool
77
    {
78
        $this->setCurrentUser();
79
        return $this->is_event_manager;
80
    }
81
82
83
    /**
84
     * @return bool
85
     */
86
    public function isLoggedIn(): bool
87
    {
88
        $this->setCurrentUser();
89
        return $this->is_logged_in;
90
    }
91
}
92