mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
* Migrate admin functions into app package * More user function refactoring * Move post functions into app package
68 lines
2.0 KiB
Go
68 lines
2.0 KiB
Go
// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
package app
|
|
|
|
import (
|
|
"io"
|
|
"mime/multipart"
|
|
"net/http"
|
|
"os"
|
|
|
|
"github.com/mattermost/platform/einterfaces"
|
|
"github.com/mattermost/platform/model"
|
|
"github.com/mattermost/platform/utils"
|
|
)
|
|
|
|
func GetSamlMetadata() (string, *model.AppError) {
|
|
samlInterface := einterfaces.GetSamlInterface()
|
|
|
|
if samlInterface == nil {
|
|
err := model.NewLocAppError("GetSamlMetadata", "api.admin.saml.not_available.app_error", nil, "")
|
|
err.StatusCode = http.StatusNotImplemented
|
|
return "", err
|
|
}
|
|
|
|
if result, err := samlInterface.GetMetadata(); err != nil {
|
|
return "", model.NewLocAppError("GetSamlMetadata", "api.admin.saml.metadata.app_error", nil, "err="+err.Message)
|
|
} else {
|
|
return result, nil
|
|
}
|
|
}
|
|
|
|
func AddSamlCertificate(fileData *multipart.FileHeader) *model.AppError {
|
|
file, err := fileData.Open()
|
|
defer file.Close()
|
|
if err != nil {
|
|
return model.NewLocAppError("AddSamlCertificate", "api.admin.add_certificate.open.app_error", nil, err.Error())
|
|
}
|
|
|
|
out, err := os.Create(utils.FindDir("config") + fileData.Filename)
|
|
if err != nil {
|
|
return model.NewLocAppError("AddSamlCertificate", "api.admin.add_certificate.saving.app_error", nil, err.Error())
|
|
}
|
|
defer out.Close()
|
|
|
|
io.Copy(out, file)
|
|
return nil
|
|
}
|
|
|
|
func RemoveSamlCertificate(filename string) *model.AppError {
|
|
if err := os.Remove(utils.FindConfigFile(filename)); err != nil {
|
|
return model.NewLocAppError("removeCertificate", "api.admin.remove_certificate.delete.app_error",
|
|
map[string]interface{}{"Filename": filename}, err.Error())
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func GetSamlCertificateStatus() map[string]interface{} {
|
|
status := make(map[string]interface{})
|
|
|
|
status["IdpCertificateFile"] = utils.FileExistsInConfigFolder(*utils.Cfg.SamlSettings.IdpCertificateFile)
|
|
status["PrivateKeyFile"] = utils.FileExistsInConfigFolder(*utils.Cfg.SamlSettings.PrivateKeyFile)
|
|
status["PublicCertificateFile"] = utils.FileExistsInConfigFolder(*utils.Cfg.SamlSettings.PublicCertificateFile)
|
|
|
|
return status
|
|
}
|