function (req, res){ var isAdmin = !!req.session.admin var isFellow = false var isInstructor = false MP.me.groups(req.session.accessToken).then(function(groups) { groups.forEach(function(cohorts){ if(cohorts.user_role === 'fellow') isFellow = true if(cohorts.user_role === 'instructor') isInstructor = true }) isAdmin = !!req.session.admin }) .then(function(){ if(!isInstructor && !isAdmin && !isFellow) { res.redirect('/nope') } else { res.cookie("picture", App.picture) res.cookie("name", App.name) res.cookie("email", App.email) res.redirect('/') } }) }
function(req, accessToken, refreshToken, profile, done) { MP.me.adminStatus(accessToken) .then(function (subjects) { req.session.accessToken = accessToken // // Only assign if there are any subjects at all. // This makes internal logic easier, // and sends less data over the wire. // if ( subjects.groups.length ) { req.session.admin = { groups: subjects.groups.map( g => g.uid ) } } App.picture = profile.avatar_url App.name = profile.name App.email = profile.email done(null, profile) }) .catch(function (err) { console.log("Error getting admin status:", err) done(err) }) }