role_op.class.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. //定义在后台
  4. define('IN_ADMIN',true);
  5. class role_op {
  6. public function __construct() {
  7. $this->db = pc_base::load_model('admin_role_model');
  8. $this->priv_db = pc_base::load_model('admin_role_priv_model');
  9. }
  10. /**
  11. * 获取角色中文名称
  12. * @param int $roleid 角色ID
  13. */
  14. public function get_rolename($roleid) {
  15. $roleid = intval($roleid);
  16. $search_field = '`roleid`,`rolename`';
  17. $info = $this->db->get_one(array('roleid'=>$roleid),$search_field);
  18. return $info;
  19. }
  20. /**
  21. * 检查角色名称重复
  22. * @param $name 角色组名称
  23. */
  24. public function checkname($name) {
  25. $info = $this->db->get_one(array('rolename'=>$name),'roleid');
  26. if($info[roleid]){
  27. return true;
  28. }
  29. return false;
  30. }
  31. /**
  32. * 获取菜单表信息
  33. * @param int $menuid 菜单ID
  34. * @param int $menu_info 菜单数据
  35. */
  36. public function get_menuinfo($menuid,$menu_info) {
  37. $menuid = intval($menuid);
  38. unset($menu_info[$menuid][id]);
  39. return $menu_info[$menuid];
  40. }
  41. /**
  42. * 检查指定菜单是否有权限
  43. * @param array $data menu表中数组
  44. * @param int $roleid 需要检查的角色ID
  45. */
  46. public function is_checked($data,$roleid,$siteid,$priv_data) {
  47. $priv_arr = array('m','c','a','data');
  48. if($data['m'] == '') return false;
  49. foreach($data as $key=>$value){
  50. if(!in_array($key,$priv_arr)) unset($data[$key]);
  51. }
  52. $data['roleid'] = $roleid;
  53. $data['siteid'] = $siteid;
  54. $info = in_array($data, $priv_data);
  55. if($info){
  56. return true;
  57. } else {
  58. return false;
  59. }
  60. }
  61. /**
  62. * 是否为设置状态
  63. */
  64. public function is_setting($siteid,$roleid) {
  65. $siteid = intval($siteid);
  66. $roleid = intval($roleid);
  67. $sqls = "`siteid`='$siteid' AND `roleid` = '$roleid' AND `m` != ''";
  68. $result = $this->priv_db->get_one($sqls);
  69. return $result ? true : false;
  70. }
  71. /**
  72. * 获取菜单深度
  73. * @param $id
  74. * @param $array
  75. * @param $i
  76. */
  77. public function get_level($id,$array=array(),$i=0) {
  78. foreach($array as $n=>$value){
  79. if($value['id'] == $id)
  80. {
  81. if($value['parentid']== '0') return $i;
  82. $i++;
  83. return $this->get_level($value['parentid'],$array,$i);
  84. }
  85. }
  86. }
  87. }
  88. ?>