@openinc/parse-server-opendash 2.3.13 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,6 +12,11 @@ async function init(name) {
12
12
  };
13
13
  }
14
14
  catch (error) {
15
+ if (error instanceof Parse.Error) {
16
+ if (error.message.startsWith("t:")) {
17
+ throw error;
18
+ }
19
+ }
15
20
  try {
16
21
  const user = await Parse.Cloud.run("ldap_login", {
17
22
  username,
@@ -54,7 +54,7 @@ async function sendTemplateEmail({ to, subject, fallback, template, data, }) {
54
54
  const email = new types_1.Core_Email({
55
55
  payload: {
56
56
  to,
57
- subject,
57
+ subject: renderEmailTemplate("subject", template, data, subject),
58
58
  text: renderEmailTemplate("txt", template, data, fallback),
59
59
  html: renderEmailTemplate("html", template, data, undefined),
60
60
  },
@@ -75,9 +75,13 @@ function validateEmailTemplate(templateDir, template) {
75
75
  }
76
76
  function renderEmailTemplate(type, template, data, fallback) {
77
77
  const fullTemplate = template + "." + type;
78
- return validateEmailTemplate(emailTemplateDir, fullTemplate)
79
- ? nunjucks_1.default.render(fullTemplate, data)
80
- : fallback;
78
+ if (validateEmailTemplate(emailTemplateDir, fullTemplate)) {
79
+ return nunjucks_1.default.render(fullTemplate, data);
80
+ }
81
+ if (type === "html") {
82
+ return renderEmailTemplate("txt", template, data, fallback);
83
+ }
84
+ return fallback || "";
81
85
  }
82
86
  async function init() {
83
87
  (0, __1.beforeSaveHook)(types_1.Core_Email, async (request) => {
@@ -2,13 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = void 0;
4
4
  const __1 = require("..");
5
+ const config_1 = require("../config");
5
6
  const types_1 = require("../types");
6
7
  async function init() {
7
8
  (0, __1.beforeSaveHook)(Parse.User, async (request) => {
8
9
  const user = request.object;
9
10
  const tenant = user.get("tenant");
10
11
  const tenantId = tenant?.id;
11
- user.set("username", user.get("username")?.toLowerCase());
12
+ user.set("email", user.get("email")?.toLowerCase().trim());
13
+ user.set("username", user.get("username")?.toLowerCase().trim());
12
14
  if (tenant) {
13
15
  await tenant.fetch({ useMasterKey: true });
14
16
  }
@@ -104,5 +106,42 @@ async function init() {
104
106
  }
105
107
  }
106
108
  });
109
+ const verificationEmailCache = {};
110
+ if (config_1.config.getBoolean("AUTH_VERIFY_TENANT")) {
111
+ (0, __1.afterSaveHook)(Parse.User, async (request) => {
112
+ const object = request.object;
113
+ const original = request.original;
114
+ const tenant = object.get("tenant");
115
+ if (tenant && !original && object.get("tenantVerified") === false) {
116
+ const admins = await new Parse.Query(Parse.User)
117
+ .equalTo("tenant", tenant)
118
+ .equalTo("tenantAdmin", true)
119
+ .findAll({ useMasterKey: true });
120
+ for (const admin of admins) {
121
+ await (0, __1.sendTemplateEmail)({
122
+ template: "openinc-auth-tenant-verification-request",
123
+ subject: "Ein neuer Nutzer muss verifiziert werden",
124
+ to: admin.get("email"),
125
+ fallback: "Ein neuer Nutzer muss verifiziert werden",
126
+ data: {},
127
+ });
128
+ }
129
+ }
130
+ if (!verificationEmailCache[object.id] &&
131
+ tenant &&
132
+ original?.get("tenantVerified") === false &&
133
+ object.get("tenantVerified") === true) {
134
+ const email = object.get("email");
135
+ verificationEmailCache[object.id] = true;
136
+ await (0, __1.sendTemplateEmail)({
137
+ template: "openinc-auth-tenant-verification",
138
+ subject: "Dein Account wurde verifiziert",
139
+ to: email,
140
+ fallback: "Account wurde verifiziert",
141
+ data: {},
142
+ });
143
+ }
144
+ });
145
+ }
107
146
  }
108
147
  exports.init = init;
@@ -6,15 +6,15 @@ async function init() {
6
6
  Parse.Cloud.beforeLogin(async ({ object }) => {
7
7
  const verifyEmail = config_1.config.getBoolean("AUTH_VERIFY_EMAIL");
8
8
  if (verifyEmail && !object.get("emailVerified")) {
9
- throw new Parse.Error(-1, "OPENDASH_ACCOUNT_EMAIL_VERIFICATION");
9
+ throw new Parse.Error(-1, "t:AUTH_MISSING_EMAIL_VERIFICATION");
10
10
  }
11
11
  if (object.get("tenant")) {
12
12
  const verifyTenant = config_1.config.getBoolean("AUTH_VERIFY_TENANT");
13
13
  if (verifyTenant && !object.get("tenantVerified")) {
14
- throw new Parse.Error(-1, "OPENDASH_ACCOUNT_TENANT_VERIFICATION");
14
+ throw new Parse.Error(-1, "t:AUTH_MISSING_TENANT_VERIFICATION");
15
15
  }
16
16
  if (object.get("tenantBanned")) {
17
- throw new Parse.Error(-1, "OPENDASH_ACCOUNT_BANNED");
17
+ throw new Parse.Error(-1, "t:AUTH_BANNED");
18
18
  }
19
19
  }
20
20
  });
package/dist/ow.js CHANGED
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.publishDataItem = exports.getToken = void 0;
7
- const node_fetch_1 = __importDefault(require("node-fetch"));
8
7
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ const node_fetch_1 = __importDefault(require("node-fetch"));
9
9
  const config_1 = require("./config");
10
10
  const LOG_PREFIX = "[@openinc/parse-server-opendash][open.WARE] ";
11
11
  async function getToken(usermail) {
@@ -63,11 +63,12 @@ async function publishDataItem(dataItem, usermail) {
63
63
  // (await response.text())
64
64
  // );
65
65
  if (!response.ok) {
66
+ const text = await response.text();
66
67
  console.log(LOG_PREFIX +
67
68
  "PUBLISH ERROR Bad Status Code: " +
68
69
  response.status +
69
70
  "\n" +
70
- (await response.text()));
71
+ text);
71
72
  console.log(LOG_PREFIX +
72
73
  "PUBLISH ERROR DEBUG: \n" +
73
74
  "URL = " +
@@ -79,12 +80,8 @@ async function publishDataItem(dataItem, usermail) {
79
80
  "PAYLOAD = " +
80
81
  JSON.stringify(dataItem, null, 2) +
81
82
  "\n" +
82
- (await response.text()));
83
- throw new Error(LOG_PREFIX +
84
- "Bad Status Code: " +
85
- response.status +
86
- "\n" +
87
- (await response.text()));
83
+ text);
84
+ throw new Error(LOG_PREFIX + "Bad Status Code: " + response.status + "\n" + text);
88
85
  }
89
86
  console.log(LOG_PREFIX + "PUBLISH SUCCESS " + (await response.text()));
90
87
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openinc/parse-server-opendash",
3
- "version": "2.3.13",
3
+ "version": "2.4.0",
4
4
  "description": "Parse Server Cloud Code for open.DASH",
5
5
  "keywords": [
6
6
  "parse",