@optimiser/common 1.0.412 → 1.0.414

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.
@@ -144,7 +144,7 @@ var AwsServices = /** @class */ (function () {
144
144
  encodedurl = "".concat(CDN, "/").concat(FilePath);
145
145
  }
146
146
  else {
147
- FileName = this.EncodeFileName(FileName);
147
+ FileName = this.EncodeFileName(FileName).replace(/[^a-zA-Z0-9-_\.]/g, "-");
148
148
  encodedurl = "".concat(CDN, "/").concat(FilePath, "?response-content-disposition=").concat(encodeURIComponent("attachment;filename=" + FileName));
149
149
  }
150
150
  signingParams = {
@@ -306,10 +306,11 @@ declare function GetFileFolderDetailsInFolderForDriveSharing(parentFolderID: any
306
306
  */
307
307
  declare function SyncTotalSlotRemaining(registrationID: any, db: Db): Promise<void>;
308
308
  declare function CheckAccessPermissions(permissionType: string, objectName: string, msp_d: AnyObjectInterface, db: Db, mdb: Db, next: NextFunction): Promise<boolean | undefined>;
309
+ declare function CheckProfilePermissions(permissionType: string, objectName: string, pageName: string, msp_d: AnyObjectInterface, db: Db, mdb: Db, next: NextFunction): Promise<boolean | undefined>;
309
310
  /**
310
311
  * TODO: To Set the delay
311
312
  *
312
313
  * @param ms - delay in milisecond
313
314
  */
314
315
  declare function Delay(ms: integer): Promise<unknown>;
315
- export { CheckForWhiteListedDomain, ReturnJsonResponse, ConvertFileByteSize, GetObjectByKeyValueFromList, IsEqualArrays, IsEqualValue, CheckUserProfileField, GetPageFieldData, GetPageObjectSchema, GetFieldDetail, UpdateRecentViewObject, UpdateRecentViewFields, SyncChildObjectData, SyncParentObjectData, DeleteFieldInOtherCollection, SyncFieldInSameCollection, SyncFieldInSameCollectionByObjectID, SyncFieldInSameCollectionByObjectIDWithPromise, SyncFieldInOtherCollection, SyncUserInOtherCollection, GetObjectByString, BuildLookupDataField, CheckDataBeforeAdd, CheckDataBeforeUpdate, BuildGridFieldProjection, BuildFieldProjection, BuildLookupFieldProjection, FilterConditions, GirdHeaderFilters, FieldsGridHeaderFilters, AddLog, CheckFilterFieldsProjection, VerifyEmailPassword, GetMyTeamUsers, ExtractChildUsersTree, GetMaxKeyValueListSchema, VerifyAWSEmailConfig, GenerateId, SyncUserDetailsWithMasterDB, SignoutUserFromAllDevices, SignoutUsersWithPromise, SignoutMultipleUsersFromAllDevices, UserLicenseConsumeCalculate, sendMailWithUserAccount, GetEmailClientConfigs, GetCompanyEncryptionKey, ExecuteDynamicDMLQuery, ExecuteDynamicDQLQuery, GetUserProfilePermissions, MakeUserPasswordInvalid, ConvertJsonToXLXS, SendResetPasswordMail, SendMailToSupport, MailTemplateStructure, SendMailToCustomer, parseMSPCookie, GetIPDetailsFromReq, isEmptyObj, SyncListSchemaFieldInOtherCollection, UpdateTagCountAfterDelete, SyncTagCountAfterUpdate, ReactivateFieldInOtherCollection, SyncUserLicenceConsumedCount, BroadCastEventToAllCompanyUsers, CheckDataPermission, SyncCompanyLicenceInMasterCompanyAfterAdd, NextServiceDateForDashboard, CheckDateNotInPast, GetWeekDayByDayAndOccurance, GetInterValFromOccurance, GetWeekDayInfoInMonth, GetDayIndex, RemoveFieldsFromFilters, GetUserProfile, CheckPageAuthentication, ErrorHandlerForServices, CheckCaptcha, IsStringValue, ValidateSanitizeUserInput, ValidateUserInput, CheckConditionalField, CheckExpressionOnDateField, AddDaysToDate, CreateBanquetingVATSettingsData, CheckReportFolderAccess, GetMailFromString, InvitationMailReplyContent, HasFiscalOperator, GetEncryptedURL, GenerateBase64QRCodeData, GetFileFolderDetailsInFolderForDriveSharing, SyncTotalSlotRemaining, CheckAccessPermissions, Delay };
316
+ export { CheckForWhiteListedDomain, ReturnJsonResponse, ConvertFileByteSize, GetObjectByKeyValueFromList, IsEqualArrays, IsEqualValue, CheckUserProfileField, GetPageFieldData, GetPageObjectSchema, GetFieldDetail, UpdateRecentViewObject, UpdateRecentViewFields, SyncChildObjectData, SyncParentObjectData, DeleteFieldInOtherCollection, SyncFieldInSameCollection, SyncFieldInSameCollectionByObjectID, SyncFieldInSameCollectionByObjectIDWithPromise, SyncFieldInOtherCollection, SyncUserInOtherCollection, GetObjectByString, BuildLookupDataField, CheckDataBeforeAdd, CheckDataBeforeUpdate, BuildGridFieldProjection, BuildFieldProjection, BuildLookupFieldProjection, FilterConditions, GirdHeaderFilters, FieldsGridHeaderFilters, AddLog, CheckFilterFieldsProjection, VerifyEmailPassword, GetMyTeamUsers, ExtractChildUsersTree, GetMaxKeyValueListSchema, VerifyAWSEmailConfig, GenerateId, SyncUserDetailsWithMasterDB, SignoutUserFromAllDevices, SignoutUsersWithPromise, SignoutMultipleUsersFromAllDevices, UserLicenseConsumeCalculate, sendMailWithUserAccount, GetEmailClientConfigs, GetCompanyEncryptionKey, ExecuteDynamicDMLQuery, ExecuteDynamicDQLQuery, GetUserProfilePermissions, MakeUserPasswordInvalid, ConvertJsonToXLXS, SendResetPasswordMail, SendMailToSupport, MailTemplateStructure, SendMailToCustomer, parseMSPCookie, GetIPDetailsFromReq, isEmptyObj, SyncListSchemaFieldInOtherCollection, UpdateTagCountAfterDelete, SyncTagCountAfterUpdate, ReactivateFieldInOtherCollection, SyncUserLicenceConsumedCount, BroadCastEventToAllCompanyUsers, CheckDataPermission, SyncCompanyLicenceInMasterCompanyAfterAdd, NextServiceDateForDashboard, CheckDateNotInPast, GetWeekDayByDayAndOccurance, GetInterValFromOccurance, GetWeekDayInfoInMonth, GetDayIndex, RemoveFieldsFromFilters, GetUserProfile, CheckPageAuthentication, ErrorHandlerForServices, CheckCaptcha, IsStringValue, ValidateSanitizeUserInput, ValidateUserInput, CheckConditionalField, CheckExpressionOnDateField, AddDaysToDate, CreateBanquetingVATSettingsData, CheckReportFolderAccess, GetMailFromString, InvitationMailReplyContent, HasFiscalOperator, GetEncryptedURL, GenerateBase64QRCodeData, GetFileFolderDetailsInFolderForDriveSharing, SyncTotalSlotRemaining, CheckAccessPermissions, CheckProfilePermissions, Delay };
@@ -85,7 +85,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
85
85
  };
86
86
  Object.defineProperty(exports, "__esModule", { value: true });
87
87
  exports.MakeUserPasswordInvalid = exports.GetUserProfilePermissions = exports.ExecuteDynamicDQLQuery = exports.ExecuteDynamicDMLQuery = exports.GetCompanyEncryptionKey = exports.GetEmailClientConfigs = exports.sendMailWithUserAccount = exports.UserLicenseConsumeCalculate = exports.SignoutMultipleUsersFromAllDevices = exports.SignoutUsersWithPromise = exports.SignoutUserFromAllDevices = exports.SyncUserDetailsWithMasterDB = exports.GenerateId = exports.VerifyAWSEmailConfig = exports.GetMaxKeyValueListSchema = exports.ExtractChildUsersTree = exports.GetMyTeamUsers = exports.VerifyEmailPassword = exports.CheckFilterFieldsProjection = exports.AddLog = exports.FieldsGridHeaderFilters = exports.GirdHeaderFilters = exports.FilterConditions = exports.BuildLookupFieldProjection = exports.BuildFieldProjection = exports.BuildGridFieldProjection = exports.CheckDataBeforeUpdate = exports.CheckDataBeforeAdd = exports.BuildLookupDataField = exports.GetObjectByString = exports.SyncUserInOtherCollection = exports.SyncFieldInOtherCollection = exports.SyncFieldInSameCollectionByObjectIDWithPromise = exports.SyncFieldInSameCollectionByObjectID = exports.SyncFieldInSameCollection = exports.DeleteFieldInOtherCollection = exports.SyncParentObjectData = exports.SyncChildObjectData = exports.UpdateRecentViewFields = exports.UpdateRecentViewObject = exports.GetFieldDetail = exports.GetPageObjectSchema = exports.GetPageFieldData = exports.CheckUserProfileField = exports.IsEqualValue = exports.IsEqualArrays = exports.GetObjectByKeyValueFromList = exports.ConvertFileByteSize = exports.ReturnJsonResponse = exports.CheckForWhiteListedDomain = void 0;
88
- exports.Delay = exports.CheckAccessPermissions = exports.SyncTotalSlotRemaining = exports.GetFileFolderDetailsInFolderForDriveSharing = exports.GenerateBase64QRCodeData = exports.GetEncryptedURL = exports.HasFiscalOperator = exports.InvitationMailReplyContent = exports.GetMailFromString = exports.CheckReportFolderAccess = exports.CreateBanquetingVATSettingsData = exports.AddDaysToDate = exports.CheckExpressionOnDateField = exports.CheckConditionalField = exports.ValidateUserInput = exports.ValidateSanitizeUserInput = exports.IsStringValue = exports.CheckCaptcha = exports.ErrorHandlerForServices = exports.CheckPageAuthentication = exports.GetUserProfile = exports.RemoveFieldsFromFilters = exports.GetDayIndex = exports.GetWeekDayInfoInMonth = exports.GetInterValFromOccurance = exports.GetWeekDayByDayAndOccurance = exports.CheckDateNotInPast = exports.NextServiceDateForDashboard = exports.SyncCompanyLicenceInMasterCompanyAfterAdd = exports.CheckDataPermission = exports.BroadCastEventToAllCompanyUsers = exports.SyncUserLicenceConsumedCount = exports.ReactivateFieldInOtherCollection = exports.SyncTagCountAfterUpdate = exports.UpdateTagCountAfterDelete = exports.SyncListSchemaFieldInOtherCollection = exports.isEmptyObj = exports.GetIPDetailsFromReq = exports.parseMSPCookie = exports.SendMailToCustomer = exports.MailTemplateStructure = exports.SendMailToSupport = exports.SendResetPasswordMail = exports.ConvertJsonToXLXS = void 0;
88
+ exports.Delay = exports.CheckProfilePermissions = exports.CheckAccessPermissions = exports.SyncTotalSlotRemaining = exports.GetFileFolderDetailsInFolderForDriveSharing = exports.GenerateBase64QRCodeData = exports.GetEncryptedURL = exports.HasFiscalOperator = exports.InvitationMailReplyContent = exports.GetMailFromString = exports.CheckReportFolderAccess = exports.CreateBanquetingVATSettingsData = exports.AddDaysToDate = exports.CheckExpressionOnDateField = exports.CheckConditionalField = exports.ValidateUserInput = exports.ValidateSanitizeUserInput = exports.IsStringValue = exports.CheckCaptcha = exports.ErrorHandlerForServices = exports.CheckPageAuthentication = exports.GetUserProfile = exports.RemoveFieldsFromFilters = exports.GetDayIndex = exports.GetWeekDayInfoInMonth = exports.GetInterValFromOccurance = exports.GetWeekDayByDayAndOccurance = exports.CheckDateNotInPast = exports.NextServiceDateForDashboard = exports.SyncCompanyLicenceInMasterCompanyAfterAdd = exports.CheckDataPermission = exports.BroadCastEventToAllCompanyUsers = exports.SyncUserLicenceConsumedCount = exports.ReactivateFieldInOtherCollection = exports.SyncTagCountAfterUpdate = exports.UpdateTagCountAfterDelete = exports.SyncListSchemaFieldInOtherCollection = exports.isEmptyObj = exports.GetIPDetailsFromReq = exports.parseMSPCookie = exports.SendMailToCustomer = exports.MailTemplateStructure = exports.SendMailToSupport = exports.SendResetPasswordMail = exports.ConvertJsonToXLXS = void 0;
89
89
  var moment_1 = __importDefault(require("moment"));
90
90
  var nodemailer_1 = __importDefault(require("nodemailer"));
91
91
  var mongodb_1 = require("mongodb");
@@ -5786,7 +5786,7 @@ function ValidateStateCountryField(_a) {
5786
5786
  });
5787
5787
  }
