This commit is contained in:
Eduard Urbach 2017-06-23 19:22:39 +02:00
parent 7269bbbaca
commit b5d2cc0465
4 changed files with 16 additions and 38 deletions

View File

@ -26,7 +26,6 @@ import (
"github.com/animenotifier/notify.moe/pages/user"
"github.com/animenotifier/notify.moe/pages/users"
"github.com/animenotifier/notify.moe/pages/webdev"
"github.com/animenotifier/notify.moe/utils"
)
var app = aero.New()
@ -84,7 +83,7 @@ func configure(app *aero.Application) *aero.Application {
api.Install(app)
// Domain
if utils.IsDevelopment() {
if arn.IsDevelopment() {
app.Config.Domain = "beta.notify.moe"
}

View File

@ -32,7 +32,14 @@ func UserInfo() aero.Middleware {
next()
// 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
}
@ -43,6 +50,11 @@ func UserInfo() aero.Middleware {
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
go updateUserInfo(ctx, user)
}

View File

@ -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()
}

View File

@ -5,23 +5,7 @@ import (
"github.com/animenotifier/arn"
)
// GetUser ...
// GetUser returns the logged in user for the given context.
func GetUser(ctx *aero.Context) *arn.User {
if !ctx.HasSession() {
return nil
}
userID := ctx.Session().GetString("userId")
if userID == "" {
return nil
}
user, err := arn.GetUser(userID)
if err != nil {
return nil
}
return user
return arn.GetUserFromContext(ctx)
}