@resin/pinejs
Version:
Pine.js is a sophisticated rules-driven API engine that enables you to define rules in a structured subset of English. Those rules are used in order for Pine.js to generate a database schema and the associated [OData](http://www.odata.org/) API. This make
65 lines • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Promise = require("bluebird");
const permissions = require('../sbvr-api/permissions');
exports.checkPassword = (username, password, done) => permissions.checkPassword(username, password)
.catchReturn(false)
.asCallback(done);
const setup = (app) => {
if (!process.browser) {
const passport = require('passport');
app.use(passport.initialize());
app.use(passport.session());
const { Strategy: LocalStrategy } = require('passport-local');
passport.serializeUser((user, done) => {
done(null, user);
});
passport.deserializeUser((user, done) => {
done(null, user);
});
passport.use(new LocalStrategy(exports.checkPassword));
exports.login = (fn) => (req, res, next) => passport.authenticate('local', (err, user) => {
if (err || user == null) {
fn(err, user, req, res, next);
return;
}
req.login(user, (err) => {
fn(err, user, req, res, next);
});
})(req, res, next);
exports.logout = (req, _res, next) => {
req.logout();
next();
};
}
else {
let loggedIn = false;
let loggedInUser = null;
app.use((req, _res, next) => {
if (loggedIn === false) {
req.user = loggedInUser;
}
next();
});
exports.login = (fn) => (req, res, next) => exports.checkPassword(req.body.username, req.body.password, (err, user) => {
if (user) {
loggedIn = true;
loggedInUser = user;
}
fn(err, user, req, res, next);
});
exports.logout = (req, _res, next) => {
req.user = null;
loggedIn = false;
loggedInUser = null;
next();
};
}
return Promise.resolve();
};
exports.config = {
models: [{
customServerCode: { setup },
}],
};
//# sourceMappingURL=passport-pinejs.js.map