Fixed some bugs in subscriptions Updated some packages to avoid warnings about vulnerabilities Completed RSS feed campaigns
151 lines
No EOL
4.4 KiB
JavaScript
151 lines
No EOL
4.4 KiB
JavaScript
'use strict';
|
|
|
|
const ReplacementBehavior = {
|
|
NONE: 1,
|
|
REPLACE: 2,
|
|
RENAME: 3
|
|
};
|
|
|
|
const entityTypes = {
|
|
namespace: {
|
|
entitiesTable: 'namespaces',
|
|
sharesTable: 'shares_namespace',
|
|
permissionsTable: 'permissions_namespace',
|
|
clientLink: id => `/namespaces/${id}`
|
|
},
|
|
list: {
|
|
entitiesTable: 'lists',
|
|
sharesTable: 'shares_list',
|
|
permissionsTable: 'permissions_list',
|
|
clientLink: id => `/lists/${id}`
|
|
},
|
|
customForm: {
|
|
entitiesTable: 'custom_forms',
|
|
sharesTable: 'shares_custom_form',
|
|
permissionsTable: 'permissions_custom_form',
|
|
clientLink: id => `/lists/forms/${id}`
|
|
},
|
|
campaign: {
|
|
entitiesTable: 'campaigns',
|
|
sharesTable: 'shares_campaign',
|
|
permissionsTable: 'permissions_campaign',
|
|
dependentPermissions: {
|
|
extraColumns: ['parent'],
|
|
getParent: entity => entity.parent
|
|
},
|
|
files: {
|
|
file: {
|
|
table: 'files_campaign_file',
|
|
permissions: {
|
|
view: 'viewFiles',
|
|
manage: 'manageFiles'
|
|
},
|
|
defaultReplacementBehavior: ReplacementBehavior.REPLACE
|
|
},
|
|
attachment: {
|
|
table: 'files_campaign_attachment',
|
|
permissions: {
|
|
view: 'viewAttachments',
|
|
manage: 'manageAttachments'
|
|
},
|
|
defaultReplacementBehavior: ReplacementBehavior.NONE
|
|
}
|
|
},
|
|
clientLink: id => `/campaigns/${id}`
|
|
},
|
|
template: {
|
|
entitiesTable: 'templates',
|
|
sharesTable: 'shares_template',
|
|
permissionsTable: 'permissions_template',
|
|
files: {
|
|
file: {
|
|
table: 'files_template_file',
|
|
permissions: {
|
|
view: 'viewFiles',
|
|
manage: 'manageFiles'
|
|
},
|
|
defaultReplacementBehavior: ReplacementBehavior.REPLACE
|
|
}
|
|
},
|
|
clientLink: id => `/templates/${id}`
|
|
},
|
|
sendConfiguration: {
|
|
entitiesTable: 'send_configurations',
|
|
sharesTable: 'shares_send_configuration',
|
|
permissionsTable: 'permissions_send_configuration',
|
|
clientLink: id => `/send-configurations/${id}`
|
|
},
|
|
report: {
|
|
entitiesTable: 'reports',
|
|
sharesTable: 'shares_report',
|
|
permissionsTable: 'permissions_report',
|
|
clientLink: id => `/reports/${id}`
|
|
},
|
|
reportTemplate: {
|
|
entitiesTable: 'report_templates',
|
|
sharesTable: 'shares_report_template',
|
|
permissionsTable: 'permissions_report_template',
|
|
clientLink: id => `/reports/templates/${id}`
|
|
},
|
|
mosaicoTemplate: {
|
|
entitiesTable: 'mosaico_templates',
|
|
sharesTable: 'shares_mosaico_template',
|
|
permissionsTable: 'permissions_mosaico_template',
|
|
files: {
|
|
file: {
|
|
table: 'files_mosaico_template_file',
|
|
permissions: {
|
|
view: 'viewFiles',
|
|
manage: 'manageFiles'
|
|
},
|
|
defaultReplacementBehavior: ReplacementBehavior.REPLACE
|
|
},
|
|
block: {
|
|
table: 'files_mosaico_template_block',
|
|
permissions: {
|
|
view: 'viewFiles',
|
|
manage: 'manageFiles'
|
|
},
|
|
defaultReplacementBehavior: ReplacementBehavior.REPLACE
|
|
}
|
|
},
|
|
clientLink: id => `/templates/mosaico/${id}`
|
|
},
|
|
user: {
|
|
entitiesTable: 'users',
|
|
clientLink: id => `/users/${id}`
|
|
}
|
|
};
|
|
|
|
const entityTypesWithPermissions = {};
|
|
for (const key in entityTypes) {
|
|
if (entityTypes[key].permissionsTable) {
|
|
entityTypesWithPermissions[key] = entityTypes[key];
|
|
}
|
|
}
|
|
|
|
|
|
function getEntityTypes() {
|
|
return entityTypes;
|
|
}
|
|
|
|
function getEntityTypesWithPermissions() {
|
|
return entityTypesWithPermissions;
|
|
}
|
|
|
|
function getEntityType(entityTypeId) {
|
|
const entityType = entityTypes[entityTypeId];
|
|
|
|
if (!entityType) {
|
|
throw new Error(`Unknown entity type ${entityTypeId}`);
|
|
}
|
|
|
|
return entityType
|
|
}
|
|
|
|
module.exports = {
|
|
getEntityTypes,
|
|
getEntityTypesWithPermissions,
|
|
getEntityType,
|
|
ReplacementBehavior
|
|
} |