* @return array|bool */ public function getAuthNode($uid = 0, $group = '') { if ($uid == 0 || $group == '') { $this->error = '缺少参数'; return false; } if (strpos($group, '.')) { list($module, $group) = explode('.', $group); } else { $module = Request::module(); } $map = [ 'module' => $module, 'group' => $group, 'uid' => $uid ]; return $this->where($map)->column('nid'); } /** * 检查用户的某个节点是否授权 * @param int $uid 用户id * @param string $group $group 权限分组,可以以点分开模型名称和分组名称,如user.group * @param int $node 需要检查的节点id * @author 蔡伟明 <314013107@qq.com> * @return bool */ public function checkAuthNode($uid = 0, $group = '', $node = 0) { if ($uid == 0 || $group == '' || $node == 0) { $this->error = '缺少参数'; return false; } // 获取该用户的所有授权节点 $nodes = $this->getAuthNode($uid, $group); if (!$nodes) { $this->error = '该用户没有授权任何节点'; return false; } $nodes = array_flip($nodes); if (isset($nodes[$node])) { return true; } else { $this->error = '未授权'; return false; } } }