summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYi EungJun <eungjun.yi@navercorp.com>2015-12-01 16:39:27 +0900
committerYi EungJun <eungjun.yi@navercorp.com>2015-12-02 13:23:57 +0900
commit6d63f5703c1849b688aaef6570e9b366b70eefab (patch)
tree25a15f2846dca5076bdfd694715d28ac67723ebb
parent91c092cc21a0401547c51c026fa54699a4791234 (diff)
downloadchat-6d63f5703c1849b688aaef6570e9b366b70eefab.tar.gz
chat-6d63f5703c1849b688aaef6570e9b366b70eefab.tar.bz2
chat-6d63f5703c1849b688aaef6570e9b366b70eefab.zip
Make the Gitlab SSO Support compatible with Github Enterprise
See doc/integrations/Single-Sign-On/Github.md for the usage. Note: I thought it should work also with Github.com but it failed with "Bad token type" error.
-rw-r--r--doc/integrations/Single-Sign-On/Github.md18
-rw-r--r--model/gitlab.go7
2 files changed, 24 insertions, 1 deletions
diff --git a/doc/integrations/Single-Sign-On/Github.md b/doc/integrations/Single-Sign-On/Github.md
new file mode 100644
index 000000000..12b2c537e
--- /dev/null
+++ b/doc/integrations/Single-Sign-On/Github.md
@@ -0,0 +1,18 @@
+## Configuring GitHub Enterprise Single-Sign-On
+
+Follow these steps to configure Mattermost to use GitHub Enterprise as a single-sign-on (SSO) service for team creation, account creation and sign-in.
+
+1. Login to your GitHub Enterprise account and go to the Applications section in Profile Settings.
+2. Add a new application called "Mattermost" with the following as Authorization callback URL:
+ * `<your-mattermost-url>` (example: http://localhost:8065)
+
+3. Submit the application and copy the given _Id_ and _Secret_ into the appropriate _GitLabSettings_ fields in config/config.json
+
+4. Also in config/config.json, set _Enable_ to `true` for the _gitlab_ section, leave _Scope_ blank and use the following for the endpoints:
+ * _AuthEndpoint_: `https://<your-github-enterprise-url>/oauth/authorize` (example https://github.com/oauth/authorize)
+ * _TokenEndpoint_: `https://<your-github-enterprise-url>/oauth/access_token`
+ * _UserApiEndpoint_: `https://<your-github-enterprise-url>/api/v3/user`
+
+5. (Optional) If you would like to force all users to sign-up with GitHub Enterprise only, in the _ServiceSettings_ section of config/config.json set _DisableEmailSignUp_ to `true`.
+
+6. Restart your Mattermost server to see the changes take effect.
diff --git a/model/gitlab.go b/model/gitlab.go
index 9f86c7b72..2a8756807 100644
--- a/model/gitlab.go
+++ b/model/gitlab.go
@@ -17,13 +17,18 @@ const (
type GitLabUser struct {
Id int64 `json:"id"`
Username string `json:"username"`
+ Login string `json:"login"`
Email string `json:"email"`
Name string `json:"name"`
}
func UserFromGitLabUser(glu *GitLabUser) *User {
user := &User{}
- user.Username = CleanUsername(glu.Username)
+ username := glu.Username
+ if username == "" {
+ username = glu.Login
+ }
+ user.Username = CleanUsername(username)
splitName := strings.Split(glu.Name, " ")
if len(splitName) == 2 {
user.FirstName = splitName[0]