5788
5788
  /*
5789
- * This function is used to check user permission
5789
+ * Please not use this function, it will remove after go live of CheckProfilePermissions function
5790
5790
  * @param1: permissionType, like Create/Modify/Delete/Import. permission type user has.
5791
5791
  * @param2: objectName, like Contact, Account etc
5792
5792
  * @param3:
@@ -5797,55 +5797,99 @@ function ValidateStateCountryField(_a) {
5797
5797
  * Return: true/false
5798
5798
  */
5799
5799
  function CheckAccessPermissions(permissionType, objectName, msp_d, db, mdb, next) {
5800
- var _a, _b, _c;
5801
5800
  return __awaiter(this, void 0, void 0, function () {
5802
- var response, isAllowed, data, _i, _d, item, error_9;
5803
- return __generator(this, function (_e) {
5804
- switch (_e.label) {
5801
+ var response, isAllowed, data, _i, _a, item, error_9;
5802
+ return __generator(this, function (_b) {
5803
+ switch (_b.label) {
5805
5804
  case 0:
5806
- _e.trys.push([0, 2, , 3]);
5805
+ _b.trys.push([0, 2, , 3]);
5807
5806
  return [4 /*yield*/, GetUserProfile(msp_d, db, mdb, next)];
5808
5807
  case 1:
5809
- response = _e.sent();
5808
+ response = _b.sent();
5809
+ isAllowed = true;
5810
+ data = response === null || response === void 0 ? void 0 : response.data;
5811
+ if (data && data.Permissions.length > 0) {
5812
+ for (_i = 0, _a = data.Permissions; _i < _a.length; _i++) {
5813
+ item = _a[_i];
5814
+ if (item.ModuleID.toLowerCase() == objectName.toLowerCase()) {
5815
+ if (!item.Operations.includes(permissionType)) {
5816
+ isAllowed = false;
5817
+ if (item.Operations.includes('Create-Edit'))
5818
+ isAllowed = true;
5819
+ }
5820
+ }
5821
+ }
5822
+ }
5823
+ else if ((response === null || response === void 0 ? void 0 : response.message) != 'success') { // Else if was added by Shahzaib not to allow user to perform CRUD operation with inactive licence.
5824
+ isAllowed = false;
5825
+ }
5826
+ return [2 /*return*/, isAllowed];
5827
+ case 2:
5828
+ error_9 = _b.sent();
5829
+ console.error("Internal Error in CheckAccessPermissions function : ".concat(error_9));
5830
+ return [3 /*break*/, 3];
5831
+ case 3: return [2 /*return*/];
5832
+ }
5833
+ });
5834
+ });
5835
+ }
5836
+ exports.CheckAccessPermissions = CheckAccessPermissions;
5837
+ /*
5838
+ * This function is used to check user profile permission
5839
+ * @param1: permissionType, like Create/Modify/Delete/Import. permission type user has.
5840
+ * @param2: objectName, like Contact, Account etc
5841
+ * @param3: pageName
5842
+ * @param4: msp_d, it contains userid, companyid, etc
5843
+ * @param5: db (database)
5844
+ * @param6: mdb (master DB)
5845
+ * Desc: allow user to procced, if he has access permission
5846
+ * Example: If user has Create/Modify/Delete/Import permission let him procceed else stop access.
5847
+ * Return: true/false
5848
+ */
5849
+ function CheckProfilePermissions(permissionType, objectName, pageName, msp_d, db, mdb, next) {
5850
+ var _a, _b, _c, _d, _e;
5851
+ return __awaiter(this, void 0, void 0, function () {
5852
+ var response, isAllowed, data, _i, _f, item, error_10;
5853
+ return __generator(this, function (_g) {
5854
+ switch (_g.label) {
5855
+ case 0:
5856
+ _g.trys.push([0, 2, , 3]);
5857
+ return [4 /*yield*/, GetUserProfile(msp_d, db, mdb, next)];
5858
+ case 1:
5859
+ response = _g.sent();
5810
5860
  isAllowed = false;
5811
5861
  data = response === null || response === void 0 ? void 0 : response.data;
5812
5862
  if (data && data.Permissions.length > 0) {
5813
- for (_i = 0, _d = data.Permissions; _i < _d.length; _i++) {
5814
- item = _d[_i];
5815
- if (item.ModuleID.toLowerCase() == objectName.toLowerCase() || ((_b = (_a = item.ModuleData) === null || _a === void 0 ? void 0 : _a.Objects) === null || _b === void 0 ? void 0 : _b.includes(objectName))) {
5863
+ for (_i = 0, _f = data.Permissions; _i < _f.length; _i++) {
5864
+ item = _f[_i];
5865
+ if (item.ModuleID.toLowerCase() == objectName.toLowerCase() || ((_b = (_a = item.ModuleData) === null || _a === void 0 ? void 0 : _a.Objects) === null || _b === void 0 ? void 0 : _b.includes(objectName)) || (pageName && ((_d = (_c = item.ModuleData) === null || _c === void 0 ? void 0 : _c.Pages) === null || _d === void 0 ? void 0 : _d.includes(pageName)))) {
5816
5866
  if (permissionType == "CheckOnlyAccess") {
5817
5867
  isAllowed = true;
5818
- break;
5819
5868
  }
5820
5869
  else if (item.Operations.includes(permissionType)) {
5821
5870
  isAllowed = true;
5822
- break;
5823
5871
  }
5824
- else if (((_c = item.ModuleData) === null || _c === void 0 ? void 0 : _c.CheckOnlyControlPanel) && item.Operations.includes('Control Panel')) {
5872
+ else if (((_e = item.ModuleData) === null || _e === void 0 ? void 0 : _e.CheckOnlyControlPanel) && item.Operations.includes('Control Panel')) {
5825
5873
  isAllowed = true;
5826
- break;
5827
5874
  }
5828
5875
  else if (item.ModuleID == "report" && item.Operations.includes('Create-Edit')) {
5829
5876
  isAllowed = true;
5830
- break;
5831
5877
  }
5878
+ break;
5832
5879
  }
5833
5880
  }
5834
5881
  }
5835
- else if ((response === null || response === void 0 ? void 0 : response.message) != 'success') { // Else if was added by Shahzaib not to allow user to perform CRUD operation with inactive licence.
5836
- isAllowed = false;
5837
- }
5838
5882
  return [2 /*return*/, isAllowed];
5839
5883
  case 2:
5840
- error_9 = _e.sent();
5841
- console.error("Internal Error in CheckAccessPermissions function : ".concat(error_9));
5884
+ error_10 = _g.sent();
5885
+ console.error("Internal Error in CheckProfilePermissions function : ".concat(error_10));
5842
5886
  return [3 /*break*/, 3];
5843
5887
  case 3: return [2 /*return*/];
5844
5888
  }
5845
5889
  });
5846
5890
  });
5847
5891
  }
5848
- exports.CheckAccessPermissions = CheckAccessPermissions;
5892
+ exports.CheckProfilePermissions = CheckProfilePermissions;
5849
5893
  /**
5850
5894
  * TODO: To Set the delay
5851
5895
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimiser/common",
3
- "version": "1.0.412",
3
+ "version": "1.0.414",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {