PLT-5905 Fix saml certificates for 3.7 (#5843)

Этот коммит содержится в:
enahum
2017-03-22 18:26:00 -03:00
коммит произвёл George Goldberg
родитель 0d917b08ed
Коммит 8ec3757074

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

@@ -12,6 +12,7 @@ import (
"github.com/mattermost/platform/einterfaces" "github.com/mattermost/platform/einterfaces"
"github.com/mattermost/platform/model" "github.com/mattermost/platform/model"
"github.com/mattermost/platform/utils" "github.com/mattermost/platform/utils"
"path/filepath"
) )
func GetSamlMetadata() (string, *model.AppError) { func GetSamlMetadata() (string, *model.AppError) {
@@ -31,13 +32,19 @@ func GetSamlMetadata() (string, *model.AppError) {
} }
func AddSamlCertificate(fileData *multipart.FileHeader) *model.AppError { func AddSamlCertificate(fileData *multipart.FileHeader) *model.AppError {
filename := filepath.Base(fileData.Filename)
if filename == "." || filename == string(filepath.Separator) {
return model.NewLocAppError("AddSamlCertificate", "api.admin.add_certificate.saving.app_error", nil, "")
}
file, err := fileData.Open() file, err := fileData.Open()
defer file.Close() defer file.Close()
if err != nil { if err != nil {
return model.NewLocAppError("AddSamlCertificate", "api.admin.add_certificate.open.app_error", nil, err.Error()) return model.NewLocAppError("AddSamlCertificate", "api.admin.add_certificate.open.app_error", nil, err.Error())
} }
out, err := os.Create(utils.FindDir("config") + fileData.Filename) out, err := os.Create(utils.FindDir("config") + filename)
if err != nil { if err != nil {
return model.NewLocAppError("AddSamlCertificate", "api.admin.add_certificate.saving.app_error", nil, err.Error()) return model.NewLocAppError("AddSamlCertificate", "api.admin.add_certificate.saving.app_error", nil, err.Error())
} }
@@ -48,6 +55,12 @@ func AddSamlCertificate(fileData *multipart.FileHeader) *model.AppError {
} }
func RemoveSamlCertificate(filename string) *model.AppError { func RemoveSamlCertificate(filename string) *model.AppError {
filename = filepath.Base(filename)
if filename == "." || filename == string(filepath.Separator) {
return model.NewLocAppError("AddSamlCertificate", "api.admin.remove_certificate.delete.app_error", nil, "")
}
if err := os.Remove(utils.FindConfigFile(filename)); err != nil { if err := os.Remove(utils.FindConfigFile(filename)); err != nil {
return model.NewLocAppError("removeCertificate", "api.admin.remove_certificate.delete.app_error", return model.NewLocAppError("removeCertificate", "api.admin.remove_certificate.delete.app_error",
map[string]interface{}{"Filename": filename}, err.Error()) map[string]interface{}{"Filename": filename}, err.Error())