Skip to content
This repository has been archived by the owner on Jun 13, 2023. It is now read-only.

Commit

Permalink
#112 - fixed auth promise
Browse files Browse the repository at this point in the history
  • Loading branch information
natoverse committed Mar 17, 2015
1 parent dee6158 commit 39d460d
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 10 deletions.
1 change: 1 addition & 0 deletions app/server/components/repositories/teams.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ module.exports = {

edit (username, repoId, permission) {

debug('editing user [' + username + '] permission on team for repo [' + repoId + '] to permission [' + permission + ']');
// get permission map
return permUtil.getPermissionMap().then(map => {

Expand Down
9 changes: 5 additions & 4 deletions app/server/components/repositories/users.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
'use strict';

var userUtil = require('./util/users'),
Bluebird = require('bluebird'),
permUtil = require('./util/permissions');
Bluebird = require('bluebird');

module.exports = {

Expand All @@ -14,8 +13,10 @@ module.exports = {
},

isOrgMember (username) {
return userUtil.isOrgMember(username).then(function (data) {
return "204 No Content" === data.meta.success;
return new Promise((resolve, reject) => {
userUtil.isOrgMember(username).then(function (data) {
resolve(data.meta.status === '204 No Content');
});
});
}
};
2 changes: 1 addition & 1 deletion app/server/components/repositories/util/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ module.exports = {
isOrgMember(username) {
return provider.github.isOrgMember({
org: provider.github.config.org,
username: username
user: username
});
}
};
32 changes: 27 additions & 5 deletions app/server/middleware/authenticate.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,37 @@
'use strict';

var users = require('../components/repositories/users');
let users = require('../components/repositories/users'),
debug = require('debug')('app:middleware:authenticate');

module.exports = {
isAuthenticated (req, res, next) {
var authenticated = req.isAuthenticated();

if (authenticated && users.isOrgMember(req.session.passport.user.username)) {
next();
} else {
let authenticated = req.isAuthenticated();

function f401() {
res.send(401);
}

debug('session is authenticated: ' + authenticated);

if (authenticated) {

let username = req.session.passport.user.username;

debug('checking membership for ' + username);

users.isOrgMember(username).then((isMember) => {
debug('user [' + username + '] is org member: ' + isMember);
if (isMember) {
next();
} else {
f401();
}
}).catch(() => {
f401();
});
} else {
f401();
}
}
};

0 comments on commit 39d460d

Please sign in to comment.