/** * 获取子级菜单 * @param $topPermId 上级权限ID * @param $myPermission 登录用户的权限列表 */ private function getSubMenu($topPermId, $myPermission) { if ($myPermission) { $subItems = Permission::getAllSub($topPermId, $myPermission); return isset($subItems['sub']) ? $subItems['sub'] : false; } return false; }
/** * 更新序号 */ public function actionSeq() { $ids = explode('_', $this->get('ids', '')); $seq = 0; foreach ($ids as $id) { if ($id != '') { Permission::updateAll(['seq' => $seq], ['id' => $id]); $seq++; } } }
/** * 获取角色对应的权限列表 */ public function actionPerm() { $data = []; $parentId = $this->get('parent', '#'); $roleId = $this->get('id', 0); $generator = new JSTreeGenerator(); if ($parentId != '#') { $len = strlen('node_'); $id = substr($parentId, $len, strlen($parentId) - $len); $data = $generator->generator(Permission::getSub($id), true); } else { $data = $generator->getDefault(); } if (!empty($roleId)) { $roles = RolePermission::findAllArray(['role_id' => $roleId]); Permission::setChecked($data, $roles); } $this->setResponseData('data', $data); }
/** * 判断用户是否有权限访问 * @param unknown $userId */ public static function hasPermission($userId, $current) { if (empty($current) || $current == '#') { return true; } $p = Permission::findOne(['link' => $current]); if ($p) { $myPermissions = self::getPermission($userId); return in_array($p['id'], $myPermissions); } else { return true; } }