Просмотр файла vavok-1.5.3/adminpanel/users.php

Размер файла: 11.89Kb
  1. <?php
  2. // (c) vavok.net
  3. require_once"../include/startup.php";
  4.  
  5. if (!$users->is_reg() || !$users->is_administrator()) { redirect_to('./?error=noauth'); }
  6.  
  7. if (!empty($_GET['action'])) {
  8. $action = check($_GET["action"]);
  9. } else {
  10. $action = '';
  11. }
  12. if (!empty($_POST['users'])) {
  13. $user = check($_POST['users']);
  14. } elseif (!empty($_GET['users'])) {
  15. $user = check($_GET['users']);
  16. } else { $user = ''; }
  17.  
  18. $users_id = $users->getidfromnick($user);
  19.  
  20. require_once BASEDIR . "themes/" . MY_THEME . "/index.php";
  21.  
  22. if (empty($action)) {
  23. echo '<form method="post" action="users.php?action=edit">';
  24. echo $lang_admin['chooseuser'] . ':<br>';
  25. echo '<input type="text" name="users" maxlength="20" /><br><br>';
  26. echo '<input value="' . $lang_admin['showdata'] . '" type="submit" /></form><hr>';
  27. }
  28.  
  29. // change profile
  30. if ($action == "edit") {
  31.  
  32. if (!empty($user)) {
  33.  
  34. $userexists = $db->get_data('vavok_users', "name='{$user}'");
  35.  
  36. if (!empty($userexists['name'])) {
  37.  
  38. $userx_id = $users->getidfromnick($user);
  39. $about_userx = $db->get_data('vavok_about', "uid='" . $userx_id . "'", 'city, about, email, site, rname');
  40. $userx_profil = $db->get_data('vavok_profil', "uid='" . $userx_id . "'", 'perstat, regdate, subscri, regche, allban, lastvst');
  41. $show_userx = $db->get_data('vavok_users', "id='" . $userx_id . "'", 'perm, browsers, banned, ipadd');
  42. if (!empty($userx_id)) {
  43.  
  44. echo '<img src="../images/img/profiles.gif" alt=""> ' . $lang_admin['usrprofile'] . ' ' . $user . '<br>';
  45.  
  46. if ($users->show_username() != $config["adminNick"] && $user == $config["adminNick"]) {
  47. echo '<br>' . $lang_admin['noauthtoedit'] . '!<br>';
  48. require_once BASEDIR . "themes/" . MY_THEME . "/foot.php";
  49. exit;
  50. }
  51.  
  52. if (($users->show_username() != $config["adminNick"]) && ($show_userx['perm'] == 101 || $show_userx['perm'] == 102 || $show_userx['perm'] == 103 || $show_userx['perm'] == 105) && $users->show_username() != $user) {
  53. echo '<br>' . $lang_admin['noauthtoban'] . '!<br>';
  54. require_once BASEDIR . "themes/" . MY_THEME . "/foot.php";
  55. exit;
  56. }
  57. $casenick = strcasecmp($user, $users->show_username());
  58. if ($casenick == 0) {
  59. echo '<b><font color="red">' . $lang_admin['myprofile'] . '!</font></b><br><br>';
  60. }
  61.  
  62. echo '<form method="post" action="users.php?action=upgrade&amp;users=' . $user . '">';
  63.  
  64. $userx_access = (int)$show_userx['perm'];
  65.  
  66. if ($_SESSION['permissions'] == 101 && $users->show_username() == $config["adminNick"]) {
  67. $array_dostup = array(101 => "" . $lang_home['access101'] . "", 102 => "" . $lang_home['access102'] . "", 103 => "" . $lang_home['access103'] . "", 105 => "" . $lang_home['access105'] . "", 106 => "" . $lang_home['access106'] . "", 107 => "" . $lang_home['access107'] . "");
  68. if ($userx_access == "0" || empty($userx_access)) {
  69. $userx_access = "107";
  70. }
  71.  
  72. echo $lang_admin['accesslevel'] . ':<br>';
  73. echo '<select name="udd7"><option value="' . $userx_access . '">' . $array_dostup[$userx_access] . '</option>';
  74.  
  75. foreach($array_dostup as $k => $v) {
  76. if ($k != $userx_access) {
  77. echo '<option value="' . $k . '">' . $v . '</option>';
  78. }
  79. }
  80. echo '</select><br>';
  81. }
  82.  
  83. // website permitions for various sections
  84. if (file_exists('specperm.php')) {
  85. echo '<a href="specperm.php?users=' . $userx_id . '" class="btn btn-outline-primary sitelink">Special permitions</a><br />';
  86. }
  87.  
  88. echo $lang_admin['newpassinfo'] . ':<br><input name="udd1" /><br>';
  89. echo $lang_admin['city'] . ':<br><input name="udd2" value="' . $about_userx['city'] . '" /><br>';
  90. echo $lang_admin['aboutyou'] . ':<br><input name="udd3" value="' . $about_userx['about'] . '" /><br>';
  91. echo 'Email:<br><input name="udd4" value="' . $about_userx['email'] . '" /><br>';
  92. echo $lang_admin['site'] . ':<br><input name="udd5" value="' . $about_userx['site'] . '" /><br>';
  93. // echo $lang_admin['regdate'] . ':<br><input name="udd6" value="' . date_fixed(check($userx_profil[1]), "d.m.Y") . '" /><br>';
  94. echo $lang_admin['browser'] . ':<br><input name="udd13" value="' . $show_userx['browsers'] . '" /><br>';
  95. echo $lang_admin['name'] . ':<br><input name="udd29" value="' . $about_userx['rname'] . '" /><br>';
  96. echo $lang_admin['perstatus'] . ':<br><input name="udd40" value="' . $userx_profil['perstat'] . '" /><br>';
  97.  
  98. echo $lang_admin['sitenews'] . ': ';
  99. if ($userx_profil['subscri'] == "1") {
  100. echo '<b>' . $lang_admin['subscribed'] . '</b><br>';
  101. } else {
  102. echo '<b>' . $lang_admin['notsubed'] . '</b><br>';
  103. }
  104. if ($show_userx['banned'] == "1") {
  105. echo '<font color="#FF0000"><b>' . $lang_admin['confban'] . '</b></font><br>';
  106. }
  107. if ($userx_profil['regche'] == "1") {
  108. echo '<font color="#FF0000"><b>' . $lang_admin['notactivated'] . '</b></font><br>';
  109. }
  110. echo '' . $lang_admin['numbbans'] . ': <b>' . (int)$userx_profil['allban'] . '</b><br>';
  111. echo $lang_admin['lastvst'] . ': <b>' . date_fixed($userx_profil['lastvst'], 'j.m.Y. / H:i') . '</b><br>';
  112. echo 'IP: <b>' . $show_userx['ipadd'] . '</b><br>';
  113.  
  114. echo '<br><input value="' . $lang_home['save'] . '" type="submit" /></form><hr>';
  115.  
  116. if ($userx_access < 101 || $userx_access > 105) {
  117. echo '<b><a href="users.php?action=poddel&amp;users=' . $user . '" class="btn btn-outline-primary sitelink">' . $lang_admin['deluser'] . '</a></b>';
  118. }
  119. } else {
  120. echo $lang_admin['usrnoexist'] . '!';
  121. }
  122. } else {
  123. echo $lang_admin['usrnoexist'] . '!';
  124. }
  125. } else {
  126. echo $lang_admin['usrnoexist'] . '!';
  127. }
  128.  
  129. echo '<br><a href="users.php" class="btn btn-outline-primary sitelink">' . $lang_home['back'] . '</a>';
  130. }
  131.  
  132. // update changes
  133. if ($action == "upgrade") {
  134.  
  135. $udd1 = isset($_POST['udd1']) ? check($_POST['udd1']) : '';
  136. $udd2 = isset($_POST['udd2']) ? check($_POST['udd2']) : '';
  137. $udd3 = isset($_POST['udd3']) ? check($_POST['udd3']) : '';
  138. $udd4 = isset($_POST['udd4']) ? check($_POST['udd4']) : '';
  139. $udd5 = isset($_POST['udd5']) ? check($_POST['udd5']) : '';
  140. $udd6 = isset($_POST['udd6']) ? check($_POST['udd6']) : '';
  141. $udd7 = isset($_POST['udd7']) ? check($_POST['udd7']) : ''; // access level
  142. $udd8 = isset($_POST['udd8']) ? check($_POST['udd8']) : '';
  143. $udd9 = isset($_POST['udd9']) ? check($_POST['udd9']) : '';
  144. $udd10 = isset($_POST['udd10']) ? check($_POST['udd10']) : '';
  145. $udd11 = isset($_POST['udd11']) ? check($_POST['udd11']) : '';
  146. $udd12 = isset($_POST['udd12']) ? check($_POST['udd12']) : '';
  147. $udd13 = isset($_POST['udd13']) ? check($_POST['udd13']) : '';
  148. $udd29 = isset($_POST['udd29']) ? check($_POST['udd29']) : '';
  149. $udd40 = isset($_POST['udd40']) ? check($_POST['udd40']) : '';
  150. $udd43 = isset($_POST['udd43']) ? check($_POST['udd43']) : '';
  151.  
  152. if ($users->validate_email($udd4)) {
  153.  
  154. if (empty($udd5) || validateURL($udd5) === true) {
  155.  
  156. $users_id = $users->getidfromnick($user);
  157.  
  158. if (!empty($users_id)) {
  159. if (!empty($udd6)) {
  160. list($uday, $umonth, $uyear) = explode(".", $udd6);
  161. $udd6 = mktime('0', '0', '0', $umonth, $uday, $uyear);
  162. }
  163.  
  164. // update profil
  165. $userx_pass = $db->get_data('vavok_users', "id='{$users_id}'", 'pass');
  166.  
  167. if ($udd1 != "") {
  168. $newpass = $users->password_encrypt($udd1);
  169. }
  170.  
  171. if (!empty($newpass)) {
  172. $db->update('vavok_users', 'pass', no_br($newpass), "id='{$users_id}'");
  173. }
  174.  
  175. // access level
  176. if (!empty($udd7)) {
  177. $db->update('vavok_users', 'perm', (int)$udd7, "id='{$users_id}'");
  178. }
  179.  
  180. if ($udd7 == 101 || $udd7 == 102 || $udd7 == 103 || $udd7 == 105 || $udd7 == 106) {
  181.  
  182. // Insert data to database if does not exsist
  183. if ($db->count_row('specperm', "permname='adminpanel' AND uid='{$users_id}'") < 1) {
  184.  
  185. $values = array(
  186. 'permname' => 'adminpanel',
  187. 'permacc' => 'show',
  188. 'uid' => $users_id
  189. );
  190. // Insert data to database
  191. $db->insert_data('specperm', $values);
  192.  
  193. }
  194.  
  195. }
  196.  
  197.  
  198. $db->update('vavok_users', 'browsers', no_br(check($udd13)), "id='{$users_id}'");
  199.  
  200. $fields = array('city', 'about', 'email', 'site', 'rname');
  201. $values = array(no_br(check($udd2)), check($udd3), no_br(htmlspecialchars(stripslashes(strtolower($udd4)))), no_br(check($udd5)), no_br(check($udd29)));
  202. $db->update('vavok_about', $fields, $values, "uid='" . $users_id . "'");
  203. $db->update('vavok_profil', 'perstat', no_br(check($udd40)), "uid='{$users_id}'");
  204.  
  205. echo $lang_admin['usrdataupd'] . '!<br>';
  206.  
  207. if (!empty($udd1)) {
  208. echo '<font color=red>' . $lang_admin['passchanged'] . ': ' . $udd1 . '</font> <br>';
  209. }
  210. echo '<a href="users.php" class="btn btn-outline-primary sitelink">' . $lang_admin['changeotheruser'] . '</a><br>';
  211. } else {
  212. echo $lang_admin['usrnoexist'] . '!<br>';
  213. }
  214. } else {
  215. echo $lang_admin['urlnotok'] . '!<br>';
  216. }
  217. } else {
  218. echo $lang_admin['emailnotok'] . '<br>';
  219. }
  220. echo '<br><a href="users.php?action=edit&amp;users=' . $user . '" class="btn btn-outline-primary sitelink">' . $lang_home['back'] . '</a>';
  221. }
  222.  
  223. // confirm delete
  224. if ($action == "poddel") {
  225. echo $lang_admin['confusrdel'] . ' <b>' . $user . '</b>?<br><br>';
  226. echo '<b><a href="users.php?action=deluser&amp;users=' . $user . '" class="btn btn-outline-primary sitelink">' . $lang_admin['deluser'] . '</a></b>';
  227.  
  228. echo '<br><a href="users.php?action=edit&amp;users=' . $user . '" class="btn btn-outline-primary sitelink">' . $lang_home['back'] . '</a>';
  229. }
  230.  
  231. // delete user
  232. if ($action == "deluser") {
  233. if ($user != $config["adminNick"]) {
  234. $userx_id = $users->getidfromnick($user);
  235. $show_userx = $db->get_data('vavok_users', "id='" . $userx_id . "'", 'perm');
  236.  
  237. if ($show_userx['perm'] < 101 || $show_userx['perm'] > 105) {
  238. $users->delete_user($user);
  239. echo $lang_admin['usrdeleted'] . '!<br>';
  240.  
  241. echo '<br><a href="users.php" class="btn btn-outline-primary sitelink">' . $lang_admin['changeotheruser'] . '</a><br>';
  242. } else {
  243. echo $lang_admin['noaccessdel'] . '<br>';
  244. echo '<br><a href="users.php?action=edit&amp;users=' . $user . '" class="btn btn-outline-primary sitelink">' . $lang_home['back'] . '</a>';
  245. }
  246. }
  247. }
  248.  
  249. echo '<p><a href="index.php" class="btn btn-outline-primary sitelink">' . $lang_home['admpanel'] . '</a><br>';
  250. echo '<a href="../" class="btn btn-primary homepage">' . $lang_home['home'] . '</a></p>';
  251.  
  252.  
  253. require_once BASEDIR . "themes/" . MY_THEME . "/foot.php";
  254. ?>