summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
authorenahum <nahumhbl@gmail.com>2016-07-13 07:38:58 -0400
committerJoram Wilander <jwawilander@gmail.com>2016-07-13 07:38:58 -0400
commit540ebbd74db3a39007a1176e7bba2e275c3adf03 (patch)
tree84d08a7db4031e53aad83632c045830f10a8cf32 /model
parentd2df385f41e5cba47c5138ce1b0c8458bebd45e1 (diff)
downloadchat-540ebbd74db3a39007a1176e7bba2e275c3adf03.tar.gz
chat-540ebbd74db3a39007a1176e7bba2e275c3adf03.tar.bz2
chat-540ebbd74db3a39007a1176e7bba2e275c3adf03.zip
SAML Unit Tests, Go Driver & Removed vendor dependency (#3532)
Diffstat (limited to 'model')
-rw-r--r--model/client.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/model/client.go b/model/client.go
index 0ba8913af..fa19ecac2 100644
--- a/model/client.go
+++ b/model/client.go
@@ -1649,3 +1649,36 @@ func (c *Client) DeleteEmoji(id string) (bool, *AppError) {
func (c *Client) GetCustomEmojiImageUrl(id string) string {
return c.GetEmojiRoute() + "/" + id
}
+
+// Uploads a x509 base64 Certificate or Private Key file to be used with SAML.
+// data byte array is required and needs to be a Multi-Part with 'certificate' as the field name
+// contentType is also required. Returns nil if succesful, otherwise returns an AppError
+func (c *Client) UploadCertificateFile(data []byte, contentType string) *AppError {
+ url := c.ApiUrl + "/admin/add_certificate"
+ rq, _ := http.NewRequest("POST", url, bytes.NewReader(data))
+ rq.Header.Set("Content-Type", contentType)
+
+ if len(c.AuthToken) > 0 {
+ rq.Header.Set(HEADER_AUTH, "BEARER "+c.AuthToken)
+ }
+
+ if rp, err := c.HttpClient.Do(rq); err != nil {
+ return NewLocAppError(url, "model.client.connecting.app_error", nil, err.Error())
+ } else if rp.StatusCode >= 300 {
+ return AppErrorFromJson(rp.Body)
+ } else {
+ defer closeBody(rp)
+ return nil
+ }
+}
+
+// Removes a x509 base64 Certificate or Private Key file used with SAML.
+// filename is required. Returns nil if succesful, otherwise returns an AppError
+func (c *Client) RemoveCertificateFile(filename string) *AppError {
+ if r, err := c.DoApiPost("/admin/remove_certificate", MapToJson(map[string]string{"filename": filename})); err != nil {
+ return err
+ } else {
+ defer closeBody(r)
+ return nil
+ }
+}