diff options
author | JoramWilander <jwawilander@gmail.com> | 2018-07-10 15:01:43 -0400 |
---|---|---|
committer | JoramWilander <jwawilander@gmail.com> | 2018-07-10 15:01:43 -0400 |
commit | 6c7dc2d29ccac5f9925402f6be1a4c2a3c46c005 (patch) | |
tree | 5564a47257bf6e85aaef711980c5b0fcb4d07dcc /app/plugin/ldapextras | |
parent | c042ffa460296587579aff54b157a5109e022f7e (diff) | |
parent | 1e1a5e5e85240f25c4faddcb24c5a29a915fe6e4 (diff) | |
download | chat-6c7dc2d29ccac5f9925402f6be1a4c2a3c46c005.tar.gz chat-6c7dc2d29ccac5f9925402f6be1a4c2a3c46c005.tar.bz2 chat-6c7dc2d29ccac5f9925402f6be1a4c2a3c46c005.zip |
Merge branch 'plugins-2'
Diffstat (limited to 'app/plugin/ldapextras')
-rw-r--r-- | app/plugin/ldapextras/configuration.go | 9 | ||||
-rw-r--r-- | app/plugin/ldapextras/plugin.go | 71 |
2 files changed, 0 insertions, 80 deletions
diff --git a/app/plugin/ldapextras/configuration.go b/app/plugin/ldapextras/configuration.go deleted file mode 100644 index 078c29925..000000000 --- a/app/plugin/ldapextras/configuration.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -package ldapextras - -type Configuration struct { - Enabled bool - Attributes []string -} diff --git a/app/plugin/ldapextras/plugin.go b/app/plugin/ldapextras/plugin.go deleted file mode 100644 index e0645b68e..000000000 --- a/app/plugin/ldapextras/plugin.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -package ldapextras - -import ( - "fmt" - "net/http" - "sync/atomic" - - "github.com/gorilla/mux" - - "github.com/mattermost/mattermost-server/app/plugin" - "github.com/mattermost/mattermost-server/mlog" - "github.com/mattermost/mattermost-server/model" -) - -type Plugin struct { - plugin.Base - api plugin.API - configuration atomic.Value -} - -func (p *Plugin) Initialize(api plugin.API) { - p.api = api - p.OnConfigurationChange() - api.PluginRouter().HandleFunc("/users/{user_id:[A-Za-z0-9]+}/attributes", p.handleGetAttributes).Methods("GET") -} - -func (p *Plugin) config() *Configuration { - return p.configuration.Load().(*Configuration) -} - -func (p *Plugin) OnConfigurationChange() { - var configuration Configuration - if err := p.api.LoadPluginConfiguration(&configuration); err != nil { - mlog.Error(err.Error()) - } - p.configuration.Store(&configuration) -} - -func (p *Plugin) handleGetAttributes(w http.ResponseWriter, r *http.Request) { - config := p.config() - if !config.Enabled || len(config.Attributes) == 0 { - http.Error(w, "This plugin is not configured", http.StatusNotImplemented) - return - } - - session, err := p.api.GetSessionFromRequest(r) - - if session == nil || err != nil { - http.Error(w, "Invalid session", http.StatusUnauthorized) - return - } - - // Only requires a valid session, no other permission checks required - - params := mux.Vars(r) - id := params["user_id"] - - if len(id) != 26 { - http.Error(w, "Invalid user id", http.StatusUnauthorized) - } - - attributes, err := p.api.GetLdapUserAttributes(id, config.Attributes) - if err != nil { - http.Error(w, fmt.Sprintf("Errored getting attributes: %v", err.Error()), http.StatusInternalServerError) - } - - w.Write([]byte(model.MapToJson(attributes))) -} |