admingroup.class.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <?php
  2. /**
  3. * 管理员分组类
  4. *
  5. * @createtime 2018/03/01
  6. * @author 空竹
  7. * @copyright 芝麻开发(http://www.zhimawork.com)
  8. */
  9. class Admingroup {
  10. public $gid = 0; //组ID
  11. public $name = ''; //组名
  12. public $auth = ''; //组权限,示例值:7001|7002|7003,超级权限值为SUPER。
  13. /**
  14. * 构造函数
  15. *
  16. * @param $gid 管理员分组组ID
  17. *
  18. * @return
  19. */
  20. public function __construct($gid = 0) {
  21. if(!ParamCheck::is_ID($gid)) {
  22. throw new MyException('管理员组ID不合法', 901);
  23. }else{
  24. $group = self::getInfoById($gid);
  25. if($group){
  26. $this->gid = $gid;
  27. $this->auth = $group['auth'];
  28. $this->name = $group['name'];
  29. }else{
  30. throw new MyException('管理员组不存在', 902);
  31. }
  32. }
  33. }
  34. /**
  35. * 添加管理员组
  36. *
  37. * @param $name 组名
  38. */
  39. static public function add($name){
  40. if(empty($name)) throw new MyException('管理员组名不能为空', 101);
  41. //判断组名是否重复
  42. $Table_admingroup = new Table_admingroup();
  43. $g = $Table_admingroup->getInfoByName($name);
  44. if($g) throw new MyException('组名已存在', 102);
  45. $attr = array(
  46. 'name' => $name
  47. );
  48. $gid = $Table_admingroup->add($attr);
  49. if($gid){
  50. $msg = '添加管理员组('.$gid.':'.$name.')成功!';
  51. Adminlog::add($msg);
  52. return action_msg($msg, 1);
  53. }else{
  54. throw new MyException('操作失败', 103);
  55. }
  56. }
  57. /**
  58. * 修改管理员组
  59. *
  60. * @param $id 管理组ID
  61. * @param $name
  62. */
  63. static public function edit($id, $name){
  64. if($id == 1) throw new MyException('超级管理员组不能被编辑', 100);
  65. if(!ParamCheck::is_ID($id)) throw new MyException('管理员组ID不合法', 101);
  66. if(empty($name)) throw new MyException('管理员组名不能为空', 102);
  67. $attr = array(
  68. 'name' => $name
  69. );
  70. $Table_admingroup = new Table_admingroup();
  71. $rs = $Table_admingroup->edit($id, $attr);
  72. if($rs >= 0){//未做修改也算是修改成功
  73. $msg = '修改管理员组('.$id.')成功';
  74. Adminlog::add($msg);
  75. return action_msg($msg, 1);
  76. }else{
  77. throw new MyException('操作失败', 103);
  78. }
  79. }
  80. /**
  81. * 删除管理员组
  82. *
  83. * @param $gid 管理员组ID
  84. *
  85. */
  86. static public function del($gid){
  87. if($gid == 1) throw new MyException('超级管理员组不能被删除', 100);
  88. if(!ParamCheck::is_ID($gid)) throw new MyException('管理员组ID不合法', 101);
  89. //判断该组下是否有管理员
  90. if(self::getAdminCount($gid) > 0) throw new MyException('该组有管理员。请先删除或转移管理员。', 102);
  91. $Table_admingroup = new Table_admingroup();
  92. $rs = $Table_admingroup->del($gid);
  93. if($rs == 1){
  94. $msg = '删除管理员组('.$gid.')成功!';
  95. Adminlog::add($msg);
  96. return action_msg($msg, 1);//成功
  97. }else{
  98. throw new MyException('操作失败', 103);
  99. }
  100. }
  101. //获取管理员组中管理员的数量
  102. static public function getAdminCount($gid){
  103. $filter = array(
  104. 'group' => $gid
  105. );
  106. $Table_admin = new Table_admin();
  107. return $Table_admin->getList($filter, 1);
  108. }
  109. //获取管理员组列表
  110. static public function getList(){
  111. $filter = array();
  112. $Table_admingroup = new Table_admingroup();
  113. return $Table_admingroup->getList($filter);
  114. }
  115. /**
  116. * 管理员组详细信息
  117. *
  118. * @param $gid 管理组ID
  119. *
  120. */
  121. static public function getInfoById($gid){
  122. if(!ParamCheck::is_ID($gid)) throw new MyException('管理员组ID不合法', 101);
  123. $Table_admingroup = new Table_admingroup();
  124. return $Table_admingroup->getInfoById($gid);
  125. }
  126. /**
  127. * 管理员组排序
  128. *
  129. * @param $gid 管理员组ID
  130. * @param $order 顺序数值
  131. * @return
  132. */
  133. static function updateOrder($gid, $order){
  134. if($gid == 1) throw new MyException('超级管理员组不能被操作', 100);
  135. if(!ParamCheck::is_ID($gid)) throw new MyException('管理员组ID不合法', 101);
  136. if(!ParamCheck::is_ID($order)) throw new MyException('排序值必须为正整数', 103);
  137. $Table_admingroup = new Table_admingroup();
  138. $r = $Table_admingroup->updateOrder($gid, $order);
  139. if($r >= 0){
  140. return action_msg('排序成功', 1);
  141. }else{
  142. throw new MyException('操作失败', 104);
  143. }
  144. }
  145. /**
  146. * 修改管理员组权限
  147. *
  148. * @param $gid 管理员组ID
  149. * @param $auth 权限字符串
  150. */
  151. static public function updateAuth($gid, $auth){
  152. if($gid == 1) throw new MyException('超级管理员组不能被修改权限', 100);
  153. if(!ParamCheck::is_ID($gid)) throw new MyException('管理员组ID不合法', 101);
  154. //if(empty($auth)) throw new MyException('权限不能为空', 102);
  155. $Table_admingroup = new Table_admingroup();
  156. $rs = $Table_admingroup->updateAuth($gid, $auth);
  157. if($rs >= 0){
  158. $msg = '修改管理员组('.$gid.')权限成功!';
  159. Adminlog::add($msg);
  160. return action_msg($msg, 1);
  161. }else{
  162. throw new MyException('操作失败', 103);
  163. }
  164. }
  165. //获得管理员组权限
  166. public function getAuth(){
  167. return $this->auth;
  168. }
  169. //获得管理员组名称
  170. public function getName(){
  171. return $this->name;
  172. }
  173. }
  174. ?>