YaWK  24.1
Yet another WebKit
users.php
Go to the documentation of this file.
1 <?php
2 
3 use YAWK\alert;
4 use YAWK\backend;
5 use YAWK\db;
6 use YAWK\language;
7 use YAWK\user;
8 
9 /** @var $db db */
10 /** @var $lang language */
11 
12 if (!isset($user))
13 { // generate new user object
14  $user = new user($db);
15 }
16 // TOGGLE USER
17 if (isset($_GET['toggle']) && $_GET['toggle'] === "1")
18 {
19  if (isset($_GET['blocked']))
20  { // set user obj property
21  $user->blocked = $_GET['blocked'];
22  }
23  if (isset($_GET['uid']))
24  { // set user id
25  $user->id = $_GET['uid'];
26  }
27  if ($user->blocked === '1')
28  { // user is not blocked
29  $user->blocked = 0;
30  $color = "success";
31  $status = "$lang[ACTIVE]";
32  }
33  else
34  { // set user status to blocked
35  $user->blocked = 1;
36  $color = "danger";
37  $status = "$lang[BLOCKED]";
38  }
39  $user->username = user::getUserNameFromID($db, $user->id);
40 
41  // now toggle user status
42  if($user->toggleOffline($db, $user->id, $user->blocked))
43  { // successful
44  print alert::draw("$color", "$user->username $status", "$lang[USER] <b>$user->username</b> $lang[IS] $lang[NOW] $status", "", 1800);
45  }
46  else
47  { // throw error
48  print alert::draw("danger", "$lang[ERROR]", "$lang[USER] $lang[TOGGLE_FAILED]", "page=users", 5800);
49  }
50 }
51 
52 // DELETE USER
53 if (isset($_GET['delete']))
54 {
55  if($_GET['delete'] === "true")
56  { // check if user is set
57  if (isset($_GET['user']))
58  { // username is set, check forbidden names
59  if ($_GET['user'] === 'admin' OR $_GET['user'] === 'root' OR $_GET['user'] === 'administrator')
60  { // throw forbidden user deletion warning
61  print alert::draw("danger", "$lang[WARNING]", "$lang[NOT_DELETEABLE]", "", 10000);
62  }
63  // delete user
64  if($user->delete($db, $_GET['user']))
65  { // success
66  print alert::draw("success", "$lang[SUCCESS]", "$lang[USER] <strong>".$_GET['user']."</strong> $lang[DELETED]", "", 800);
67  }
68  else
69  { // throw error
70  print alert::draw("danger", "$lang[ERROR]", "$lang[USER] <strong>".$_GET['user']."</strong> $lang[NOT] $lang[DELETED]", "", 5800);
71  }
72  }
73  // draw success or error message
74  }
75 }
76 ?>
77 <script type="text/javascript">
78  $(document).ready(function() {
79  $('#table-sort').dataTable( {
80  "bPaginate": false,
81  "bLengthChange": false,
82  "bFilter": true,
83  "bSort": true,
84  "bInfo": true,
85  "bAutoWidth": false
86  } );
87  } );
88 </script>
89 <?php
90 
91 // TEMPLATE WRAPPER - HEADER & breadcrumbs
92 echo "
93  <!-- Content Wrapper. Contains page content -->
94  <div class=\"content-wrapper\" id=\"content-FX\">
95  <!-- Content Header (Page header) -->
96  <section class=\"content-header\">";
97 // draw Title on top
98 echo backend::getTitle($lang['USERS'], $lang['USERS_SUBTEXT']);
99 echo"<ol class=\"breadcrumb\">
100  <li><a href=\"index.php\" title=\"$lang[DASHBOARD]\"><i class=\"fa fa-dashboard\"></i> $lang[DASHBOARD]</a></li>
101  <li><a href=\"index.php?page=users\" class=\"active\" title=\"$lang[USERS]\"> $lang[USERS]</a></li>
102  </ol>
103  </section>
104  <!-- Main content -->
105  <section class=\"content\">";
106 /* page content start here */
107 // \YAWK\template::checkWrapper($lang, "USERS", "USERS_SUBTEXT");
108 ?>
109 <div class="box box-default">
110  <div class="box-body">
111 
112 <!-- btn add user -->
113 <a class="btn btn-success pull-right" href="index.php?page=user-new">
114 <i class="glyphicon glyphicon-plus"></i> &nbsp;<?php print $lang['USER+']; ?></a>
115 <!-- btn group settings -->
116 <a class="btn btn-default pull-right" href="index.php?page=user-groups">
117 <i class="fa fa-users"></i> &nbsp;<?php print $lang['GROUPS_SETUP']; ?></a>
118 <!-- btn signup plugin -->
119 <a class="btn btn-default pull-right" href="index.php?plugin=signup">
120 <i class="fa fa-plug"></i> &nbsp;<?php print $lang['SIGNUP_PLUGIN']; ?></a>
121 
122 <table style="width: 100%;" cellpadding="4" cellspacing="0" border="0" class="table table-striped table-hover table-responsive" id="table-sort">
123  <thead>
124  <tr>
125  <td style="width: 3%;"><strong>&nbsp;</strong></td>
126  <td style="width: 5%;" class="text-center"><strong><?php echo $lang['ID']; ?></strong></td>
127  <td style="width: 3%;"><strong>&nbsp;</strong></td>
128  <td style="width: 29%;"><strong><?php echo $lang['NAME']; ?></strong></td>
129  <td style="width: 10%;"><strong><?php echo $lang['GROUP']; ?></strong></td>
130  <td style="width: 25%;"><strong><?php echo $lang['EMAIL']; ?></strong></td>
131  <td style="width: 10%;"><strong><?php echo $lang['LAST_ONLINE']; ?></strong></td>
132  <td style="width: 5%;" class="text-center"><strong><?php echo $lang['LOGINS']; ?></strong></td>
133  <td style="width: 10%;" class="text-center"><strong><?php echo $lang['ACTIONS']; ?></strong></td>
134  </tr>
135  </thead>
136  <tbody>
137  <?php
138  /* get all users */
139  $rows = $user->getUserArray($db);
140  foreach ($rows AS $row) {
141 
142  if ($row['blocked'] === '0')
143  {
144  $pub = "success"; $pubtext="$lang[ACTIVE]";
145  }
146  else {
147  $pub = "danger"; $pubtext = "$lang[BLOCKED]";
148  }
149 
150  $userpic = user::getUserImage("backend", $row['username'], "img-circle", 25, 25);
151 
152  echo "<tr>
153  <td class=\"text-center\">
154  <a title=\"toggle&nbsp;status\" href=\"index.php?page=users&toggle=1&blocked=".$row['blocked']."&uid=".$row['id']."&user=".$row['username']."\">
155  <span class=\"label label-$pub\">$pubtext</span></a>&nbsp;
156  </td>
157  <td class=\"text-center\">".$row['id']."</td>
158  <td>$userpic</td>
159  <td><a title=\"".$row['username']."\" href=\"index.php?page=user-edit&user=".$row['username']."\">
160  <div style=\"width: 100%\">".$row['username']."</div></a></td>
161  <td>".$row['gid']."</td>
162  <td><a title=\"send Email\" href=\"index.php?page=email-new&user=".$row['username']."\">".$row['email']."</a></td>
163  <td>".$row['date_lastlogin']."</td>
164  <td class=\"text-center\"><a href=\"index.php?page=logins&user=".$row['username']."\" target=\"_self\" title=\"$lang[SHOW_LOGINS_OF]".$row['username']."\">".$row['login_count']."</a></td>
165 
166  <td class=\"text-center\">
167  <a class=\"fa fa-envelope-o\" title=\"send Email\" href=\"index.php?page=email-new&user=".$row['username']."\"></a>
168  </a>&nbsp;
169  <a class=\"fa fa-edit\" title=\"edit: ".$row['username']."\" href=\"index.php?page=user-edit&user=".$row['username']."\"></a>&nbsp;
170 
171  <a class=\"fa fa-trash-o\" role=\"dialog\" data-confirm=\"Den User &laquo;$row[username]&raquo; wirklich l&ouml;schen?\"
172  title=\"$lang[DELETE]\" href=\"index.php?page=users&del=1&user=$row[username]&gid=$row[gid]&uid=$row[id]&delete=true\">
173  </a>
174  </td>
175  </tr>";
176  }
177  ?>
178  </tbody>
179 </table>
180 
181  </div>
182 </div>
Throws a fancy Bootstrap Alert (success, info, warning or danger)
Definition: alert.php:19
Backend class serves a few useful functions for the admin backend.
Definition: backend.php:27
Mysqli database class; returns db connection object.
Definition: db.php:16
The language class - support multilingual backend.
Definition: language.php:17
The default user class. Provide all functions to handle the user object.
Definition: user.php:17
function a
Definition: browser.js:14
type
Definition: menu-new.php:35
print $_GET['id']
Definition: page-edit.php:357
function i(e, t)
Definition: plyr.js:1
<!-- backend language -->< h3 >< i class="fa fa-language"></i > & nbsp
print $lang['USER+']
Definition: users.php:98
$rows
Definition: users.php:139
document ready(function() { $('a[data-confirm]').click(function(ev) { modal='#dataConfirmModal';var href=$(this).attr('href');var title=$(this).attr('title');var icon=$(this).attr('data-icon');if(!icon) { icon='fa fa-trash-o';} if(!$(modal).length) { $('body').append('< div id="dataConfirmModal" class="modal fade" role="dialog" aria-labelledby="dataConfirmLabel" aria-hidden="true">< div class="modal-dialog">< div class="modal-content">< div class="modal-header">< button type="button" class="close" data-dismiss="modal" aria-hidden="true">< i class="fa fa-times"></i ></button >< br >< div class="col-md-1">< h3 class="modal-title">< i class="'+icon+'"></i ></h3 ></div >< div class="col-md-11">< h3 class="modal-title" id="dataConfirmLabel">'+title+'</h3 ></div ></h3 ></div >< div class="modal-body"></div >< div class="modal-footer">< button type="button" class="btn btn-default" data-dismiss="modal" aria-hidden="true">Abbrechen</button >< a type="button" class="btn btn-danger" id="dataConfirmOK">< i class="'+icon+'"></i > L &ouml;schen</a ></div ></div ></div ></div >');} $(modal).find('.modal-body').text($(this).attr('data-confirm'));$('#dataConfirmOK').attr('href', href);$(modal).modal({show:true});return false;});$('#terminateUser').click(function() { var terminate=window.confirm("ACHTUNG!\nDas wird Deinen Account permanent deaktivieren.\n"+"Bist Du Dir sicher, dass Du das tun willst?");if(terminate===true) { var terminateUser=window.confirm("Bist Du Dir wirklich ganz sicher?\n"+"Diese Aktion kann nicht rueckgaengig gemacht werden.");if(terminateUser===true) { $.get('system/templates/YaWK-bootstrap3/js/terminate-user.php', function(data) { if(data==="true") { setTimeout("window.location='logout.html'", 0);} else { alert("Fehler: "+data);} });} } });function dismissNotifications() { $.ajax({ url:'js/dismiss-notifications.php', type:'POST', success:function(data) { if(!data) { alert('Something went wrong!');return false;} } });$("#bell-label").fadeOut();$('#notification-header').html('You have 0 notifications');$('#notification-menu').fadeOut();} $("#dismiss").click(function() { dismissNotifications();});function disableButtons(delay) { $('#loginButton').removeClass().addClass('btn btn-success disabled').attr('id', 'LOGIN_FORBIDDEN');$('#resetPasswordButton').removeClass().addClass('btn btn-danger disabled');setTimeout(function() { $('#LOGIN_FORBIDDEN').attr('id', 'loginButton').removeClass().addClass('btn btn-success');$('#resetPasswordButton').removeClass().addClass('btn btn-danger');}, delay);} $("#loginButton").click(function(){ if($('#loginButton').length > 0) { if($('#loginButton').hasClass('btn') &&$('#loginButton').hasClass('btn-success') &&$('#loginButton').hasClass('disabled')) { } else { $("#loginForm").submit();disableButtons(10000);} } else if($('#LOGIN_FORBIDDEN').length > 0) { if($('#LOGIN_FORBIDDEN').hasClass('btn') &&$('#LOGIN_FORBIDDEN').hasClass('btn-success') &&$('#LOGIN_FORBIDDEN').hasClass('disabled')) { } else { } } });$("#blockedBtn").hover(function() { $("#blockedBtn").hide();$("#askBtn").fadeIn(820);});})