diff options
author | Jason Croft | 2016-05-09 16:27:35 -0400 |
---|---|---|
committer | Jason Croft | 2016-05-09 16:27:35 -0400 |
commit | 079822dfecfba659a491034c447c679dab2424c7 (patch) | |
tree | 9b3d327c63b49f729ae56fd40c6408e24cc81e2c | |
parent | 8e8a5e1ecb37f1464b8d7c688a220e2d1436476f (diff) |
Start extending to support GitLab authentication.
Add necessary dependency.
Add baseURL parameter for self-hosted GitLab
Add necessary require.
Add block for GitLab auth.
Fix typo
Update font-awesome dependency for GitLab icon.
Use a color closer to GitLab orange.
More direct TODO
-rw-r--r-- | app.js | 17 | ||||
-rw-r--r-- | bower.json | 2 | ||||
-rw-r--r-- | config.json | 5 | ||||
-rw-r--r-- | lib/auth.js | 10 | ||||
-rw-r--r-- | lib/config.js | 2 | ||||
-rw-r--r-- | lib/response.js | 2 | ||||
-rw-r--r-- | package.json | 1 | ||||
-rw-r--r-- | public/views/modal.ejs | 5 |
8 files changed, 43 insertions, 1 deletions
@@ -292,6 +292,23 @@ if (config.github) { //github callback actions app.get('/auth/github/callback/:noteId/:action', response.githubActions); } +//gitlab auth +if (config.gitlab) { + app.get('/auth/gitlab', + passport.authenticate('gitlab'), + function (req, res) {}); + //gitlab auth callback + app.get('/auth/gitlab/callback', + passport.authenticate('gitlab', { + failureRedirect: config.serverurl + }), + function (req, res) { + res.redirect(config.serverurl); + }); + //gitlab callback actions + // TODO: Maybe in the future + //app.get('/auth/gitlab/callback/:noteId/:action', response.gitlabActions); +} //dropbox auth if (config.dropbox) { app.get('/auth/dropbox', @@ -20,7 +20,7 @@ "dependencies": { "bootstrap": "~3.3.6", "jquery": "~1.11.3", - "font-awesome": "~4.5.0", + "font-awesome": "~4.6.0", "Ionicons": "ionicons#~2.0.1", "reveal.js": "~3.2.0", "gsap": "greensock#~1.18.0", diff --git a/config.json b/config.json index 16ad258b..c65e9c7c 100644 --- a/config.json +++ b/config.json @@ -32,6 +32,11 @@ "clientID": "change this", "clientSecret": "change this" }, + "gitlab": { + "baseURL": "change this", + "clientID": "change this", + "clientSecret": "change this" + }, "dropbox": { "clientID": "change this", "clientSecret": "change this" diff --git a/lib/auth.js b/lib/auth.js index af3e8d1d..d495605a 100644 --- a/lib/auth.js +++ b/lib/auth.js @@ -4,6 +4,7 @@ var passport = require('passport'); var FacebookStrategy = require('passport-facebook').Strategy; var TwitterStrategy = require('passport-twitter').Strategy; var GithubStrategy = require('passport-github').Strategy; +var GitlabStrategy = require('passport-gitlab2').Strategy; var DropboxStrategy = require('passport-dropbox-oauth2').Strategy; //core @@ -56,6 +57,15 @@ if (config.github) { callbackURL: config.serverurl + '/auth/github/callback' }, callback)); } +//gitlab +if (config.gitlab) { + passport.use(new GitlabStrategy({ + baseURL: config.gitlab.baseURL, + clientID: config.gitlab.clientID, + clientSecret: config.gitlab.clientSecret, + callbackURL: config.serverurl + '/auth/gitlab/callback' + }, callback)); +} //dropbox if (config.dropbox) { passport.use(new DropboxStrategy({ diff --git a/lib/config.js b/lib/config.js index 6738d4a8..c138b459 100644 --- a/lib/config.js +++ b/lib/config.js @@ -59,6 +59,7 @@ var documentmaxlength = config.documentmaxlength || 100000; var facebook = config.facebook || false; var twitter = config.twitter || false; var github = config.github || false; +var gitlab = config.gitlab || false; var dropbox = config.dropbox || false; var imgur = config.imgur || false; @@ -110,6 +111,7 @@ module.exports = { facebook: facebook, twitter: twitter, github: github, + gitlab: gitlab, dropbox: dropbox, imgur: imgur };
\ No newline at end of file diff --git a/lib/response.js b/lib/response.js index 7a75e234..2114c99b 100644 --- a/lib/response.js +++ b/lib/response.js @@ -94,6 +94,7 @@ function showIndex(req, res, next) { facebook: config.facebook, twitter: config.twitter, github: config.github, + gitlab: config.gitlab, dropbox: config.dropbox, }); res.write(content); @@ -124,6 +125,7 @@ function responseHackMD(res, note) { facebook: config.facebook, twitter: config.twitter, github: config.github, + gitlab: config.gitlab, dropbox: config.dropbox, }); var buf = html; diff --git a/package.json b/package.json index a70bce31..3ecaa842 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "passport-dropbox-oauth2": "^1.0.0", "passport-facebook": "^2.1.0", "passport-github": "^1.1.0", + "passport-gitlab2": "^2.2.0", "passport-twitter": "^1.0.4", "passport.socketio": "^3.6.1", "pg": "^4.5.3", diff --git a/public/views/modal.ejs b/public/views/modal.ejs index 260ff423..4eb33bf3 100644 --- a/public/views/modal.ejs +++ b/public/views/modal.ejs @@ -28,6 +28,11 @@ <i class="fa fa-dropbox"></i> Sign in via Dropbox </a> <% } %> + <% if(gitlab) { %> + <a href="<%- url %>/auth/gitlab" class="btn btn-lg btn-block btn-social btn-soundcloud"> + <i class="fa fa-gitlab"></i> Sign in via GitLab + </a> + <% } %> </div> </div> </div> |