mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
* #MM-12130 changes for custom service terms * Fixed styling * Added getServiceTerms API * removed unnecessary panic * removed custom service terms text from flat config * reverted user sql store as those changes are no longer needed * added tests * Updated a config key to be more standard * Added copyright info * Loading service terms only if the feature is enabled * Loading service terms only if the feature is enabled * removed unused index * added createservice termns API * made a param to bool instead of string * added createservice termns API * review fixes * fixed styling * Minor refactoring * removed saveConfig and loadConfig magic * added empty service terms text check to createServiceTerms API * refactoed some urls to be terms_of_service instead of service_terms * removed check for support settings * changed URLs in tests * removed unused code * fixed a bug * added service termd id in conif * fixed a test * review fixes * minor fixes * Fixed TestCreateServiceTerms * Fix incorrect key in en.json and changes some translations from service terms to terms of service * Improved translated messages * Added permission check in createServiceTerms API
65 lines
1.8 KiB
Go
65 lines
1.8 KiB
Go
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
package api4
|
|
|
|
import (
|
|
"github.com/mattermost/mattermost-server/app"
|
|
"github.com/mattermost/mattermost-server/model"
|
|
"net/http"
|
|
)
|
|
|
|
func (api *API) InitServiceTerms() {
|
|
api.BaseRoutes.ServiceTerms.Handle("", api.ApiSessionRequired(getServiceTerms)).Methods("GET")
|
|
api.BaseRoutes.ServiceTerms.Handle("", api.ApiSessionRequired(createServiceTerms)).Methods("POST")
|
|
}
|
|
|
|
func getServiceTerms(c *Context, w http.ResponseWriter, r *http.Request) {
|
|
serviceTerms, err := c.App.GetLatestServiceTerms()
|
|
if err != nil {
|
|
c.Err = err
|
|
return
|
|
}
|
|
|
|
w.Write([]byte(serviceTerms.ToJson()))
|
|
}
|
|
|
|
func createServiceTerms(c *Context, w http.ResponseWriter, r *http.Request) {
|
|
if !c.App.SessionHasPermissionTo(c.Session, model.PERMISSION_MANAGE_SYSTEM) {
|
|
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM)
|
|
return
|
|
}
|
|
|
|
if license := c.App.License(); license == nil || !*license.Features.CustomTermsOfService {
|
|
c.Err = model.NewAppError("createServiceTerms", "api.create_service_terms.custom_service_terms_disabled.app_error", nil, "", http.StatusBadRequest)
|
|
return
|
|
}
|
|
|
|
props := model.MapFromJson(r.Body)
|
|
text := props["text"]
|
|
userId := c.Session.UserId
|
|
|
|
if text == "" {
|
|
c.Err = model.NewAppError("Config.IsValid", "api.create_service_terms.empty_text.app_error", nil, "", http.StatusBadRequest)
|
|
return
|
|
}
|
|
|
|
oldServiceTerms, err := c.App.GetLatestServiceTerms()
|
|
if err != nil && err.Id != app.ERROR_SERVICE_TERMS_NO_ROWS_FOUND {
|
|
c.Err = err
|
|
return
|
|
}
|
|
|
|
if oldServiceTerms == nil || oldServiceTerms.Text != text {
|
|
serviceTerms, err := c.App.CreateServiceTerms(text, userId)
|
|
if err != nil {
|
|
c.Err = err
|
|
return
|
|
}
|
|
|
|
w.Write([]byte(serviceTerms.ToJson()))
|
|
} else {
|
|
w.Write([]byte(oldServiceTerms.ToJson()))
|
|
}
|
|
}
|