public static function batchAddRoute($routes) { if (!isset($routes) || empty($routes)) { return true; } foreach ($routes as $route) { if (RouteModel::isExistByRoute($route) == true) { Utils::dump('Added: ' . $route); } else { RouteModel::addOneSystemRoute($route); Utils::dump('New add: ' . $route); } } return true; }
/** * 系统内部检测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 static function deleteOneCustomRoute($id) { $data = self::getOneCustomRoute($id); if ($data['type'] == self::COL_TYPE_CUSTOM) { return RouteModel::deleteAll('id = :id', [':id' => $id]); } else { throw new JdbRbacException('You are deleting system route. It is forbidden', 40312493); } }
/** * 删除一个自定义路由 & 所有该路由的权限分配 */ public function actionDeleteOneCustomRoute() { try { $id = Yii::$app->request->post(RouteModel::COL_ID); RouteModel::checkId($id); $result = PermissionModel::deleteByRouteId($id); if (!$result) { throw new JdbRbacException('Delete permission assign fail', 50015680); } $result = RouteModel::deleteOneCustomRoute($id); if (!$result) { throw new JdbRbacException(); } $result = PermissionAssignModel::deleteByRouteId($id); return Utils::handlerForResult($result); } catch (JdbRbacException $e) { return Utils::handlerForException($e); } }