Skip to content

Instantly share code, notes, and snippets.

@ralt
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ralt/fdbab490b7619aa43f91 to your computer and use it in GitHub Desktop.
Save ralt/fdbab490b7619aa43f91 to your computer and use it in GitHub Desktop.
router.get('/set-authentication', function(req, res) {
var groups = global.mysql.authentication.groups;
db.Group.find(groups, createIfNotExists);
function createIfNotExists(err, results) {
if (err) return res.send(500);
var missing = findMissing(groups, results);
db.Group.insert(missing, createAdminUser);
}
function findMissing(groups, results) {
return groups.reduce(function(ret, group, i) {
for (var j = 0; j < results.length; j++) {
if (results[i].name === group.name) {
ret.push(group);
return ret;
}
}
}, []);
}
function createAdminUser(err) {
if (err) return res.send(500);
var adminUser = db.User(global.mysql.authentication.adminUser);
db.Group.findOne({ where: { authority: 9 } }, function(err, result) {
if (err) return res.send(500);
if (!result) return res.send(404);
adminUser.save(addUserToGroup(adminUser, result));
});
}
function addUserToGroup(adminUser, result) {
return function(err) {
if (err) res.send(500);
adminUser.groups.add(result, userAddedToGroup);
};
}
function userAddedToGroup(err) {
if (err) return res.send(500);
res.send(200);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment