diff options
Diffstat (limited to 'api/license.go')
-rw-r--r-- | api/license.go | 95 |
1 files changed, 4 insertions, 91 deletions
diff --git a/api/license.go b/api/license.go index 41cba914d..ea5de20d4 100644 --- a/api/license.go +++ b/api/license.go @@ -7,7 +7,6 @@ import ( "bytes" "io" "net/http" - "strings" l4g "github.com/alecthomas/log4go" "github.com/mattermost/platform/app" @@ -15,11 +14,6 @@ import ( "github.com/mattermost/platform/utils" ) -const ( - EXPIRED_LICENSE_ERROR = "api.license.add_license.expired.app_error" - INVALID_LICENSE_ERROR = "api.license.add_license.invalid.app_error" -) - func InitLicense() { l4g.Debug(utils.T("api.license.init.debug")) @@ -28,26 +22,6 @@ func InitLicense() { BaseRoutes.License.Handle("/client_config", ApiAppHandler(getClientLicenceConfig)).Methods("GET") } -func LoadLicense() { - licenseId := "" - if result := <-app.Srv.Store.System().Get(); result.Err == nil { - props := result.Data.(model.StringMap) - licenseId = props[model.SYSTEM_ACTIVE_LICENSE_ID] - } - - if len(licenseId) != 26 { - l4g.Info(utils.T("mattermost.load_license.find.warn")) - return - } - - if result := <-app.Srv.Store.License().Get(licenseId); result.Err == nil { - record := result.Data.(*model.LicenseRecord) - utils.LoadLicense([]byte(record.Bytes)) - } else { - l4g.Info(utils.T("mattermost.load_license.find.warn")) - } -} - func addLicense(c *Context, w http.ResponseWriter, r *http.Request) { c.LogAudit("attempt") err := r.ParseMultipartForm(*utils.Cfg.FileSettings.MaxFileSize) @@ -83,10 +57,10 @@ func addLicense(c *Context, w http.ResponseWriter, r *http.Request) { buf := bytes.NewBuffer(nil) io.Copy(buf, file) - if license, err := SaveLicense(buf.Bytes()); err != nil { - if err.Id == EXPIRED_LICENSE_ERROR { + if license, err := app.SaveLicense(buf.Bytes()); err != nil { + if err.Id == model.EXPIRED_LICENSE_ERROR { c.LogAudit("failed - expired or non-started license") - } else if err.Id == INVALID_LICENSE_ERROR { + } else if err.Id == model.INVALID_LICENSE_ERROR { c.LogAudit("failed - invalid license") } else { c.LogAudit("failed - unable to save license") @@ -99,56 +73,10 @@ func addLicense(c *Context, w http.ResponseWriter, r *http.Request) { } } -func SaveLicense(licenseBytes []byte) (*model.License, *model.AppError) { - var license *model.License - - if success, licenseStr := utils.ValidateLicense(licenseBytes); success { - license = model.LicenseFromJson(strings.NewReader(licenseStr)) - - if result := <-app.Srv.Store.User().AnalyticsUniqueUserCount(""); result.Err != nil { - return nil, model.NewLocAppError("addLicense", "api.license.add_license.invalid_count.app_error", nil, result.Err.Error()) - } else { - uniqueUserCount := result.Data.(int64) - - if uniqueUserCount > int64(*license.Features.Users) { - return nil, model.NewLocAppError("addLicense", "api.license.add_license.unique_users.app_error", map[string]interface{}{"Users": *license.Features.Users, "Count": uniqueUserCount}, "") - } - } - - if ok := utils.SetLicense(license); !ok { - return nil, model.NewLocAppError("addLicense", EXPIRED_LICENSE_ERROR, nil, "") - } - - record := &model.LicenseRecord{} - record.Id = license.Id - record.Bytes = string(licenseBytes) - rchan := app.Srv.Store.License().Save(record) - - sysVar := &model.System{} - sysVar.Name = model.SYSTEM_ACTIVE_LICENSE_ID - sysVar.Value = license.Id - schan := app.Srv.Store.System().SaveOrUpdate(sysVar) - - if result := <-rchan; result.Err != nil { - RemoveLicense() - return nil, model.NewLocAppError("addLicense", "api.license.add_license.save.app_error", nil, "err="+result.Err.Error()) - } - - if result := <-schan; result.Err != nil { - RemoveLicense() - return nil, model.NewLocAppError("addLicense", "api.license.add_license.save_active.app_error", nil, "") - } - } else { - return nil, model.NewLocAppError("addLicense", INVALID_LICENSE_ERROR, nil, "") - } - - return license, nil -} - func removeLicense(c *Context, w http.ResponseWriter, r *http.Request) { c.LogAudit("") - if err := RemoveLicense(); err != nil { + if err := app.RemoveLicense(); err != nil { c.Err = err return } @@ -158,21 +86,6 @@ func removeLicense(c *Context, w http.ResponseWriter, r *http.Request) { w.Write([]byte(model.MapToJson(rdata))) } -func RemoveLicense() *model.AppError { - utils.RemoveLicense() - - sysVar := &model.System{} - sysVar.Name = model.SYSTEM_ACTIVE_LICENSE_ID - sysVar.Value = "" - - if result := <-app.Srv.Store.System().SaveOrUpdate(sysVar); result.Err != nil { - utils.RemoveLicense() - return result.Err - } - - return nil -} - func getClientLicenceConfig(c *Context, w http.ResponseWriter, r *http.Request) { useSanitizedLicense := !app.SessionHasPermissionTo(c.Session, model.PERMISSION_MANAGE_SYSTEM) |