55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | ||
| namespace app\model;
 | ||
| 
 | ||
| use think\facade\Cache;
 | ||
| 
 | ||
| class AuthGroup extends Base
 | ||
| {
 | ||
|     public static function updateRules($groupId, $rules)
 | ||
|     {
 | ||
|         $rules = implode(',', $rules);
 | ||
|         $data = ['rules' => $rules];
 | ||
|         self::updateById($groupId, $data);
 | ||
|         Member::where('group_id', $groupId)
 | ||
|         ->update($data);
 | ||
|     }
 | ||
|     
 | ||
|     //根据ID获取角色列表,ID为1是超级管理员 
 | ||
|     public static function getListById($groupId = 1)
 | ||
|     {
 | ||
|         if($groupId < 1){
 | ||
|             return [];
 | ||
|         }
 | ||
|         $group = self::getById($groupId);
 | ||
|         if(empty($group)){
 | ||
|             return [];
 | ||
|         }
 | ||
|         if($groupId == 1){
 | ||
|             return self::select()
 | ||
|             ->toArray();
 | ||
|         }else{
 | ||
|             return self::where('id','<>','1')
 | ||
|             ->select()
 | ||
|             ->toArray();
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * 重置角色权限缓存
 | ||
|      * @param int $groupId 指定重置的角色ID,若不指定则重置所有角色
 | ||
|      */
 | ||
|     public static function resetGroupRulesCache($groupId = 0)
 | ||
|     {
 | ||
|         if(is_numeric($groupId) && $groupId > 0) {
 | ||
|             Cache::set('group_rules_'.$groupId, null);
 | ||
|             Cache::set('rule_names_'.$groupId, null);
 | ||
|         } else {
 | ||
|             $groupIds = self::column('id');
 | ||
|             foreach ($groupIds as $id){
 | ||
|                 Cache::set('group_rules_'.$id, null);
 | ||
|                 Cache::set('rule_names_'.$id, null);
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
| }
 |