admin.php 5.9 KB

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