/** * 系统内部检测user_id是否可以请求当前资源节点 * * @param mixed $userId 用户ID * @return string */ public static function isAllowed($userId, $systemId = 0) { try { $userAssigns = UserAssignModel::getAllByUserId($userId); $roleIdsArray = array_column($userAssigns, UserAssignModel::COL_ROLE_ID); $roleAssigns = RoleAssignModel::getAllByRoleIdsArray($roleIdsArray); $permissionIdsArray = array_column($roleAssigns, RoleAssignModel::COL_PERMISSION_ID); $permissionAssigns = PermissionAssignModel::getAllByPermissionIdsArray($permissionIdsArray); $routeIdsArray = array_column($permissionAssigns, PermissionAssignModel::COL_ROUTE_ID); $rawRoutes = RouteModel::getAllByIdsArray($routeIdsArray); $routes = array_column($rawRoutes, RouteModel::COL_ROUTE); $currentRoute = self::getRequestRoute(); if (in_array($currentRoute, $routes)) { return true; } else { return false; } } catch (JdbRbacException $e) { return Utils::handlerForException($e); } }
/** * 删除一个权限 & 所有该权限的角色分配 */ public function actionDeleteOnePermission() { try { $id = Yii::$app->request->post(PermissionModel::COL_ID); PermissionModel::checkId($id); $result = PermissionModel::deleteOnePermission($id); if (!$result) { throw new JdbRbacException(); } $result = PermissionAssignModel::deleteBatchByPermissionId($id); return Utils::handlerForResult($result); } catch (JdbRbacException $e) { return Utils::handlerForException($e); } }
public static function deleteByRouteId($routeId) { return PermissionAssignModel::deleteAll('route_id = :rid', [':rid' => $routeId]); }