Skip to content

Commit

Permalink
ground work for #2009
Browse files Browse the repository at this point in the history
  • Loading branch information
mathieuancelin committed Oct 14, 2024
1 parent 6693ca0 commit 96cf63d
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 14 deletions.
16 changes: 8 additions & 8 deletions otoroshi/app/actions/privateapps.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ import otoroshi.utils.http.RequestImplicits._

case class PrivateAppsActionContext[A](
request: Request[A],
user: Option[PrivateAppsUser],
users: Seq[PrivateAppsUser],
globalConfig: otoroshi.models.GlobalConfig
) {
def connected: Boolean = user.isDefined
def connected: Boolean = users.nonEmpty
def from(implicit env: Env): String = request.theIpAddress
def ua: String = request.theUserAgent
}
Expand Down Expand Up @@ -47,24 +47,24 @@ class PrivateAppsAction(val parser: BodyParser[AnyContent])(implicit env: Env)
env.datastores.privateAppsUserDataStore.findById(id).flatMap {
case Some(user) =>
user.withAuthModuleConfig(a => GenericOauth2Module.handleTokenRefresh(a, user))
block(PrivateAppsActionContext(request, Some(user), globalConfig))
block(PrivateAppsActionContext(request, Seq(user), globalConfig))
case None if env.clusterConfig.mode == ClusterMode.Worker => {
if (Cluster.logger.isDebugEnabled)
Cluster.logger.debug(s"private apps session $id not found locally - from action")
env.clusterAgent.isSessionValid(id, Some(request)).flatMap {
case Some(user) =>
user.save(Duration(user.expiredAt.getMillis - System.currentTimeMillis(), TimeUnit.MILLISECONDS))
block(PrivateAppsActionContext(request, Some(user), globalConfig))
case None => block(PrivateAppsActionContext(request, None, globalConfig))
block(PrivateAppsActionContext(request, Seq(user), globalConfig))
case None => block(PrivateAppsActionContext(request, Seq.empty, globalConfig))
}
}
case None => block(PrivateAppsActionContext(request, None, globalConfig))
case None => block(PrivateAppsActionContext(request, Seq.empty, globalConfig))
}
} getOrElse {
cookieOpt match {
case None => block(PrivateAppsActionContext(request, None, globalConfig))
case None => block(PrivateAppsActionContext(request, Seq.empty, globalConfig))
case Some(cookie) =>
block(PrivateAppsActionContext(request, None, globalConfig)).fast
block(PrivateAppsActionContext(request, Seq.empty, globalConfig)).fast
.map(
_.discardingCookies(
env.removePrivateSessionCookiesWithSuffix(host, cookie.name.replace("oto-papps-", "")): _*
Expand Down
2 changes: 1 addition & 1 deletion otoroshi/app/controllers/PrivateAppsController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class PrivateAppsController(ApiAction: ApiAction, PrivateAppsAction: PrivateApps

def home =
PrivateAppsAction { ctx =>
Ok(otoroshi.views.html.privateapps.home(ctx.user, env))
Ok(otoroshi.views.html.privateapps.home(ctx.users.headOption, env))
}

def redirect =
Expand Down
10 changes: 5 additions & 5 deletions otoroshi/app/next/extensions/extension.scala
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ case class AdminExtensionPrivateAppAuthRoute(
handle: (
AdminExtensionRouterContext[AdminExtensionPrivateAppAuthRoute],
RequestHeader,
Option[PrivateAppsUser],
Seq[PrivateAppsUser],
Option[Source[ByteString, _]]
) => Future[Result]
) extends AdminExtensionRoute
Expand Down Expand Up @@ -494,10 +494,10 @@ class AdminExtensions(env: Env, _extensions: Seq[AdminExtension]) {
privateAppAuthOverridesRouter.find(request) match {
case Some(route) if route.adminRoute.wantsBody =>
Some(PrivateAppsAction.async(sourceBodyParser) { ctx =>
route.adminRoute.handle(route, ctx.request, ctx.user, ctx.request.body.some)
route.adminRoute.handle(route, ctx.request, ctx.users, ctx.request.body.some)
})
case Some(route) if !route.adminRoute.wantsBody =>
Some(PrivateAppsAction.async { ctx => route.adminRoute.handle(route, ctx.request, ctx.user, None) })
Some(PrivateAppsAction.async { ctx => route.adminRoute.handle(route, ctx.request, ctx.users, None) })
case None => f
}
} else if (hasExtensions && request.path.startsWith("/extensions/assets/") && assets.nonEmpty) {
Expand All @@ -517,10 +517,10 @@ class AdminExtensions(env: Env, _extensions: Seq[AdminExtension]) {
privateAppAuthRouter.find(request) match {
case Some(route) if route.adminRoute.wantsBody =>
Some(PrivateAppsAction.async(sourceBodyParser) { ctx =>
route.adminRoute.handle(route, ctx.request, ctx.user, ctx.request.body.some)
route.adminRoute.handle(route, ctx.request, ctx.users, ctx.request.body.some)
})
case Some(route) if !route.adminRoute.wantsBody =>
Some(PrivateAppsAction.async { ctx => route.adminRoute.handle(route, ctx.request, ctx.user, None) })
Some(PrivateAppsAction.async { ctx => route.adminRoute.handle(route, ctx.request, ctx.users, None) })
case None => f
}
} else f
Expand Down

0 comments on commit 96cf63d

Please sign in to comment.