summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Croft2016-05-09 16:27:35 -0400
committerJason Croft2016-05-09 16:27:35 -0400
commit079822dfecfba659a491034c447c679dab2424c7 (patch)
tree9b3d327c63b49f729ae56fd40c6408e24cc81e2c
parent8e8a5e1ecb37f1464b8d7c688a220e2d1436476f (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.js17
-rw-r--r--bower.json2
-rw-r--r--config.json5
-rw-r--r--lib/auth.js10
-rw-r--r--lib/config.js2
-rw-r--r--lib/response.js2
-rw-r--r--package.json1
-rw-r--r--public/views/modal.ejs5
8 files changed, 43 insertions, 1 deletions
diff --git a/app.js b/app.js
index c3c824a6..a6eded98 100644
--- a/app.js
+++ b/app.js
@@ -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',
diff --git a/bower.json b/bower.json
index fcc73317..70973750 100644
--- a/bower.json
+++ b/bower.json
@@ -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>