diff --git a/controllers/login.go b/controllers/login.go
index cf20caa..27b739b 100644
--- a/controllers/login.go
+++ b/controllers/login.go
@@ -15,9 +15,15 @@ func (c *LoginController) Prepare() {
}
func (c *LoginController) Get() {
+ routeRedirect := c.Ctx.Input.Param(":route")
+
sess := c.GetSession(variables.SessionName)
if sess != nil {
- c.Redirect(variables.UserRoute, 302)
+ if routeRedirect == "" {
+ c.Redirect(variables.UserRoute, 302)
+ } else {
+ c.Redirect("/"+routeRedirect, 302)
+ }
return
}
@@ -25,9 +31,15 @@ func (c *LoginController) Get() {
}
func (c *LoginController) Post() {
+ routeRedirect := c.Ctx.Input.Param(":route")
+
sess := c.GetSession(variables.SessionName)
if sess != nil {
- c.Redirect(variables.RootRoute, 302)
+ if routeRedirect == "" {
+ c.Redirect(variables.RootRoute, 302)
+ } else {
+ c.Redirect("/"+routeRedirect, 302)
+ }
return
}
@@ -39,7 +51,11 @@ func (c *LoginController) Post() {
}
c.SetSession(variables.SessionName, login)
- c.Redirect(variables.UserRoute, 302)
+ if routeRedirect == "" {
+ c.Redirect(variables.UserRoute, 302)
+ } else {
+ c.Redirect("/"+routeRedirect, 302)
+ }
}
func isLoginOK(lgn, pwd string) bool {
diff --git a/controllers/relay.go b/controllers/relay.go
index d3866cf..6277233 100644
--- a/controllers/relay.go
+++ b/controllers/relay.go
@@ -21,7 +21,7 @@ type ViewRelayController struct {
func (c *ViewRelayController) Prepare() {
sess := c.GetSession(variables.SessionName)
if sess == nil {
- c.Redirect(variables.LoginRoute, 302)
+ c.Redirect(variables.LoginRouteNoRegex+variables.ViewRelaysRoute, 302)
} else {
c.Data["IsAuthentificated"] = true
}
@@ -93,7 +93,7 @@ type CommandRelayController struct {
func (c *CommandRelayController) Prepare() {
sess := c.GetSession(variables.SessionName)
if sess == nil {
- c.Redirect(variables.LoginRoute, 302)
+ c.Redirect(variables.LoginRouteNoRegex+variables.CommandRelayRoute, 302)
}
}
diff --git a/controllers/sensors.go b/controllers/sensors.go
index 832c836..d2841ac 100644
--- a/controllers/sensors.go
+++ b/controllers/sensors.go
@@ -19,7 +19,7 @@ type SensorsController struct {
func (c *SensorsController) Prepare() {
sess := c.GetSession(variables.SessionName)
if sess == nil {
- c.Redirect(variables.LoginRoute, 302)
+ c.Redirect(variables.LoginRouteNoRegex+variables.SensorsRoute, 302)
} else {
c.Data["IsAuthentificated"] = true
}
diff --git a/controllers/user.go b/controllers/user.go
index d395d84..8d8040a 100644
--- a/controllers/user.go
+++ b/controllers/user.go
@@ -14,7 +14,7 @@ type UserController struct {
func (c *UserController) Prepare() {
sess := c.GetSession(variables.SessionName)
if sess == nil {
- c.Redirect(variables.LoginRoute, 302)
+ c.Redirect(variables.LoginRouteNoRegex+variables.UserRoute, 302)
} else {
c.Data["IsAuthentificated"] = true
}
diff --git a/models/variables/variables.go b/models/variables/variables.go
index 21366db..ed4ed58 100644
--- a/models/variables/variables.go
+++ b/models/variables/variables.go
@@ -20,7 +20,8 @@ var (
CommandRelayRoute = "/command/relay/" + sensorMacRegex
- SensorsRoute = "/sensors"
- LoginRoute = "/login"
- UserRoute = "/user"
+ SensorsRoute = "/sensors"
+ LoginRoute = "/login/:route(.*)"
+ LoginRouteNoRegex = "/login"
+ UserRoute = "/user"
)
diff --git a/views/login.tpl b/views/login.tpl
index fde6f9b..a8d6e69 100644
--- a/views/login.tpl
+++ b/views/login.tpl
@@ -51,6 +51,7 @@