Add RequestTrialLicense function to the plugin API (#17551)

* Add RequestTrialLicense function to the plugin API

* Fix strings IDs

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
Alejandro García Montoro
2021-05-14 10:35:59 +02:00
коммит произвёл GitHub
родитель ee43bf9a84
Коммит 0bf7aed02e
5 изменённых файлов: 96 добавлений и 0 удалений

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

@@ -1105,3 +1105,40 @@ func (api *PluginAPI) PublishPluginClusterEvent(ev model.PluginClusterEvent,
return nil
}
// RequestTrialLicense requests a trial license and installs it in the server
func (api *PluginAPI) RequestTrialLicense(requesterID string, users int, termsAccepted bool, receiveEmailsAccepted bool) *model.AppError {
if *api.app.Config().ExperimentalSettings.RestrictSystemAdmin {
return model.NewAppError("RequestTrialLicense", "api.restricted_system_admin", nil, "", http.StatusForbidden)
}
if !termsAccepted {
return model.NewAppError("RequestTrialLicense", "api.license.request-trial.bad-request.terms-not-accepted", nil, "", http.StatusBadRequest)
}
if users == 0 {
return model.NewAppError("RequestTrialLicense", "api.license.request-trial.bad-request", nil, "", http.StatusBadRequest)
}
requester, err := api.app.GetUser(requesterID)
if err != nil {
return err
}
trialLicenseRequest := &model.TrialLicenseRequest{
ServerID: api.app.TelemetryId(),
Name: requester.GetDisplayName(model.SHOW_FULLNAME),
Email: requester.Email,
SiteName: *api.app.Config().TeamSettings.SiteName,
SiteURL: *api.app.Config().ServiceSettings.SiteURL,
Users: users,
TermsAccepted: termsAccepted,
ReceiveEmailsAccepted: receiveEmailsAccepted,
}
if trialLicenseRequest.SiteURL == "" {
return model.NewAppError("RequestTrialLicense", "api.license.request_trial_license.no-site-url.app_error", nil, "", http.StatusBadRequest)
}
return api.app.Srv().RequestTrialLicense(trialLicenseRequest)
}