Skip to content

Commit

Permalink
Merge pull request #2344 from corecache/develop
Browse files Browse the repository at this point in the history
CAS Plugin: refactored logging
  • Loading branch information
engelgabriel committed Feb 25, 2016
2 parents a1488be + f8b63df commit 05942d9
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 21 deletions.
5 changes: 4 additions & 1 deletion packages/rocketchat-cas/cas_rocketchat.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
logger = new Logger('CAS', {});

Meteor.startup(function(){
RocketChat.settings.addGroup('CAS', function() {
this.add("CAS_enabled", false, { type: 'boolean', group: 'CAS', public: true });
Expand All @@ -23,7 +25,6 @@ function updateServices(record) {
}

timer = Meteor.setTimeout(function() {
console.log("Updating login service CAS".blue)
data = {
// These will pe passed to 'node-cas' as options
enabled: RocketChat.settings.get("CAS_enabled"),
Expand All @@ -40,8 +41,10 @@ function updateServices(record) {

// Either register or deregister the CAS login service based upon its configuration
if( data.enabled ) {
logger.info("Enabling CAS login service")
ServiceConfiguration.configurations.upsert({service: 'cas'}, { $set: data });
} else {
logger.info("Disabling CAS login service");
ServiceConfiguration.configurations.remove({service: 'cas'});
}
}, 2000);
Expand Down
25 changes: 14 additions & 11 deletions packages/rocketchat-cas/cas_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ WebApp.connectHandlers.use(function(req, res, next) {
}).run();
});

middleware = function (req, res, next) {
var middleware = function (req, res, next) {
// Make sure to catch any exceptions because otherwise we'd crash
// the runner
try {
Expand All @@ -42,22 +42,24 @@ middleware = function (req, res, next) {
});

} catch (err) {
console.log("account-cas: unexpected error : " + err.message);
logger.error("Unexpected error : " + err.message);
closePopup(res);
}
};

var casTicket = function (req, token, callback) {

// get configuration
if (!RocketChat.settings.get("CAS_enabled")) {
console.log("accounts-cas: cas ist not enabled");
logger.error("Got ticket validation request, but CAS is not enabled");
callback();
}

// get ticket and validate.
var parsedUrl = url.parse(req.url, true);
var ticketId = parsedUrl.query.ticket;
var baseUrl = RocketChat.settings.get("CAS_base_url");
logger.debug("Using CAS_base_url: " + baseUrl);

var cas = new CAS({
base_url: baseUrl,
Expand All @@ -66,19 +68,18 @@ var casTicket = function (req, token, callback) {

cas.validate(ticketId, function(err, status, username) {
if (err) {
console.log("accounts-cas: error when trying to validate " + err);
logger.error("error when trying to validate " + err);
} else {
if (status) {
console.log("accounts-cas: user validated " + username);
logger.info("Validated user: " + username);
_casCredentialTokens[token] = { id: username };
} else {
console.log("accounts-cas: unable to validate " + ticketId);
logger.error("Unable to validate ticket: " + ticketId);
}
}

callback();
});
console.log("Validated: " + ticketId);

return;
};
Expand All @@ -100,23 +101,25 @@ var casTicket = function (req, token, callback) {

var result = _retrieveCredential(options.cas.credentialToken);
var options = { profile: { name: result.id } };
//var user = Accounts.updateOrCreateUserFromExternalService("cas", result, options);

logger.debug("Looking up user with username: " + result.id );
var user = Meteor.users.findOne({ 'username': result.id });

if (!user) {
if (user) {
logger.debug("Using existing user for '" + result.id + "' with id: " + user._id);
} else {
var newUser = {
username: result.id,
active: true,
globalRoles: ['user'],
};

logger.debug("User '" + result.id + "'does not exist yet, creating it");
var userId = Accounts.insertUserDoc({}, newUser);
user = Meteor.users.findOne(userId);
logger.debug("Created new user for '" + result.id + "' with id: " + user._id);
}

console.log("Using user: " + user._id);

return { userId: user._id };
});

Expand Down
17 changes: 8 additions & 9 deletions packages/rocketchat-cas/package.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,24 @@ Package.describe({

Package.onUse(function(api) {

api.versionsFrom('1.1.0.2');
api.versionsFrom('1.0');

// Server libs
api.use('rocketchat:lib', 'server');
api.use('rocketchat:logger', 'server');
api.use('service-configuration', 'server');

// Server files
api.add_files('cas_rocketchat.js', 'server');

api.use('routepolicy', 'server');
api.use('webapp', 'server');
api.use('accounts-base', ['client', 'server']);
// Export Accounts (etc) to packages using this one.
api.imply('accounts-base', ['client', 'server']);
api.use('accounts-base', 'server');

api.use('underscore');

// Server files
api.add_files('cas_rocketchat.js', 'server');
api.add_files('cas_server.js', 'server');

// Client files
api.add_files('cas_client.js', 'client');
api.add_files('cas_server.js', 'server');

});

Expand Down

0 comments on commit 05942d9

Please sign in to comment.