eliminate more utils.Cfg references (#7701)

Этот коммит содержится в:
Chris
2017-10-24 09:00:05 -07:00
коммит произвёл GitHub
родитель 673df81669
Коммит 2a2af0e390
14 изменённых файлов: 59 добавлений и 288 удалений

Просмотреть файл

@@ -358,90 +358,6 @@ func TestGetTeamAnalyticsStandard(t *testing.T) {
} }
} }
/*func TestGetPostCount(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin()
// manually update creation time, since it's always set to 0 upon saving and we only retrieve posts < today
app.Srv.Store.(*store.SqlStore).GetMaster().Exec("UPDATE Posts SET CreateAt = :CreateAt WHERE ChannelId = :ChannelId",
map[string]interface{}{"ChannelId": th.BasicChannel.Id, "CreateAt": utils.MillisFromTime(utils.Yesterday())})
if _, err := th.BasicClient.GetTeamAnalytics(th.BasicTeam.Id, "post_counts_day"); err == nil {
t.Fatal("Shouldn't have permissions")
}
maxUsersForStats := *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics
defer func() {
*utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = maxUsersForStats
}()
*utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1000000
if result, err := th.SystemAdminClient.GetTeamAnalytics(th.BasicTeam.Id, "post_counts_day"); err != nil {
t.Fatal(err)
} else {
rows := result.Data.(model.AnalyticsRows)
if rows[0].Value != 1 {
t.Log(rows.ToJson())
t.Fatal()
}
}
*utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1
if result, err := th.SystemAdminClient.GetTeamAnalytics(th.BasicTeam.Id, "post_counts_day"); err != nil {
t.Fatal(err)
} else {
rows := result.Data.(model.AnalyticsRows)
if rows[0].Value != -1 {
t.Log(rows.ToJson())
t.Fatal()
}
}
}
func TestUserCountsWithPostsByDay(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin()
// manually update creation time, since it's always set to 0 upon saving and we only retrieve posts < today
app.Srv.Store.(*store.SqlStore).GetMaster().Exec("UPDATE Posts SET CreateAt = :CreateAt WHERE ChannelId = :ChannelId",
map[string]interface{}{"ChannelId": th.BasicChannel.Id, "CreateAt": utils.MillisFromTime(utils.Yesterday())})
if _, err := th.BasicClient.GetTeamAnalytics(th.BasicTeam.Id, "user_counts_with_posts_day"); err == nil {
t.Fatal("Shouldn't have permissions")
}
maxUsersForStats := *utils.Cfg.AnalyticsSettings.MaxUsersForStatistics
defer func() {
*utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = maxUsersForStats
}()
*utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1000000
if result, err := th.SystemAdminClient.GetTeamAnalytics(th.BasicTeam.Id, "user_counts_with_posts_day"); err != nil {
t.Fatal(err)
} else {
rows := result.Data.(model.AnalyticsRows)
if rows[0].Value != 1 {
t.Log(rows.ToJson())
t.Fatal()
}
}
*utils.Cfg.AnalyticsSettings.MaxUsersForStatistics = 1
if result, err := th.SystemAdminClient.GetTeamAnalytics(th.BasicTeam.Id, "user_counts_with_posts_day"); err != nil {
t.Fatal(err)
} else {
rows := result.Data.(model.AnalyticsRows)
if rows[0].Value != -1 {
t.Log(rows.ToJson())
t.Fatal()
}
}
}*/
func TestGetTeamAnalyticsExtra(t *testing.T) { func TestGetTeamAnalyticsExtra(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin() th := Setup().InitBasic().InitSystemAdmin()
defer th.TearDown() defer th.TearDown()

Просмотреть файл

@@ -489,74 +489,6 @@ func TestOAuthDeleteApp(t *testing.T) {
} }
} }
/*func TestOAuthAuthorize(t *testing.T) {
if testing.Short() {
t.SkipNow()
}
th := Setup().InitBasic()
Client := th.BasicClient
enableOAuth := utils.Cfg.ServiceSettings.EnableOAuthServiceProvider
adminOnly := *utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations
defer func() {
utils.Cfg.ServiceSettings.EnableOAuthServiceProvider = enableOAuth
*utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations = adminOnly
utils.SetDefaultRolesBasedOnConfig()
}()
utils.Cfg.ServiceSettings.EnableOAuthServiceProvider = false
*utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations = false
utils.SetDefaultRolesBasedOnConfig()
if !utils.Cfg.ServiceSettings.EnableOAuthServiceProvider {
if r, err := HttpGet(Client.Url+"/oauth/authorize", Client.HttpClient, "", true); err == nil {
t.Fatal("should have failed - oauth providing turned off")
closeBody(r)
}
}
utils.Cfg.ServiceSettings.EnableOAuthServiceProvider = true
if r, err := HttpGet(Client.Url+"/oauth/authorize", Client.HttpClient, "", true); err == nil {
t.Fatal("should have failed - scope not provided")
closeBody(r)
}
if r, err := HttpGet(Client.Url+"/oauth/authorize?client_id=bad&&redirect_uri=http://example.com&response_type="+model.AUTHCODE_RESPONSE_TYPE, Client.HttpClient, "", true); err == nil {
t.Fatal("should have failed - scope not provided")
closeBody(r)
}
// register an app to authorize it
oauthApp := &model.OAuthApp{Name: "TestApp" + model.NewId(), Homepage: "https://nowhere.com", Description: "test", CallbackUrls: []string{"https://example.com"}}
oauthApp = Client.Must(Client.RegisterApp(oauthApp)).Data.(*model.OAuthApp)
if r, err := HttpGet(Client.Url+"/oauth/authorize?client_id="+oauthApp.Id+"&&redirect_uri=http://example.com&response_type="+model.AUTHCODE_RESPONSE_TYPE, Client.HttpClient, "", true); err == nil {
t.Fatal("should have failed - user not logged")
closeBody(r)
}
authToken := Client.AuthType + " " + Client.AuthToken
if _, err := HttpGet(Client.Url+"/oauth/authorize?client_id="+oauthApp.Id+"&redirect_uri=http://bad-redirect.com&response_type="+model.AUTHCODE_RESPONSE_TYPE, Client.HttpClient, authToken, true); err == nil {
t.Fatal("should have failed - bad redirect uri")
}
if _, err := HttpGet(Client.Url+"/oauth/authorize?client_id="+oauthApp.Id+"&redirect_uri=https://example.com&response_type="+model.AUTHCODE_RESPONSE_TYPE, Client.HttpClient, authToken, true); err != nil {
t.Fatal(err)
}
// lets authorize the app
if _, err := Client.AllowOAuth(model.AUTHCODE_RESPONSE_TYPE, oauthApp.Id, oauthApp.CallbackUrls[0], "user", ""); err != nil {
t.Fatal(err)
}
if r, err := HttpGet(Client.Url+"/oauth/authorize?client_id="+oauthApp.Id+"&&redirect_uri="+oauthApp.CallbackUrls[0]+"&response_type="+model.AUTHCODE_RESPONSE_TYPE,
Client.HttpClient, authToken, true); err != nil {
// it will return an error as there is no connection to https://nowhere.com
if r != nil {
closeBody(r)
}
}
}*/
func TestOAuthAccessToken(t *testing.T) { func TestOAuthAccessToken(t *testing.T) {
if testing.Short() { if testing.Short() {
t.SkipNow() t.SkipNow()

Просмотреть файл

@@ -985,55 +985,6 @@ func ldapToEmail(c *Context, w http.ResponseWriter, r *http.Request) {
w.Write([]byte(model.MapToJson(map[string]string{"follow_link": link}))) w.Write([]byte(model.MapToJson(map[string]string{"follow_link": link})))
} }
/* Disabling for security reasons. Use apiv4
func verifyEmail(c *Context, w http.ResponseWriter, r *http.Request) {
props := model.MapFromJson(r.Body)
userId := props["uid"]
if len(userId) != 26 {
c.SetInvalidParam("verifyEmail", "uid")
return
}
hashedId := props["hid"]
if len(hashedId) == 0 {
c.SetInvalidParam("verifyEmail", "hid")
return
}
if model.ComparePassword(hashedId, userId+utils.Cfg.EmailSettings.InviteSalt) {
if c.Err = app.VerifyUserEmail(userId); c.Err != nil {
return
} else {
c.LogAudit("Email Verified")
return
}
}
c.Err = model.NewAppError("verifyEmail", "api.user.verify_email.bad_link.app_error", nil, "", http.StatusBadRequest)
}
func resendVerification(c *Context, w http.ResponseWriter, r *http.Request) {
props := model.MapFromJson(r.Body)
email := props["email"]
if len(email) == 0 {
c.SetInvalidParam("resendVerification", "email")
return
}
if user, error := app.GetUserForLogin(email, false); error != nil {
c.Err = error
return
} else {
if _, err := app.GetStatus(user.Id); err != nil {
go app.SendVerifyEmail(user.Id, user.Email, user.Locale, utils.GetSiteURL())
} else {
go app.SendEmailChangeVerifyEmail(user.Id, user.Email, user.Locale, utils.GetSiteURL())
}
}
}*/
func generateMfaSecret(c *Context, w http.ResponseWriter, r *http.Request) { func generateMfaSecret(c *Context, w http.ResponseWriter, r *http.Request) {
secret, err := c.App.GenerateMfaSecret(c.Session.UserId) secret, err := c.App.GenerateMfaSecret(c.Session.UserId)
if err != nil { if err != nil {
@@ -1224,7 +1175,7 @@ func completeSaml(c *Context, w http.ResponseWriter, r *http.Request) {
} }
c.LogAuditWithUserId(user.Id, "Revoked all sessions for user") c.LogAuditWithUserId(user.Id, "Revoked all sessions for user")
c.App.Go(func() { c.App.Go(func() {
if err := app.SendSignInChangeEmail(user.Email, strings.Title(model.USER_AUTH_SERVICE_SAML)+" SSO", user.Locale, utils.GetSiteURL()); err != nil { if err := c.App.SendSignInChangeEmail(user.Email, strings.Title(model.USER_AUTH_SERVICE_SAML)+" SSO", user.Locale, utils.GetSiteURL()); err != nil {
l4g.Error(err.Error()) l4g.Error(err.Error())
} }
}) })

Просмотреть файл

@@ -7,7 +7,6 @@ import (
"net/http" "net/http"
l4g "github.com/alecthomas/log4go" l4g "github.com/alecthomas/log4go"
"github.com/mattermost/mattermost-server/app"
"github.com/mattermost/mattermost-server/utils" "github.com/mattermost/mattermost-server/utils"
) )
@@ -18,7 +17,7 @@ func (api *API) InitWebrtc() {
} }
func webrtcToken(c *Context, w http.ResponseWriter, r *http.Request) { func webrtcToken(c *Context, w http.ResponseWriter, r *http.Request) {
result, err := app.GetWebrtcInfoForSession(c.Session.Id) result, err := c.App.GetWebrtcInfoForSession(c.Session.Id)
if err != nil { if err != nil {
c.Err = err c.Err = err

Просмотреть файл

@@ -1517,32 +1517,6 @@ func TestUpdateUserMfa(t *testing.T) {
_, resp := Client.UpdateUserMfa(th.BasicUser.Id, "12345", false) _, resp := Client.UpdateUserMfa(th.BasicUser.Id, "12345", false)
CheckForbiddenStatus(t, resp) CheckForbiddenStatus(t, resp)
/*
team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN}
rteam, _ := Client.CreateTeam(&team)
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1"}
ruser, _ := Client.CreateUser(&user)
th.LinkUserToTeam(ruser, rteam)
store.Must(app.Srv.Store.User().VerifyEmail(ruser.Id))
Client.Logout()
_, resp := Client.UpdateUserMfa(ruser.Id, "12334", true)
CheckUnauthorizedStatus(t, resp)
Client.Login(user.Email, user.Password)
_, resp = Client.UpdateUserMfa("fail", "56789", false)
CheckBadRequestStatus(t, resp)
_, resp = Client.UpdateUserMfa(ruser.Id, "", true)
CheckErrorMessage(t, resp, "api.context.invalid_body_param.app_error")
*utils.Cfg.ServiceSettings.EnableMultifactorAuthentication = true
_, resp = Client.UpdateUserMfa(ruser.Id, "123456", false)
CheckNotImplementedStatus(t, resp)
*/
} }
func TestCheckUserMfa(t *testing.T) { func TestCheckUserMfa(t *testing.T) {

Просмотреть файл

@@ -7,7 +7,6 @@ import (
"net/http" "net/http"
l4g "github.com/alecthomas/log4go" l4g "github.com/alecthomas/log4go"
"github.com/mattermost/mattermost-server/app"
"github.com/mattermost/mattermost-server/utils" "github.com/mattermost/mattermost-server/utils"
) )
@@ -18,7 +17,7 @@ func (api *API) InitWebrtc() {
} }
func webrtcToken(c *Context, w http.ResponseWriter, r *http.Request) { func webrtcToken(c *Context, w http.ResponseWriter, r *http.Request) {
result, err := app.GetWebrtcInfoForSession(c.Session.Id) result, err := c.App.GetWebrtcInfoForSession(c.Session.Id)
if err != nil { if err != nil {
c.Err = err c.Err = err

Просмотреть файл

@@ -14,18 +14,18 @@ import (
"github.com/mattermost/mattermost-server/utils" "github.com/mattermost/mattermost-server/utils"
) )
func SendChangeUsernameEmail(oldUsername, newUsername, email, locale, siteURL string) *model.AppError { func (a *App) SendChangeUsernameEmail(oldUsername, newUsername, email, locale, siteURL string) *model.AppError {
T := utils.GetUserTranslations(locale) T := utils.GetUserTranslations(locale)
subject := T("api.templates.username_change_subject", subject := T("api.templates.username_change_subject",
map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"], map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"],
"TeamDisplayName": utils.Cfg.TeamSettings.SiteName}) "TeamDisplayName": a.Config().TeamSettings.SiteName})
bodyPage := utils.NewHTMLTemplate("email_change_body", locale) bodyPage := utils.NewHTMLTemplate("email_change_body", locale)
bodyPage.Props["SiteURL"] = siteURL bodyPage.Props["SiteURL"] = siteURL
bodyPage.Props["Title"] = T("api.templates.username_change_body.title") bodyPage.Props["Title"] = T("api.templates.username_change_body.title")
bodyPage.Html["Info"] = utils.TranslateAsHtml(T, "api.templates.username_change_body.info", bodyPage.Html["Info"] = utils.TranslateAsHtml(T, "api.templates.username_change_body.info",
map[string]interface{}{"TeamDisplayName": utils.Cfg.TeamSettings.SiteName, "NewUsername": newUsername}) map[string]interface{}{"TeamDisplayName": a.Config().TeamSettings.SiteName, "NewUsername": newUsername})
if err := utils.SendMail(email, subject, bodyPage.Render()); err != nil { if err := utils.SendMail(email, subject, bodyPage.Render()); err != nil {
return model.NewAppError("SendChangeUsernameEmail", "api.user.send_email_change_username_and_forget.error", nil, err.Error(), http.StatusInternalServerError) return model.NewAppError("SendChangeUsernameEmail", "api.user.send_email_change_username_and_forget.error", nil, err.Error(), http.StatusInternalServerError)
@@ -34,20 +34,20 @@ func SendChangeUsernameEmail(oldUsername, newUsername, email, locale, siteURL st
return nil return nil
} }
func SendEmailChangeVerifyEmail(newUserEmail, locale, siteURL, token string) *model.AppError { func (a *App) SendEmailChangeVerifyEmail(newUserEmail, locale, siteURL, token string) *model.AppError {
T := utils.GetUserTranslations(locale) T := utils.GetUserTranslations(locale)
link := fmt.Sprintf("%s/do_verify_email?token=%s&email=%s", siteURL, token, url.QueryEscape(newUserEmail)) link := fmt.Sprintf("%s/do_verify_email?token=%s&email=%s", siteURL, token, url.QueryEscape(newUserEmail))
subject := T("api.templates.email_change_verify_subject", subject := T("api.templates.email_change_verify_subject",
map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"], map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"],
"TeamDisplayName": utils.Cfg.TeamSettings.SiteName}) "TeamDisplayName": a.Config().TeamSettings.SiteName})
bodyPage := utils.NewHTMLTemplate("email_change_verify_body", locale) bodyPage := utils.NewHTMLTemplate("email_change_verify_body", locale)
bodyPage.Props["SiteURL"] = siteURL bodyPage.Props["SiteURL"] = siteURL
bodyPage.Props["Title"] = T("api.templates.email_change_verify_body.title") bodyPage.Props["Title"] = T("api.templates.email_change_verify_body.title")
bodyPage.Props["Info"] = T("api.templates.email_change_verify_body.info", bodyPage.Props["Info"] = T("api.templates.email_change_verify_body.info",
map[string]interface{}{"TeamDisplayName": utils.Cfg.TeamSettings.SiteName}) map[string]interface{}{"TeamDisplayName": a.Config().TeamSettings.SiteName})
bodyPage.Props["VerifyUrl"] = link bodyPage.Props["VerifyUrl"] = link
bodyPage.Props["VerifyButton"] = T("api.templates.email_change_verify_body.button") bodyPage.Props["VerifyButton"] = T("api.templates.email_change_verify_body.button")
@@ -58,18 +58,18 @@ func SendEmailChangeVerifyEmail(newUserEmail, locale, siteURL, token string) *mo
return nil return nil
} }
func SendEmailChangeEmail(oldEmail, newEmail, locale, siteURL string) *model.AppError { func (a *App) SendEmailChangeEmail(oldEmail, newEmail, locale, siteURL string) *model.AppError {
T := utils.GetUserTranslations(locale) T := utils.GetUserTranslations(locale)
subject := T("api.templates.email_change_subject", subject := T("api.templates.email_change_subject",
map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"], map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"],
"TeamDisplayName": utils.Cfg.TeamSettings.SiteName}) "TeamDisplayName": a.Config().TeamSettings.SiteName})
bodyPage := utils.NewHTMLTemplate("email_change_body", locale) bodyPage := utils.NewHTMLTemplate("email_change_body", locale)
bodyPage.Props["SiteURL"] = siteURL bodyPage.Props["SiteURL"] = siteURL
bodyPage.Props["Title"] = T("api.templates.email_change_body.title") bodyPage.Props["Title"] = T("api.templates.email_change_body.title")
bodyPage.Html["Info"] = utils.TranslateAsHtml(T, "api.templates.email_change_body.info", bodyPage.Html["Info"] = utils.TranslateAsHtml(T, "api.templates.email_change_body.info",
map[string]interface{}{"TeamDisplayName": utils.Cfg.TeamSettings.SiteName, "NewEmail": newEmail}) map[string]interface{}{"TeamDisplayName": a.Config().TeamSettings.SiteName, "NewEmail": newEmail})
if err := utils.SendMail(oldEmail, subject, bodyPage.Render()); err != nil { if err := utils.SendMail(oldEmail, subject, bodyPage.Render()); err != nil {
return model.NewAppError("SendEmailChangeEmail", "api.user.send_email_change_email_and_forget.error", nil, err.Error(), http.StatusInternalServerError) return model.NewAppError("SendEmailChangeEmail", "api.user.send_email_change_email_and_forget.error", nil, err.Error(), http.StatusInternalServerError)
@@ -78,7 +78,7 @@ func SendEmailChangeEmail(oldEmail, newEmail, locale, siteURL string) *model.App
return nil return nil
} }
func SendVerifyEmail(userEmail, locale, siteURL, token string) *model.AppError { func (a *App) SendVerifyEmail(userEmail, locale, siteURL, token string) *model.AppError {
T := utils.GetUserTranslations(locale) T := utils.GetUserTranslations(locale)
link := fmt.Sprintf("%s/do_verify_email?token=%s&email=%s", siteURL, token, url.QueryEscape(userEmail)) link := fmt.Sprintf("%s/do_verify_email?token=%s&email=%s", siteURL, token, url.QueryEscape(userEmail))
@@ -102,7 +102,7 @@ func SendVerifyEmail(userEmail, locale, siteURL, token string) *model.AppError {
return nil return nil
} }
func SendSignInChangeEmail(email, method, locale, siteURL string) *model.AppError { func (a *App) SendSignInChangeEmail(email, method, locale, siteURL string) *model.AppError {
T := utils.GetUserTranslations(locale) T := utils.GetUserTranslations(locale)
subject := T("api.templates.signin_change_email.subject", subject := T("api.templates.signin_change_email.subject",
@@ -160,18 +160,18 @@ func (a *App) SendWelcomeEmail(userId string, email string, verified bool, local
return nil return nil
} }
func SendPasswordChangeEmail(email, method, locale, siteURL string) *model.AppError { func (a *App) SendPasswordChangeEmail(email, method, locale, siteURL string) *model.AppError {
T := utils.GetUserTranslations(locale) T := utils.GetUserTranslations(locale)
subject := T("api.templates.password_change_subject", subject := T("api.templates.password_change_subject",
map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"], map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"],
"TeamDisplayName": utils.Cfg.TeamSettings.SiteName}) "TeamDisplayName": a.Config().TeamSettings.SiteName})
bodyPage := utils.NewHTMLTemplate("password_change_body", locale) bodyPage := utils.NewHTMLTemplate("password_change_body", locale)
bodyPage.Props["SiteURL"] = siteURL bodyPage.Props["SiteURL"] = siteURL
bodyPage.Props["Title"] = T("api.templates.password_change_body.title") bodyPage.Props["Title"] = T("api.templates.password_change_body.title")
bodyPage.Html["Info"] = utils.TranslateAsHtml(T, "api.templates.password_change_body.info", bodyPage.Html["Info"] = utils.TranslateAsHtml(T, "api.templates.password_change_body.info",
map[string]interface{}{"TeamDisplayName": utils.Cfg.TeamSettings.SiteName, "TeamURL": siteURL, "Method": method}) map[string]interface{}{"TeamDisplayName": a.Config().TeamSettings.SiteName, "TeamURL": siteURL, "Method": method})
if err := utils.SendMail(email, subject, bodyPage.Render()); err != nil { if err := utils.SendMail(email, subject, bodyPage.Render()); err != nil {
return model.NewAppError("SendPasswordChangeEmail", "api.user.send_password_change_email_and_forget.error", nil, err.Error(), http.StatusInternalServerError) return model.NewAppError("SendPasswordChangeEmail", "api.user.send_password_change_email_and_forget.error", nil, err.Error(), http.StatusInternalServerError)
@@ -248,7 +248,7 @@ func SendMfaChangeEmail(email string, activated bool, locale, siteURL string) *m
return nil return nil
} }
func SendInviteEmails(team *model.Team, senderName string, invites []string, siteURL string) { func (a *App) SendInviteEmails(team *model.Team, senderName string, invites []string, siteURL string) {
for _, invite := range invites { for _, invite := range invites {
if len(invite) > 0 { if len(invite) > 0 {
senderRole := utils.T("api.team.invite_members.member") senderRole := utils.T("api.team.invite_members.member")
@@ -275,10 +275,10 @@ func SendInviteEmails(team *model.Team, senderName string, invites []string, sit
props["name"] = team.Name props["name"] = team.Name
props["time"] = fmt.Sprintf("%v", model.GetMillis()) props["time"] = fmt.Sprintf("%v", model.GetMillis())
data := model.MapToJson(props) data := model.MapToJson(props)
hash := utils.HashSha256(fmt.Sprintf("%v:%v", data, utils.Cfg.EmailSettings.InviteSalt)) hash := utils.HashSha256(fmt.Sprintf("%v:%v", data, a.Config().EmailSettings.InviteSalt))
bodyPage.Props["Link"] = fmt.Sprintf("%s/signup_user_complete/?d=%s&h=%s", siteURL, url.QueryEscape(data), url.QueryEscape(hash)) bodyPage.Props["Link"] = fmt.Sprintf("%s/signup_user_complete/?d=%s&h=%s", siteURL, url.QueryEscape(data), url.QueryEscape(hash))
if !utils.Cfg.EmailSettings.SendEmailNotifications { if !a.Config().EmailSettings.SendEmailNotifications {
l4g.Info(utils.T("api.team.invite_members.sending.info"), invite, bodyPage.Props["Link"]) l4g.Info(utils.T("api.team.invite_members.sending.info"), invite, bodyPage.Props["Link"])
} }

Просмотреть файл

@@ -61,7 +61,7 @@ func (a *App) SwitchEmailToLdap(email, password, code, ldapId, ldapPassword stri
} }
a.Go(func() { a.Go(func() {
if err := SendSignInChangeEmail(user.Email, "AD/LDAP", user.Locale, utils.GetSiteURL()); err != nil { if err := a.SendSignInChangeEmail(user.Email, "AD/LDAP", user.Locale, utils.GetSiteURL()); err != nil {
l4g.Error(err.Error()) l4g.Error(err.Error())
} }
}) })
@@ -103,7 +103,7 @@ func (a *App) SwitchLdapToEmail(ldapPassword, code, email, newPassword string) (
T := utils.GetUserTranslations(user.Locale) T := utils.GetUserTranslations(user.Locale)
a.Go(func() { a.Go(func() {
if err := SendSignInChangeEmail(user.Email, T("api.templates.signin_change_email.body.method_email"), user.Locale, utils.GetSiteURL()); err != nil { if err := a.SendSignInChangeEmail(user.Email, T("api.templates.signin_change_email.body.method_email"), user.Locale, utils.GetSiteURL()); err != nil {
l4g.Error(err.Error()) l4g.Error(err.Error())
} }
}) })

Просмотреть файл

@@ -527,7 +527,7 @@ func (a *App) CompleteSwitchWithOAuth(service string, userData io.ReadCloser, em
} }
a.Go(func() { a.Go(func() {
if err := SendSignInChangeEmail(user.Email, strings.Title(service)+" SSO", user.Locale, utils.GetSiteURL()); err != nil { if err := a.SendSignInChangeEmail(user.Email, strings.Title(service)+" SSO", user.Locale, utils.GetSiteURL()); err != nil {
l4g.Error(err.Error()) l4g.Error(err.Error())
} }
}) })
@@ -760,7 +760,7 @@ func (a *App) SwitchOAuthToEmail(email, password, requesterId string) (string, *
T := utils.GetUserTranslations(user.Locale) T := utils.GetUserTranslations(user.Locale)
a.Go(func() { a.Go(func() {
if err := SendSignInChangeEmail(user.Email, T("api.templates.signin_change_email.body.method_email"), user.Locale, utils.GetSiteURL()); err != nil { if err := a.SendSignInChangeEmail(user.Email, T("api.templates.signin_change_email.body.method_email"), user.Locale, utils.GetSiteURL()); err != nil {
l4g.Error(err.Error()) l4g.Error(err.Error())
} }
}) })

Просмотреть файл

@@ -109,7 +109,7 @@ func (a *App) RevokeAllSessions(userId string) *model.AppError {
} }
} }
RevokeWebrtcToken(session.Id) a.RevokeWebrtcToken(session.Id)
} }
} }
@@ -202,7 +202,7 @@ func (a *App) RevokeSession(session *model.Session) *model.AppError {
} }
} }
RevokeWebrtcToken(session.Id) a.RevokeWebrtcToken(session.Id)
a.ClearSessionCacheForUser(session.UserId) a.ClearSessionCacheForUser(session.UserId)
return nil return nil

Просмотреть файл

@@ -675,7 +675,7 @@ func (a *App) InviteNewUsersToTeam(emailList []string, teamId, senderId string)
} }
nameFormat := *a.Config().TeamSettings.TeammateNameDisplay nameFormat := *a.Config().TeamSettings.TeammateNameDisplay
SendInviteEmails(team, user.GetDisplayName(nameFormat), emailList, utils.GetSiteURL()) a.SendInviteEmails(team, user.GetDisplayName(nameFormat), emailList, utils.GetSiteURL())
return nil return nil
} }

Просмотреть файл

@@ -996,7 +996,7 @@ func (a *App) UpdateUser(user *model.User, sendNotifications bool) (*model.User,
if sendNotifications { if sendNotifications {
if rusers[0].Email != rusers[1].Email { if rusers[0].Email != rusers[1].Email {
a.Go(func() { a.Go(func() {
if err := SendEmailChangeEmail(rusers[1].Email, rusers[0].Email, rusers[0].Locale, utils.GetSiteURL()); err != nil { if err := a.SendEmailChangeEmail(rusers[1].Email, rusers[0].Email, rusers[0].Locale, utils.GetSiteURL()); err != nil {
l4g.Error(err.Error()) l4g.Error(err.Error())
} }
}) })
@@ -1010,7 +1010,7 @@ func (a *App) UpdateUser(user *model.User, sendNotifications bool) (*model.User,
if rusers[0].Username != rusers[1].Username { if rusers[0].Username != rusers[1].Username {
a.Go(func() { a.Go(func() {
if err := SendChangeUsernameEmail(rusers[1].Username, rusers[0].Username, rusers[0].Email, rusers[0].Locale, utils.GetSiteURL()); err != nil { if err := a.SendChangeUsernameEmail(rusers[1].Username, rusers[0].Username, rusers[0].Email, rusers[0].Locale, utils.GetSiteURL()); err != nil {
l4g.Error(err.Error()) l4g.Error(err.Error())
} }
}) })
@@ -1098,7 +1098,7 @@ func (a *App) UpdatePasswordSendEmail(user *model.User, newPassword, method stri
} }
a.Go(func() { a.Go(func() {
if err := SendPasswordChangeEmail(user.Email, method, user.Locale, utils.GetSiteURL()); err != nil { if err := a.SendPasswordChangeEmail(user.Email, method, user.Locale, utils.GetSiteURL()); err != nil {
l4g.Error(err.Error()) l4g.Error(err.Error())
} }
}) })
@@ -1304,9 +1304,9 @@ func (a *App) SendEmailVerification(user *model.User) *model.AppError {
} }
if _, err := a.GetStatus(user.Id); err != nil { if _, err := a.GetStatus(user.Id); err != nil {
return SendVerifyEmail(user.Email, user.Locale, utils.GetSiteURL(), token.Token) return a.SendVerifyEmail(user.Email, user.Locale, utils.GetSiteURL(), token.Token)
} else { } else {
return SendEmailChangeVerifyEmail(user.Email, user.Locale, utils.GetSiteURL(), token.Token) return a.SendEmailChangeVerifyEmail(user.Email, user.Locale, utils.GetSiteURL(), token.Token)
} }
} }

Просмотреть файл

@@ -16,58 +16,58 @@ import (
"github.com/mattermost/mattermost-server/utils" "github.com/mattermost/mattermost-server/utils"
) )
func GetWebrtcInfoForSession(sessionId string) (*model.WebrtcInfoResponse, *model.AppError) { func (a *App) GetWebrtcInfoForSession(sessionId string) (*model.WebrtcInfoResponse, *model.AppError) {
token, err := GetWebrtcToken(sessionId) token, err := a.GetWebrtcToken(sessionId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
result := &model.WebrtcInfoResponse{ result := &model.WebrtcInfoResponse{
Token: token, Token: token,
GatewayUrl: *utils.Cfg.WebrtcSettings.GatewayWebsocketUrl, GatewayUrl: *a.Config().WebrtcSettings.GatewayWebsocketUrl,
GatewayType: *utils.Cfg.WebrtcSettings.GatewayType, GatewayType: *a.Config().WebrtcSettings.GatewayType,
} }
if len(*utils.Cfg.WebrtcSettings.StunURI) > 0 { if len(*a.Config().WebrtcSettings.StunURI) > 0 {
result.StunUri = *utils.Cfg.WebrtcSettings.StunURI result.StunUri = *a.Config().WebrtcSettings.StunURI
} }
if len(*utils.Cfg.WebrtcSettings.TurnURI) > 0 { if len(*a.Config().WebrtcSettings.TurnURI) > 0 {
timestamp := strconv.FormatInt(utils.EndOfDay(time.Now().AddDate(0, 0, 1)).Unix(), 10) timestamp := strconv.FormatInt(utils.EndOfDay(time.Now().AddDate(0, 0, 1)).Unix(), 10)
username := timestamp + ":" + *utils.Cfg.WebrtcSettings.TurnUsername username := timestamp + ":" + *a.Config().WebrtcSettings.TurnUsername
result.TurnUri = *utils.Cfg.WebrtcSettings.TurnURI result.TurnUri = *a.Config().WebrtcSettings.TurnURI
result.TurnPassword = GenerateTurnPassword(username, *utils.Cfg.WebrtcSettings.TurnSharedKey) result.TurnPassword = GenerateTurnPassword(username, *a.Config().WebrtcSettings.TurnSharedKey)
result.TurnUsername = username result.TurnUsername = username
} }
return result, nil return result, nil
} }
func GetWebrtcToken(sessionId string) (string, *model.AppError) { func (a *App) GetWebrtcToken(sessionId string) (string, *model.AppError) {
if !*utils.Cfg.WebrtcSettings.Enable { if !*a.Config().WebrtcSettings.Enable {
return "", model.NewAppError("WebRTC.getWebrtcToken", "api.webrtc.disabled.app_error", nil, "", http.StatusNotImplemented) return "", model.NewAppError("WebRTC.getWebrtcToken", "api.webrtc.disabled.app_error", nil, "", http.StatusNotImplemented)
} }
switch strings.ToLower(*utils.Cfg.WebrtcSettings.GatewayType) { switch strings.ToLower(*a.Config().WebrtcSettings.GatewayType) {
case "kopano-webmeetings": case "kopano-webmeetings":
return GetKopanoWebmeetingsWebrtcToken(sessionId) return a.GetKopanoWebmeetingsWebrtcToken(sessionId)
default: default:
// Default to Janus. // Default to Janus.
return GetJanusWebrtcToken(sessionId) return a.GetJanusWebrtcToken(sessionId)
} }
} }
func GetJanusWebrtcToken(sessionId string) (string, *model.AppError) { func (a *App) GetJanusWebrtcToken(sessionId string) (string, *model.AppError) {
token := base64.StdEncoding.EncodeToString([]byte(sessionId)) token := base64.StdEncoding.EncodeToString([]byte(sessionId))
data := make(map[string]string) data := make(map[string]string)
data["janus"] = "add_token" data["janus"] = "add_token"
data["token"] = token data["token"] = token
data["transaction"] = model.NewId() data["transaction"] = model.NewId()
data["admin_secret"] = *utils.Cfg.WebrtcSettings.GatewayAdminSecret data["admin_secret"] = *a.Config().WebrtcSettings.GatewayAdminSecret
rq, _ := http.NewRequest("POST", *utils.Cfg.WebrtcSettings.GatewayAdminUrl, strings.NewReader(model.MapToJson(data))) rq, _ := http.NewRequest("POST", *a.Config().WebrtcSettings.GatewayAdminUrl, strings.NewReader(model.MapToJson(data)))
rq.Header.Set("Content-Type", "application/json") rq.Header.Set("Content-Type", "application/json")
if rp, err := utils.HttpClient(true).Do(rq); err != nil { if rp, err := utils.HttpClient(true).Do(rq); err != nil {
@@ -85,14 +85,14 @@ func GetJanusWebrtcToken(sessionId string) (string, *model.AppError) {
return token, nil return token, nil
} }
func GetKopanoWebmeetingsWebrtcToken(sessionId string) (string, *model.AppError) { func (a *App) GetKopanoWebmeetingsWebrtcToken(sessionId string) (string, *model.AppError) {
data := make(map[string]string) data := make(map[string]string)
data["type"] = "Token" data["type"] = "Token"
data["id"] = sessionId data["id"] = sessionId
rq, _ := http.NewRequest("POST", *utils.Cfg.WebrtcSettings.GatewayAdminUrl+"/auth/tokens", strings.NewReader(model.MapToJson(data))) rq, _ := http.NewRequest("POST", *a.Config().WebrtcSettings.GatewayAdminUrl+"/auth/tokens", strings.NewReader(model.MapToJson(data)))
rq.Header.Set("Content-Type", "application/json") rq.Header.Set("Content-Type", "application/json")
rq.Header.Set("Authorization", "Bearer "+*utils.Cfg.WebrtcSettings.GatewayAdminSecret) rq.Header.Set("Authorization", "Bearer "+*a.Config().WebrtcSettings.GatewayAdminSecret)
if rp, err := utils.HttpClient(true).Do(rq); err != nil { if rp, err := utils.HttpClient(true).Do(rq); err != nil {
return "", model.NewAppError("WebRTC.Token", "model.client.connecting.app_error", nil, err.Error(), http.StatusInternalServerError) return "", model.NewAppError("WebRTC.Token", "model.client.connecting.app_error", nil, err.Error(), http.StatusInternalServerError)
@@ -115,15 +115,15 @@ func GenerateTurnPassword(username string, secret string) string {
return base64.StdEncoding.EncodeToString(h.Sum(nil)) return base64.StdEncoding.EncodeToString(h.Sum(nil))
} }
func RevokeWebrtcToken(sessionId string) { func (a *App) RevokeWebrtcToken(sessionId string) {
token := base64.StdEncoding.EncodeToString([]byte(sessionId)) token := base64.StdEncoding.EncodeToString([]byte(sessionId))
data := make(map[string]string) data := make(map[string]string)
data["janus"] = "remove_token" data["janus"] = "remove_token"
data["token"] = token data["token"] = token
data["transaction"] = model.NewId() data["transaction"] = model.NewId()
data["admin_secret"] = *utils.Cfg.WebrtcSettings.GatewayAdminSecret data["admin_secret"] = *a.Config().WebrtcSettings.GatewayAdminSecret
rq, _ := http.NewRequest("POST", *utils.Cfg.WebrtcSettings.GatewayAdminUrl, strings.NewReader(model.MapToJson(data))) rq, _ := http.NewRequest("POST", *a.Config().WebrtcSettings.GatewayAdminUrl, strings.NewReader(model.MapToJson(data)))
rq.Header.Set("Content-Type", "application/json") rq.Header.Set("Content-Type", "application/json")
// we do not care about the response // we do not care about the response

Просмотреть файл

@@ -273,7 +273,7 @@ func userInviteCmdF(cmd *cobra.Command, args []string) error {
teams := getTeamsFromTeamArgs(a, args[1:]) teams := getTeamsFromTeamArgs(a, args[1:])
for i, team := range teams { for i, team := range teams {
err := inviteUser(email, team, args[i+1]) err := inviteUser(a, email, team, args[i+1])
if err != nil { if err != nil {
CommandPrintErrorln(err.Error()) CommandPrintErrorln(err.Error())
@@ -283,13 +283,13 @@ func userInviteCmdF(cmd *cobra.Command, args []string) error {
return nil return nil
} }
func inviteUser(email string, team *model.Team, teamArg string) error { func inviteUser(a *app.App, email string, team *model.Team, teamArg string) error {
invites := []string{email} invites := []string{email}
if team == nil { if team == nil {
return fmt.Errorf("Can't find team '%v'", teamArg) return fmt.Errorf("Can't find team '%v'", teamArg)
} }
app.SendInviteEmails(team, "Administrator", invites, *utils.Cfg.ServiceSettings.SiteURL) a.SendInviteEmails(team, "Administrator", invites, *utils.Cfg.ServiceSettings.SiteURL)
CommandPrettyPrintln("Invites may or may not have been sent.") CommandPrettyPrintln("Invites may or may not have been sent.")
return nil return nil