Refactor
This commit is contained in:
parent
7269bbbaca
commit
b5d2cc0465
3
main.go
3
main.go
@ -26,7 +26,6 @@ import (
|
|||||||
"github.com/animenotifier/notify.moe/pages/user"
|
"github.com/animenotifier/notify.moe/pages/user"
|
||||||
"github.com/animenotifier/notify.moe/pages/users"
|
"github.com/animenotifier/notify.moe/pages/users"
|
||||||
"github.com/animenotifier/notify.moe/pages/webdev"
|
"github.com/animenotifier/notify.moe/pages/webdev"
|
||||||
"github.com/animenotifier/notify.moe/utils"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var app = aero.New()
|
var app = aero.New()
|
||||||
@ -84,7 +83,7 @@ func configure(app *aero.Application) *aero.Application {
|
|||||||
api.Install(app)
|
api.Install(app)
|
||||||
|
|
||||||
// Domain
|
// Domain
|
||||||
if utils.IsDevelopment() {
|
if arn.IsDevelopment() {
|
||||||
app.Config.Domain = "beta.notify.moe"
|
app.Config.Domain = "beta.notify.moe"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,14 @@ func UserInfo() aero.Middleware {
|
|||||||
next()
|
next()
|
||||||
|
|
||||||
// Ignore non-HTML requests
|
// Ignore non-HTML requests
|
||||||
if strings.Index(ctx.GetRequestHeader("Accept"), "text/html") == -1 {
|
if ctx.IsMediaResponse() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ignore API requests
|
||||||
|
// Note that API requests can filter data (privacy) and we might accidentally save the filtered data.
|
||||||
|
// That's why it's very important to ignore all API requests and not call user.Save() in this context.
|
||||||
|
if strings.HasPrefix(ctx.URI(), "/api/") {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,6 +50,11 @@ func UserInfo() aero.Middleware {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Let's be 100% sure we really do not accidentally save filtered data.
|
||||||
|
if user.Email == "" && user.IP == "" && user.FirstName == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// This works asynchronously so it doesn't block the response
|
// This works asynchronously so it doesn't block the response
|
||||||
go updateUserInfo(ctx, user)
|
go updateUserInfo(ctx, user)
|
||||||
}
|
}
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
package utils
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IsProduction returns true if the hostname contains "arn".
|
|
||||||
func IsProduction() bool {
|
|
||||||
host, _ := os.Hostname()
|
|
||||||
return strings.Contains(host, "arn")
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsDevelopment returns true if the hostname does not contain "arn".
|
|
||||||
func IsDevelopment() bool {
|
|
||||||
return !IsProduction()
|
|
||||||
}
|
|
@ -5,23 +5,7 @@ import (
|
|||||||
"github.com/animenotifier/arn"
|
"github.com/animenotifier/arn"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetUser ...
|
// GetUser returns the logged in user for the given context.
|
||||||
func GetUser(ctx *aero.Context) *arn.User {
|
func GetUser(ctx *aero.Context) *arn.User {
|
||||||
if !ctx.HasSession() {
|
return arn.GetUserFromContext(ctx)
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
userID := ctx.Session().GetString("userId")
|
|
||||||
|
|
||||||
if userID == "" {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
user, err := arn.GetUser(userID)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return user
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user