AdminAction.class.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Fanwe 方维直播系统
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2011 http://www.fanwe.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: 云淡风轻(1956838968@qq.com)
  8. // +----------------------------------------------------------------------
  9. class AdminAction extends CommonAction{
  10. public function index()
  11. {
  12. $condition['is_delete'] = 0;
  13. $this->assign("default_map",$condition);
  14. parent::index();
  15. }
  16. public function add()
  17. {
  18. //输出分组列表
  19. $this->assign("role_list",M("Role")->where("is_delete = 0")->findAll());
  20. $this->display();
  21. }
  22. public function edit() {
  23. $id = intval($_REQUEST ['id']);
  24. $condition['is_delete'] = 0;
  25. $condition['id'] = $id;
  26. $vo = M(MODULE_NAME)->where($condition)->find();
  27. $this->assign ( 'vo', $vo );
  28. $this->assign("role_list",M("Role")->where("is_delete = 0")->findAll());
  29. $this->display ();
  30. }
  31. //相关操作
  32. public function set_effect()
  33. {
  34. $id = intval($_REQUEST['id']);
  35. $ajax = intval($_REQUEST['ajax']);
  36. $info = M(MODULE_NAME)->where("id=".$id)->getField("adm_name");
  37. $c_is_effect = M(MODULE_NAME)->where("id=".$id)->getField("is_effect"); //当前状态
  38. if(conf("DEFAULT_ADMIN")==$info)
  39. {
  40. $this->ajaxReturn($c_is_effect,l("DEFAULT_ADMIN_CANNOT_EFFECT"),1) ;
  41. }
  42. $n_is_effect = $c_is_effect == 0 ? 1 : 0; //需设置的状态
  43. M(MODULE_NAME)->where("id=".$id)->setField("is_effect",$n_is_effect);
  44. save_log($info.l("SET_EFFECT_".$n_is_effect),1);
  45. $this->ajaxReturn($n_is_effect,l("SET_EFFECT_".$n_is_effect),1) ;
  46. }
  47. public function insert() {
  48. B('FilterString');
  49. $data = M(MODULE_NAME)->create ();
  50. //开始验证有效性
  51. $this->assign("jumpUrl",u(MODULE_NAME."/add"));
  52. if(!check_empty($data['adm_name']))
  53. {
  54. $this->error(L("ADM_NAME_EMPTY_TIP"));
  55. }
  56. if(!check_empty($data['adm_password']))
  57. {
  58. $this->error(L("ADM_PASSWORD_EMPTY_TIP"));
  59. }
  60. if($data['role_id']==0)
  61. {
  62. $this->error(L("ROLE_EMPTY_TIP"));
  63. }
  64. if(M("Admin")->where("adm_name='".$data['adm_name']."'")->count()>0)
  65. {
  66. $this->error(L("ADMIN_EXIST_TIP"));
  67. }
  68. // 更新数据
  69. $log_info = $data['adm_name'];
  70. $data['adm_password'] = md5(trim($data['adm_password']));
  71. $list=M(MODULE_NAME)->add($data);
  72. if (false !== $list) {
  73. //成功提示
  74. save_log($log_info.L("INSERT_SUCCESS"),1);
  75. $this->success(L("INSERT_SUCCESS"));
  76. } else {
  77. //错误提示
  78. save_log($log_info.L("INSERT_FAILED"),0);
  79. $this->error(L("INSERT_FAILED"));
  80. }
  81. }
  82. public function update() {
  83. B('FilterString');
  84. $data = M(MODULE_NAME)->create ();
  85. $log_info = M(MODULE_NAME)->where("id=".intval($data['id']))->getField("adm_name");
  86. //开始验证有效性
  87. $this->assign("jumpUrl",u(MODULE_NAME."/edit",array("id"=>$data['id'])));
  88. if(!check_empty($data['adm_password']))
  89. {
  90. unset($data['adm_password']); //不更新密码
  91. }
  92. else
  93. {
  94. $data['adm_password'] = md5(trim($data['adm_password']));
  95. }
  96. if($data['role_id']==0)
  97. {
  98. $this->error(L("ROLE_EMPTY_TIP"));
  99. }
  100. if(conf("DEFAULT_ADMIN")==$log_info)
  101. {
  102. $adm_session = es_session::get(md5(conf("AUTH_KEY")));
  103. $adm_name = $adm_session['adm_name'];
  104. if($log_info!=$adm_name)
  105. $this->error(l("DEFAULT_ADMIN_CANNOT_MODIFY"));
  106. if($data['is_effect']==0)
  107. {
  108. $this->error(l("DEFAULT_ADMIN_CANNOT_EFFECT"));
  109. }
  110. }
  111. // 更新数据
  112. $list=M(MODULE_NAME)->save ($data);
  113. if (false !== $list) {
  114. //成功提示
  115. save_log($log_info.L("UPDATE_SUCCESS"),1);
  116. $this->success(L("UPDATE_SUCCESS"));
  117. } else {
  118. //错误提示
  119. save_log($log_info.L("UPDATE_FAILED"),0);
  120. $this->error(L("UPDATE_FAILED"),0,$log_info.L("UPDATE_FAILED"));
  121. }
  122. }
  123. public function delete() {
  124. //删除指定记录
  125. $ajax = intval($_REQUEST['ajax']);
  126. $id = $_REQUEST ['id'];
  127. if (isset ( $id )) {
  128. $condition = array ('id' => array ('in', explode ( ',', $id ) ) );
  129. $rel_data = M(MODULE_NAME)->where($condition)->findAll();
  130. foreach($rel_data as $data)
  131. {
  132. $info[] = $data['adm_name'];
  133. if(conf("DEFAULT_ADMIN")==$data['adm_name'])
  134. {
  135. $this->error ($data['adm_name'].l("DEFAULT_ADMIN_CANNOT_DELETE"),$ajax);
  136. }
  137. }
  138. if($info) $info = implode(",",$info);
  139. $list = M(MODULE_NAME)->where ( $condition )->setField ( 'is_delete', 1 );
  140. if ($list!==false) {
  141. save_log($info.l("DELETE_SUCCESS"),1);
  142. $this->success (l("DELETE_SUCCESS"),$ajax);
  143. } else {
  144. save_log($info.l("DELETE_FAILED"),0);
  145. $this->error (l("DELETE_FAILED"),$ajax);
  146. }
  147. } else {
  148. $this->error (l("INVALID_OPERATION"),$ajax);
  149. }
  150. }
  151. public function restore() {
  152. //删除指定记录
  153. $ajax = intval($_REQUEST['ajax']);
  154. $id = $_REQUEST ['id'];
  155. if (isset ( $id )) {
  156. $condition = array ('id' => array ('in', explode ( ',', $id ) ) );
  157. $rel_data = M(MODULE_NAME)->where($condition)->findAll();
  158. foreach($rel_data as $data)
  159. {
  160. $info[] = $data['adm_name'];
  161. }
  162. if($info) $info = implode(",",$info);
  163. $list = M(MODULE_NAME)->where ( $condition )->setField ( 'is_delete', 0 );
  164. if ($list!==false) {
  165. save_log($info.l("RESTORE_SUCCESS"),1);
  166. $this->success (l("RESTORE_SUCCESS"),$ajax);
  167. } else {
  168. save_log($info.l("RESTORE_FAILED"),0);
  169. $this->error (l("RESTORE_FAILED"),$ajax);
  170. }
  171. } else {
  172. $this->error (l("INVALID_OPERATION"),$ajax);
  173. }
  174. }
  175. public function foreverdelete() {
  176. //彻底删除指定记录
  177. $ajax = intval($_REQUEST['ajax']);
  178. $id = $_REQUEST ['id'];
  179. if (isset ( $id )) {
  180. $condition = array ('id' => array ('in', explode ( ',', $id ) ) );
  181. $rel_data = M(MODULE_NAME)->where($condition)->findAll();
  182. foreach($rel_data as $data)
  183. {
  184. $info[] = $data['adm_name'];
  185. if(conf("DEFAULT_ADMIN")==$data['adm_name'])
  186. {
  187. $this->error ($data['adm_name'].l("DEFAULT_ADMIN_CANNOT_DELETE"),$ajax);
  188. }
  189. }
  190. if($info) $info = implode(",",$info);
  191. $list = M(MODULE_NAME)->where ( $condition )->delete();
  192. if ($list!==false) {
  193. save_log($info.l("FOREVER_DELETE_SUCCESS"),1);
  194. $this->success (l("FOREVER_DELETE_SUCCESS"),$ajax);
  195. } else {
  196. save_log($info.l("FOREVER_DELETE_FAILED"),0);
  197. $this->error (l("FOREVER_DELETE_FAILED"),$ajax);
  198. }
  199. } else {
  200. $this->error (l("INVALID_OPERATION"),$ajax);
  201. }
  202. }
  203. public function set_default()
  204. {
  205. $adm_id = intval($_REQUEST['id']);
  206. $admin = M("Admin")->getById($adm_id);
  207. if($admin)
  208. {
  209. M("Conf")->where("name = 'DEFAULT_ADMIN'")->setField("value",$admin['adm_name']);
  210. //开始写入配置文件
  211. $sys_configs = M("Conf")->findAll();
  212. $config_str = "<?php\n";
  213. $config_str .= "return array(\n";
  214. foreach($sys_configs as $k=>$v)
  215. {
  216. $config_str.="'".$v['name']."'=>'".addslashes($v['value'])."',\n";
  217. }
  218. $config_str.=");\n ?>";
  219. $filename = get_real_path()."public/sys_config.php";
  220. if (!$handle = fopen($filename, 'w')) {
  221. $this->error(l("OPEN_FILE_ERROR").$filename);
  222. }
  223. if (fwrite($handle, $config_str) === FALSE) {
  224. $this->error(l("WRITE_FILE_ERROR").$filename);
  225. }
  226. fclose($handle);
  227. save_log(l("CHANGE_DEFAULT_ADMIN"),1);
  228. clear_cache();
  229. $this->success(L("SET_DEFAULT_SUCCESS"));
  230. }
  231. else
  232. {
  233. $this->error(L("NO_ADMIN"));
  234. }
  235. }
  236. }
  237. ?>