PageRenderTime 55ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/control/admin/admin.php

https://github.com/gcao/ucenter
PHP | 179 lines | 156 code | 16 blank | 7 comment | 24 complexity | 8492a81727ddf807e49bf68fe79f7d32 MD5 | raw file
  1. <?php
  2. /*
  3. [UCenter] (C)2001-2009 Comsenz Inc.
  4. This is NOT a freeware, use is subject to license terms
  5. $Id: admin.php 845 2008-12-08 05:36:51Z zhaoxiongfei $
  6. */
  7. !defined('IN_UC') && exit('Access Denied');
  8. class control extends adminbase {
  9. function __construct() {
  10. $this->control();
  11. }
  12. function control() {
  13. parent::__construct();
  14. $this->load('user');
  15. $this->check_priv();
  16. if(!$this->user['isfounder'] && !$this->user['allowadminbadword']) {
  17. $this->message('no_permission_for_this_module');
  18. }
  19. }
  20. function onls() {
  21. //include_once UC_ROOT.'view/default/admin.lang.php';
  22. $status = 0;
  23. if(!empty($_POST['addname']) && $this->submitcheck()) {
  24. $addname = getgpc('addname', 'P');
  25. $this->view->assign('addname', $addname);
  26. $uid = $this->db->result_first("SELECT uid FROM ".UC_DBTABLEPRE."members WHERE username='$addname'");
  27. if($uid) {
  28. $adminuid = $this->db->result_first("SELECT uid FROM ".UC_DBTABLEPRE."admins WHERE username='$addname'");
  29. if($adminuid) {
  30. $status = -1;
  31. } else {
  32. $allowadminsetting = getgpc('allowadminsetting', 'P');
  33. $allowadminapp = getgpc('allowadminapp', 'P');
  34. $allowadminuser = getgpc('allowadminuser', 'P');
  35. $allowadminbadword = getgpc('allowadminbadword', 'P');
  36. $allowadmincredits = getgpc('allowadmincredits', 'P');
  37. $allowadmintag = getgpc('allowadmintag', 'P');
  38. $allowadminpm = getgpc('allowadminpm', 'P');
  39. $allowadmindomain = getgpc('allowadmindomain', 'P');
  40. $allowadmindb = getgpc('allowadmindb', 'P');
  41. $allowadminnote = getgpc('allowadminnote', 'P');
  42. $allowadmincache = getgpc('allowadmincache', 'P');
  43. $allowadminlog = getgpc('allowadminlog', 'P');
  44. $this->db->query("INSERT INTO ".UC_DBTABLEPRE."admins SET
  45. uid='$uid',
  46. username='$addname',
  47. allowadminsetting='$allowadminsetting',
  48. allowadminapp='$allowadminapp',
  49. allowadminuser='$allowadminuser',
  50. allowadminbadword='$allowadminbadword',
  51. allowadmincredits='$allowadmincredits',
  52. allowadmintag='$allowadmintag',
  53. allowadminpm='$allowadminpm',
  54. allowadmindomain='$allowadmindomain',
  55. allowadmindb='$allowadmindb',
  56. allowadminnote='$allowadminnote',
  57. allowadmincache='$allowadmincache',
  58. allowadminlog='$allowadminlog'");
  59. $insertid = $this->db->insert_id();
  60. if($insertid) {
  61. $this->writelog('admin_add', 'username='.htmlspecialchars($addname));
  62. $status = 1;
  63. } else {
  64. $status = -2;
  65. }
  66. }
  67. } else {
  68. $status = -3;
  69. }
  70. }
  71. if(!empty($_POST['editpwsubmit']) && $this->submitcheck()) {
  72. $oldpw = getgpc('oldpw', 'P');
  73. $newpw = getgpc('newpw', 'P');
  74. $newpw2 = getgpc('newpw2', 'P');
  75. if(UC_FOUNDERPW == md5(md5($oldpw).UC_FOUNDERSALT)) {
  76. $configfile = UC_ROOT.'./data/config.inc.php';
  77. if(!is_writable($configfile)) {
  78. $status = -4;
  79. } else {
  80. if($newpw != $newpw2) {
  81. $status = -6;
  82. } else {
  83. $config = file_get_contents($configfile);
  84. $salt = substr(uniqid(rand()), 0, 6);
  85. $md5newpw = md5(md5($newpw).$salt);
  86. $config = preg_replace("/define\('UC_FOUNDERSALT',\s*'.*?'\);/i", "define('UC_FOUNDERSALT', '$salt');", $config);
  87. $config = preg_replace("/define\('UC_FOUNDERPW',\s*'.*?'\);/i", "define('UC_FOUNDERPW', '$md5newpw');", $config);
  88. $fp = @fopen($configfile, 'w');
  89. @fwrite($fp, $config);
  90. @fclose($fp);
  91. $status = 2;
  92. $this->writelog('admin_pw_edit');
  93. }
  94. }
  95. } else {
  96. $status = -5;
  97. }
  98. }
  99. $this->view->assign('status', $status);
  100. if(!empty($_POST['delete'])) {
  101. $uids = $this->implode(getgpc('delete', 'P'));
  102. $this->db->query("DELETE FROM ".UC_DBTABLEPRE."admins WHERE uid IN ($uids)");
  103. }
  104. $page = max(1, getgpc('page'));
  105. $ppp = 15;
  106. $totalnum = $this->db->result_first("SELECT COUNT(*) FROM ".UC_DBTABLEPRE."admins");
  107. $start = $this->page_get_start($page, $ppp, $totalnum);
  108. $userlist = $this->db->fetch_all("SELECT a.*,m.* FROM ".UC_DBTABLEPRE."admins a LEFT JOIN ".UC_DBTABLEPRE."members m USING(uid) LIMIT $start, $ppp");
  109. $multipage = $this->page($totalnum, $ppp, $page, 'admin.php?m=admin&a=admin');
  110. if($userlist) {
  111. foreach($userlist as $key => $user) {
  112. $user['regdate'] = $this->date($user['regdate']);
  113. $userlist[$key] = $user;
  114. }
  115. }
  116. $a = getgpc('a');
  117. $this->view->assign('a', $a);
  118. $this->view->assign('multipage', $multipage);
  119. $this->view->assign('userlist', $userlist);
  120. $this->view->display('admin_admin');
  121. }
  122. function onedit() {
  123. $uid = getgpc('uid');
  124. $status = 0;
  125. if($this->submitcheck()) {
  126. $allowadminsetting = getgpc('allowadminsetting', 'P');
  127. $allowadminapp = getgpc('allowadminapp', 'P');
  128. $allowadminuser = getgpc('allowadminuser', 'P');
  129. $allowadminbadword = getgpc('allowadminbadword', 'P');
  130. $allowadmintag = getgpc('allowadmintag', 'P');
  131. $allowadminpm = getgpc('allowadminpm', 'P');
  132. $allowadmincredits = getgpc('allowadmincredits', 'P');
  133. $allowadmindomain = getgpc('allowadmindomain', 'P');
  134. $allowadmindb = getgpc('allowadmindb', 'P');
  135. $allowadminnote = getgpc('allowadminnote', 'P');
  136. $allowadmincache = getgpc('allowadmincache', 'P');
  137. $allowadminlog = getgpc('allowadminlog', 'P');
  138. $this->db->query("UPDATE ".UC_DBTABLEPRE."admins SET
  139. allowadminsetting='$allowadminsetting',
  140. allowadminapp='$allowadminapp',
  141. allowadminuser='$allowadminuser',
  142. allowadminbadword='$allowadminbadword',
  143. allowadmincredits='$allowadmincredits',
  144. allowadmintag='$allowadmintag',
  145. allowadminpm='$allowadminpm',
  146. allowadmindomain='$allowadmindomain',
  147. allowadmindb='$allowadmindb',
  148. allowadminnote='$allowadminnote',
  149. allowadmincache='$allowadmincache',
  150. allowadminlog='$allowadminlog'
  151. WHERE uid='$uid'");
  152. $status = $this->db->errno() ? -1 : 1;
  153. $this->writelog('admin_priv_edit', 'username='.htmlspecialchars($admin));
  154. }
  155. $admin = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."admins WHERE uid='$uid'");
  156. $this->view->assign('uid', $uid);
  157. $this->view->assign('admin', $admin);
  158. $this->view->assign('status', $status);
  159. $this->view->display('admin_admin');
  160. }
  161. }
  162. ?>