diff --git a/core/api/endpoint/init.go b/core/api/endpoint/init.go index 38155dc1..9c564ad3 100644 --- a/core/api/endpoint/init.go +++ b/core/api/endpoint/init.go @@ -1,11 +1,11 @@ // Copyright 2016 Documize Inc. . All rights reserved. // -// This software (Documize Community Edition) is licensed under +// This software (Documize Community Edition) is licensed under // GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html // // You can operate outside the AGPL restrictions by purchasing // Documize Enterprise Edition and obtaining a commercial license -// by contacting . +// by contacting . // // https://documize.com @@ -15,7 +15,6 @@ import ( "fmt" "net/http" - "github.com/documize/community/core/api/request" "github.com/documize/community/core/api/store" "github.com/documize/community/core/log" ) @@ -26,18 +25,6 @@ func init() { storageProvider = new(store.LocalStorageProvider) } -//getAppURL returns full HTTP url for the app -func getAppURL(c request.Context, endpoint string) string { - - scheme := "http://" - - if c.SSL { - scheme = "https://" - } - - return fmt.Sprintf("%s%s/%s", scheme, c.AppURL, endpoint) -} - func writePayloadError(w http.ResponseWriter, method string, err error) { w.Header().Set("Content-Type", "application/json; charset=utf-8") w.WriteHeader(http.StatusBadRequest) diff --git a/core/api/endpoint/label_endpoint.go b/core/api/endpoint/label_endpoint.go index 63b78495..7aed3ad3 100644 --- a/core/api/endpoint/label_endpoint.go +++ b/core/api/endpoint/label_endpoint.go @@ -407,7 +407,7 @@ func SetFolderPermissions(w http.ResponseWriter, r *http.Request) { hasEveryoneRole := false roleCount := 0 - url := getAppURL(p.Context, fmt.Sprintf("s/%s/%s", label.RefID, utility.MakeSlug(label.Name))) + url := p.Context.GetAppURL(fmt.Sprintf("s/%s/%s", label.RefID, utility.MakeSlug(label.Name))) for _, role := range model.Roles { role.OrgID = p.Context.OrgID @@ -742,13 +742,13 @@ func InviteToFolder(w http.ResponseWriter, r *http.Request) { return } - url := getAppURL(p.Context, fmt.Sprintf("s/%s/%s", label.RefID, utility.MakeSlug(label.Name))) + url := p.Context.GetAppURL(fmt.Sprintf("s/%s/%s", label.RefID, utility.MakeSlug(label.Name))) go mail.ShareFolderExistingUser(email, inviter.Fullname(), url, label.Name, model.Message) log.Info(fmt.Sprintf("%s is sharing space %s with existing user %s", inviter.Email, label.Name, email)) } else { // On-board new user if strings.Contains(email, "@") { - url := getAppURL(p.Context, fmt.Sprintf("auth/share/%s/%s", label.RefID, utility.MakeSlug(label.Name))) + url := p.Context.GetAppURL(fmt.Sprintf("auth/share/%s/%s", label.RefID, utility.MakeSlug(label.Name))) err = inviteNewUserToSharedFolder(p, email, inviter, url, label, model.Message) if err != nil { diff --git a/core/api/endpoint/meta_endpoint.go b/core/api/endpoint/meta_endpoint.go index 6e0d0e24..6cec5a05 100644 --- a/core/api/endpoint/meta_endpoint.go +++ b/core/api/endpoint/meta_endpoint.go @@ -80,7 +80,7 @@ Disallow: / // Anonymous access would mean we allow bots to crawl. if org.AllowAnonymousAccess { - sitemap := getAppURL(p.Context, "sitemap.xml") + sitemap := p.Context.GetAppURL("sitemap.xml") robots = fmt.Sprintf( `User-agent: * Disallow: /settings/ @@ -138,7 +138,7 @@ func GetSitemap(w http.ResponseWriter, r *http.Request) { for _, folder := range folders { var item sitemapItem - item.URL = getAppURL(p.Context, fmt.Sprintf("s/%s/%s", folder.RefID, utility.MakeSlug(folder.Name))) + item.URL = p.Context.GetAppURL(fmt.Sprintf("s/%s/%s", folder.RefID, utility.MakeSlug(folder.Name))) item.Date = folder.Revised.Format("2006-01-02T15:04:05.999999-07:00") items = append(items, item) } @@ -152,7 +152,7 @@ func GetSitemap(w http.ResponseWriter, r *http.Request) { for _, document := range documents { var item sitemapItem - item.URL = getAppURL(p.Context, fmt.Sprintf("s/%s/%s/d/%s/%s", + item.URL = p.Context.GetAppURL(fmt.Sprintf("s/%s/%s/d/%s/%s", document.FolderID, utility.MakeSlug(document.Folder), document.DocumentID, utility.MakeSlug(document.Document))) item.Date = document.Revised.Format("2006-01-02T15:04:05.999999-07:00") items = append(items, item) diff --git a/core/api/endpoint/user_endpoint.go b/core/api/endpoint/user_endpoint.go index a7b44d13..f1181eb6 100644 --- a/core/api/endpoint/user_endpoint.go +++ b/core/api/endpoint/user_endpoint.go @@ -174,13 +174,13 @@ func AddUser(w http.ResponseWriter, r *http.Request) { auth := fmt.Sprintf("%s:%s:%s", p.Context.AppURL, userModel.Email, requestedPassword[:size]) encrypted := utility.EncodeBase64([]byte(auth)) - url := fmt.Sprintf("%s/%s", getAppURL(p.Context, "auth/sso"), url.QueryEscape(string(encrypted))) + url := fmt.Sprintf("%s/%s", p.Context.GetAppURL("auth/sso"), url.QueryEscape(string(encrypted))) go mail.InviteNewUser(userModel.Email, inviter.Fullname(), url, userModel.Email, requestedPassword) log.Info(fmt.Sprintf("%s invited by %s on %s", userModel.Email, inviter.Email, p.Context.AppURL)) } else { - go mail.InviteExistingUser(userModel.Email, inviter.Fullname(), getAppURL(p.Context, "")) + go mail.InviteExistingUser(userModel.Email, inviter.Fullname(), p.Context.GetAppURL("")) log.Info(fmt.Sprintf("%s is giving access to an existing user %s", inviter.Email, userModel.Email)) } @@ -605,9 +605,7 @@ func ForgotUserPassword(w http.ResponseWriter, r *http.Request) { log.IfErr(tx.Commit()) - appURL := getAppURL(p.Context, fmt.Sprintf("auth/reset/%s", token)) - - fmt.Println(appURL) + appURL := p.Context.GetAppURL(fmt.Sprintf("auth/reset/%s", token)) go mail.PasswordReset(user.Email, appURL) diff --git a/core/api/request/context.go b/core/api/request/context.go index f6174bda..05e79862 100644 --- a/core/api/request/context.go +++ b/core/api/request/context.go @@ -42,6 +42,17 @@ type Context struct { Transaction *sqlx.Tx } +//GetAppURL returns full HTTP url for the app +func (c *Context) GetAppURL(endpoint string) string { + scheme := "http://" + + if c.SSL { + scheme = "https://" + } + + return fmt.Sprintf("%s%s/%s", scheme, c.AppURL, endpoint) +} + // NewContext simply returns a blank Context type. func NewContext() Context { return Context{}