@openinc/parse-server-opendash
Version:
Parse Server Cloud Code for open.INC Stack.
51 lines (50 loc) • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.init = init;
const transformLogin_1 = require("../helper/transformLogin");
async function init(name) {
Parse.Cloud.define(name, async function (request) {
const username = (0, transformLogin_1.transformLogin)(request.params.login);
const password = request.params.password;
try {
const user = await Parse.User.logIn(username, password);
return {
sessionToken: user.getSessionToken(),
};
}
catch (error) {
if (error instanceof Parse.Error) {
if (error.message.startsWith("t:")) {
throw error;
}
}
try {
const user = await Parse.Cloud.run("ldap_login", {
username,
password,
});
if (!user?.session) {
throw new Error();
}
return {
sessionToken: user.session,
};
}
catch (error) {
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, "t:AUTH_INVALID");
}
}
}, {
requireUser: false,
fields: {
login: {
required: true,
type: String,
},
password: {
required: true,
type: String,
},
},
});
}