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);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |