国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
5.6KB

  1. <?php
  2. /**
  3. * 修改管理员
  4. *
  5. * @version $id:sys_admin_user_edit.php 16:22 2010年7月20日 tianya $
  6. * @package DedeBIZ.Administrator
  7. * @copyright Copyright (c) 2022 DedeBIZ.COM
  8. * @license GNU GPL v2 (https://www.dedebiz.com/license)
  9. * @link https://www.dedebiz.com
  10. */
  11. require_once(dirname(__FILE__).'/config.php');
  12. CheckPurview('sys_User');
  13. require_once(DEDEINC.'/typelink/typelink.class.php');
  14. if (empty($dopost)) $dopost = '';
  15. $id = preg_replace("#[^0-9]#", '', $id);
  16. if ($dopost == 'saveedit') {
  17. CheckCSRF();
  18. $pwd = trim($pwd);
  19. if (preg_match("#[^0-9a-zA-Z_@!\.-]#", $userid)) {
  20. ShowMsg('账号不合法,请使用数字0-9小写a-z大写A-Z符号_@!.-', '-1');
  21. exit();
  22. }
  23. if ($pwd != '' && preg_match("#[^0-9a-zA-Z_@!\.-]#", $pwd)) {
  24. ShowMsg('密码不合法,请使用数字0-9小写a-z大写A-Z符号_@!.-', '-1');
  25. exit();
  26. }
  27. $safecodeok = substr(md5($cfg_cookie_encode.$randcode), 0, 24);
  28. if ($safecodeok != $safecode) {
  29. ShowMsg("请填写正确的验证安全码", "sys_admin_user_edit.php?id={$id}&dopost=edit");
  30. exit();
  31. }
  32. $pwdm = '';
  33. if ($pwd != '') {
  34. if (function_exists('password_hash')) {
  35. $pwdm = ",pwd='',pwd_new='".password_hash($pwd, PASSWORD_BCRYPT)."'";
  36. $pwd = ",pwd='',pwd_new='".password_hash($pwd, PASSWORD_BCRYPT)."'";
  37. } else {
  38. $pwdm = ",pwd='".md5($pwd)."'";
  39. $pwd = ",pwd='".substr(md5($pwd), 5, 20)."'";
  40. }
  41. }
  42. if (empty($typeids)) {
  43. $typeid = '';
  44. } else {
  45. $typeid = join(',', $typeids);
  46. if ($typeid == '0') $typeid = '';
  47. }
  48. $olduserid = preg_replace("/[^0-9a-zA-Z_@!\.-]/", '', $olduserid);
  49. $userid = preg_replace("/[^0-9a-zA-Z_@!\.-]/", '', $userid);
  50. $usql = '';
  51. if ($olduserid !== $userid) {
  52. $row = $dsql->GetOne("SELECT mid FROM `#@__member` WHERE userid LIKE '$userid' ");
  53. if (is_array($row)) {
  54. ShowMsg("您指定的账号{$userid}已存在,请使用别的账号", "-1");
  55. exit();
  56. }
  57. $row = $dsql->GetOne("SELECT id FROM `#@__admin` WHERE userid LIKE '$userid' ");
  58. if (is_array($row)) {
  59. ShowMsg("您指定的账号{$userid}已存在,请使用别的账号", "-1");
  60. exit();
  61. }
  62. $usql = ",userid='$userid'";
  63. }
  64. if ($id != 1) {
  65. $query = "UPDATE `#@__admin` SET uname='$uname',usertype='$usertype',tname='$tname',email='$email',typeid='$typeid' $pwd $usql WHERE id='$id'";
  66. } else {
  67. $query = "UPDATE `#@__admin` SET uname='$uname',tname='$tname',email='$email',typeid='$typeid' $pwd $usql WHERE id='$id'";
  68. }
  69. $dsql->ExecuteNoneQuery($query);
  70. $query = "UPDATE `#@__member` SET uname='$uname',email='$email'$pwdm $usql WHERE mid='$id'";
  71. $dsql->ExecuteNoneQuery($query);
  72. ShowMsg("成功修改一个账户", "sys_admin_user.php");
  73. exit();
  74. } else if ($dopost == 'delete') {
  75. if (empty($userok)) $userok = '';
  76. if ($userok != "yes") {
  77. $randcode = mt_rand(10000, 99999);
  78. $safecode = substr(md5($cfg_cookie_encode.$randcode), 0, 24);
  79. require_once(DEDEINC."/libraries/oxwindow.class.php");
  80. $wintitle = "删除指定管理员";
  81. $wecome_info = "<a href='sys_admin_user.php'>系统帐号管理</a> - 删除管理员";
  82. $win = new OxWindow();
  83. $win->Init("sys_admin_user_edit.php", "/static/web/js/admin.blank.js", "POST");
  84. $win->AddHidden("dopost", $dopost);
  85. $win->AddHidden("userok", "yes");
  86. $win->AddHidden("randcode", $randcode);
  87. $win->AddHidden("safecode", $safecode);
  88. $win->AddHidden("id", $id);
  89. $win->AddMsgItem("<tr><td>您确定要删除id".$userid."管理员吗</td></tr>");
  90. $win->AddMsgItem("<tr><td>验证安全码:<input name='safecode' type='text' id='safecode' class='admin-input-lg'>(安全码:$safecode)</td></tr>");
  91. $winform = $win->GetWindow("ok");
  92. $win->Display();
  93. exit();
  94. }
  95. $safecodeok = substr(md5($cfg_cookie_encode.$randcode), 0, 24);
  96. if ($safecodeok != $safecode) {
  97. ShowMsg("请填写正确的验证安全码", "sys_admin_user.php");
  98. exit();
  99. }
  100. //不能删除id为1的创建人帐号,不能删除自己
  101. $rs = $dsql->ExecuteNoneQuery2("DELETE FROM `#@__admin` WHERE id='$id' AND id<>1 AND id<>'".$cuserLogin->getUserID()."' ");
  102. if ($rs > 0) {
  103. //更新前台管理员信息
  104. $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET matt='0' WHERE mid='$id' LIMIT 1");
  105. ShowMsg("成功删除一个帐户", "sys_admin_user.php");
  106. } else {
  107. ShowMsg("不能删除id为1的创建人帐号,不能删除自己", "sys_admin_user.php");
  108. }
  109. exit();
  110. }
  111. //显示管理员信息
  112. $randcode = mt_rand(10000, 99999);
  113. $safecode = substr(md5($cfg_cookie_encode.$randcode), 0, 24);
  114. //递归获取分类
  115. function getTypeOptions($id=0,$sep="└")
  116. {
  117. global $dsql,$typeOptions,$typeids;
  118. $dsql->SetQuery("SELECT id,typename,ispart FROM `#@__arctype` WHERE reid={$id} AND (ispart=0 OR ispart=1 OR ispart=2) ORDER BY sortrank");
  119. $dsql->Execute($id);
  120. while ($nrow = $dsql->GetObject($id)) {
  121. $isDisabled = $nrow->ispart==2? " disabled" : "";
  122. $typeOptions .= "<option value='{$nrow->id}' ".(in_array($nrow->id, $typeids) ? ' selected' : '')."{$isDisabled}>{$sep} {$nrow->typename}</option>\r\n";
  123. getTypeOptions($nrow->id, $sep."─");
  124. }
  125. }
  126. $typeOptions = '';
  127. $row = $dsql->GetOne("SELECT * FROM `#@__admin` WHERE id='$id'");
  128. $typeids = explode(',', $row['typeid']);
  129. getTypeOptions(0);
  130. make_hash();
  131. include DedeInclude('templets/sys_admin_user_edit.htm');
  132. ?>