Completed
Push — master ( 7bd8ab...35dbd2 )
by
unknown
19s
created

FlipAdminPage::isAdmin()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
require_once('class.FlipPage.php');
3
4
class FlipAdminPage extends FlipPage
5
{
6
    public $user;
7
    public $is_admin = false;
8
9
    public function __construct($title, $adminGroup = 'LDAPAdmins')
10
    {
11
        $this->user = FlipSession::getUser();
12
        $this->is_admin = $this->userIsAdmin($adminGroup);
13
        parent::__construct($title);
14
        $adminCSS = '/css/common/admin.min.css';
15
        if($this->minified !== 'min')
16
        {
17
            $adminCSS = '/css/common/admin.css';
18
        }
19
        $this->addCSSByURI($adminCSS);
20
        $this->addWellKnownJS(JS_METISMENU, false);
21
    }
22
23
    protected function userIsAdmin($adminGroup)
24
    {
25
        if($this->user === false || $this->user === null)
26
        {
27
            return false;
28
        }
29
        return $this->user->isInGroupNamed($adminGroup);
30
    }
31
32
    protected function addAllLinks()
33
    {
34
        if($this->user === false || $this->user === null)
35
        {
36
            $this->addLink('<i class="fa fa-sign-in"></i> Login', $this->loginUrl);
37
        }
38
        else
39
        {
40
            $this->add_links();
41
            $this->addLink('<i class="fa fa-sign-out"></i> Logout', $this->logoutUrl);
42
        }
43
    }
44
45
    protected function getDropdown($link, $name)
46
    {
47
        $ret  = '<li>';
48
        $href = $this->getHrefForDropdown($link);
49
        $ret .= $this->createLink($name.' <i class="fa fa-arrow-right"></i>', $href);
50
        $ret .= '<ul>';
51
        $subNames = array_keys($link);
52
        foreach($subNames as $subName)
53
        {
54
            $ret .= $this->getLinkByName($subName, $link);
55
        }
56
        $ret .= '</ul></li>';
57
        return $ret;
58
    }
59
60
    protected function addHeader()
61
    {
62
        $sites   = $this->getSiteLinksForHeader();
63
        $sideNav = $this->getLinksMenus();
64
        $log     = '<a href="https://profiles.burningflipside.com/logout.php"><i class="fa fa-sign-out"></i></a>';
65
        if($this->user === false || $this->user === null)
66
        {
67
            $log = '<a href="https://profiles.burningflipside.com/login.php?return='.$this->currentUrl().'"><i class="fa fa-sign-in"></i></a>';
68
        }
69
        $this->body = '<div id="wrapper">
70
                  <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
71
                      <div class="navbar-header">
72
                          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
73
                              <span class="sr-only">Toggle Navigation</span>
74
                              <span class="icon-bar"></span>
75
                              <span class="icon-bar"></span>
76
                              <span class="icon-bar"></span>
77
                          </button>
78
                          <a class="navbar-brand" href="index.php">'.$this->title.'</a>
79
                      </div>
80
                      <ul class="nav navbar-top-links navbar-right">
81
                          <a href="..">
82
                              <i class="fa fa-home"></i>
83
                          </a>
84
                          &nbsp;&nbsp;'.$log.'
85
                          <li class="dropdown">
86
                              <a href="#" class="dropdown-toggle" data-toggle="dropdown">
87
                                  <i class="fa fa-link"></i>
88
                                  <b class="caret"></b>
89
                              </a>
90
                              <ul class="dropdown-menu dropdown-sites">
91
                                  '.$sites.'
92
                              </ul>
93
                          </li>
94
                      </ul>
95
                      <div class="navbar-default sidebar" role="navigation">
96
                          <div class="sidebar-nav navbar-collapse" style="height: 1px;">
97
                              <ul class="nav" id="side-menu">
98
                                  '.$sideNav.'
99
                              </ul>
100
                          </div>
101
                      </div>
102
                  </nav>
103
                  <div id="page-wrapper" style="min-height: 538px;">'.$this->body.'</div></div>';
104
    }
105
106
    const CARD_GREEN  = 'panel-green';
107
    const CARD_BLUE   = 'panel-primary';
108
    const CARD_YELLOW = 'panel-yellow';
109
    const CARD_RED    = 'panel-red';
110
111
    public function add_card($iconName, $bigText, $littleText, $link = '#', $color = self::CARD_BLUE)
112
    {
113
        $card = '<div class="col-lg-3 col-md-6">
114
                     <div class="panel '.$color.'">
115
                         <div class="panel-heading">
116
                             <div class="row">
117
                                 <div class="col-xs-3">
118
                                     <i class="fa '.$iconName.'" style="font-size: 5em;"></i>
119
                                 </div>
120
                                 <div class="col-xs-9 text-right">
121
                                     <div style="font-size: 40px;">'.$bigText.'</div>
122
                                     <div>'.$littleText.'</div>
123
                                 </div>
124
                             </div>
125
                         </div>
126
                         <a href="'.$link.'">
127
                         <div class="panel-footer">
128
                             <span class="pull-left">View Details</span>
129
                             <span class="pull-right fa fa-arrow-circle-right"></span>
130
                             <div class="clearfix"></div>
131
                         </div>
132
                         </a>
133
                     </div>
134
                 </div>';
135
        $this->body .= $card;
136
    }
137
138
    public function isAdmin()
139
    {
140
        return $this->is_admin;
141
    }
142
143
    public function printPage($header = true)
144
    {
145
        if($this->user === false || $this->user === null)
146
        {
147
            $this->body = '
148
        <div class="row">
149
            <div class="col-lg-12">
150
                <h1 class="page-header">You must <a href="'.$this->loginUrl.'?return='.$this->currentUrl().'">log in <span class="glyphicon glyphicon-log-in"></span></a> to access the '.$this->title.' Admin system!</h1>
151
            </div>
152
        </div>';
153
        }
154
        else if($this->isAdmin() === false)
155
        {
156
            $this->body = '
157
        <div class="row">
158
            <div class="col-lg-12">
159
                <h1 class="page-header">The current user does not have access rights to the '.$this->title.' Admin system!</h1>
160
            </div>
161
        </div>';
162
        }
163
        parent::printPage();
164
    }
165
}
166
/* vim: set tabstop=4 shiftwidth=4 expandtab: */
167