abmp-npm 2.0.29 → 2.0.31

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.
package/backend/consts.js CHANGED
@@ -16,6 +16,7 @@ const CONFIG_KEYS = {
16
16
  SITE_LOGO_URL: 'SITE_LOGO_URL',
17
17
  MEMBERS_EXTERNAL_PORTAL_URL: 'MEMBERS_EXTERNAL_PORTAL_URL',
18
18
  DEFAULT_PROFILE_IMAGE: 'DEFAULT_PROFILE_IMAGE',
19
+ QA_ALLOW_ANY_MEMBER: 'QA_ALLOW_ANY_MEMBER',
19
20
  };
20
21
 
21
22
  const MAX__MEMBERS_SEARCH_RESULTS = 120;
@@ -9,6 +9,22 @@ const { bulkProcessAndSaveMemberData } = require('./bulk-process-methods');
9
9
  const { MEMBER_ACTIONS } = require('./consts');
10
10
  const { isUpdatedMember, isSiteAssociatedMember } = require('./utils');
11
11
 
12
+ const filterLicensesByAssociation = (member, siteAssociation) => {
13
+ if (!member?.licenses || !Array.isArray(member.licenses)) {
14
+ return member;
15
+ }
16
+ const filteredLicenses = member.licenses.filter(license => {
17
+ if (!license || !license.association) {
18
+ return true;
19
+ }
20
+ return license.association === siteAssociation;
21
+ });
22
+ return {
23
+ ...member,
24
+ licenses: filteredLicenses,
25
+ };
26
+ };
27
+
12
28
  async function syncMembersDataPerAction(taskData) {
13
29
  const { action, backupDate, isTestEnvironment, includeNone } = taskData;
14
30
  try {
@@ -110,6 +126,9 @@ async function synchronizeSinglePage(taskObject) {
110
126
  }
111
127
  return isUpdatedMember(member);
112
128
  });
129
+ const toSyncMembersWithFilteredLicenses = toSyncMembers.map(member =>
130
+ filterLicensesByAssociation(member, siteAssociation)
131
+ );
113
132
  if (toSyncMembers.length === 0) {
114
133
  return {
115
134
  success: true,
@@ -120,7 +139,7 @@ async function synchronizeSinglePage(taskObject) {
120
139
  };
121
140
  }
122
141
  const result = await bulkProcessAndSaveMemberData({
123
- memberDataList: toSyncMembers,
142
+ memberDataList: toSyncMembersWithFilteredLicenses,
124
143
  currentPageNumber: pageNumber,
125
144
  });
126
145
 
@@ -1,5 +1,6 @@
1
+ const { CONFIG_KEYS } = require('../consts');
1
2
  const { prepareMemberForQALogin, getQAUsers } = require('../members-data-methods');
2
- const { getSecret } = require('../utils');
3
+ const { getSecret, getSiteConfigs } = require('../utils');
3
4
 
4
5
  const validateQAUser = async userEmail => {
5
6
  const qaUsers = await getQAUsers();
@@ -20,18 +21,21 @@ const validateQAUser = async userEmail => {
20
21
  */
21
22
  const loginQAMember = async ({ userEmail, secret }, generateSessionToken) => {
22
23
  try {
23
- const [userValidation, qaSecret] = await Promise.all([
24
- validateQAUser(userEmail),
24
+ const [qaSecret, allowAnyMember] = await Promise.all([
25
25
  getSecret('ABMP_QA_SECRET'),
26
+ getSiteConfigs(CONFIG_KEYS.QA_ALLOW_ANY_MEMBER),
26
27
  ]);
27
- if (userValidation.error) {
28
- return { success: false, error: userValidation.error };
29
- }
30
28
  if (secret !== qaSecret) {
31
29
  return { success: false, error: 'Invalid secret' };
32
30
  }
31
+ if (!allowAnyMember) {
32
+ const userValidation = await validateQAUser(userEmail);
33
+ if (userValidation.error) {
34
+ return { success: false, error: userValidation.error };
35
+ }
36
+ }
33
37
 
34
- const memberData = await prepareMemberForQALogin(userValidation.email);
38
+ const memberData = await prepareMemberForQALogin(userEmail);
35
39
  const token = await generateSessionToken(memberData.email, qaSecret);
36
40
  return {
37
41
  success: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abmp-npm",
3
- "version": "2.0.29",
3
+ "version": "2.0.31",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "check-cycles": "madge --circular .",