func getAppFromContext(name string, r *http.Request) (app.App, error) { var err error a := context.GetApp(r) if a == nil { a, err = getApp(name) if err != nil { return app.App{}, err } context.SetApp(r, a) } return *a, nil }
func getApp(name string, u *auth.User, r *http.Request) (app.App, error) { var err error a := context.GetApp(r) if a == nil { a, err = app.GetByName(name) if err != nil { return app.App{}, &errors.HTTP{Code: http.StatusNotFound, Message: fmt.Sprintf("App %s not found.", name)} } context.SetApp(r, a) } if u == nil || u.IsAdmin() { return *a, nil } if !auth.CheckUserAccess(a.Teams, u) { return *a, &errors.HTTP{Code: http.StatusForbidden, Message: "user does not have access to this app"} } return *a, nil }