mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-02 11:36:05 +01:00
Fix redirect behaviour after sign in.
This commit is contained in:
@@ -107,7 +107,11 @@ abstract class ControllerBase extends ScalatraFilter
|
|||||||
if(context.loginAccount.isDefined){
|
if(context.loginAccount.isDefined){
|
||||||
org.scalatra.Unauthorized(redirect("/"))
|
org.scalatra.Unauthorized(redirect("/"))
|
||||||
} else {
|
} else {
|
||||||
org.scalatra.Unauthorized(redirect("/signin?" + currentURL))
|
if(request.getMethod.toUpperCase == "POST"){
|
||||||
|
org.scalatra.Unauthorized(redirect("/signin"))
|
||||||
|
} else {
|
||||||
|
org.scalatra.Unauthorized(redirect("/signin?redirect=" + currentURL))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
org.scalatra.Unauthorized()
|
org.scalatra.Unauthorized()
|
||||||
@@ -126,6 +130,14 @@ abstract class ControllerBase extends ScalatraFilter
|
|||||||
*/
|
*/
|
||||||
case class Context(path: String, loginAccount: Option[Account], currentUrl: String, request: HttpServletRequest){
|
case class Context(path: String, loginAccount: Option[Account], currentUrl: String, request: HttpServletRequest){
|
||||||
|
|
||||||
|
def redirectUrl = {
|
||||||
|
if(request.getParameter("redirect") != null){
|
||||||
|
request.getParameter("redirect")
|
||||||
|
} else {
|
||||||
|
currentUrl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get object from cache.
|
* Get object from cache.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ trait SignInControllerBase extends ControllerBase { self: SystemSettingsService
|
|||||||
)(SignInForm.apply)
|
)(SignInForm.apply)
|
||||||
|
|
||||||
get("/signin"){
|
get("/signin"){
|
||||||
val queryString = request.getQueryString
|
val redirect = params.get("redirect")
|
||||||
if(queryString != null && queryString.startsWith("/")){
|
if(redirect.isDefined && redirect.get.startsWith("/")){
|
||||||
session.setAttribute("REDIRECT", queryString)
|
session.setAttribute("REDIRECT", redirect.get)
|
||||||
}
|
}
|
||||||
html.signin(loadSystemSettings())
|
html.signin(loadSystemSettings())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
}
|
}
|
||||||
<a href="@path/signout" class="menu-last" data-toggle="tooltip" data-placement="bottom" title="Sign out"><i class="icon-share-alt"></i></a>
|
<a href="@path/signout" class="menu-last" data-toggle="tooltip" data-placement="bottom" title="Sign out"><i class="icon-share-alt"></i></a>
|
||||||
} else {
|
} else {
|
||||||
<a href="@path/signin?@currentUrl" class="btn btn-last">Sign in</a>
|
<a href="@path/signin?redirect=@redirectUrl" class="btn btn-last">Sign in</a>
|
||||||
}
|
}
|
||||||
</div><!--/.nav-collapse -->
|
</div><!--/.nav-collapse -->
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user