@7365admin1/core 3.48.1-staging.198 → 3.48.1-staging.200

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.
@@ -0,0 +1,5 @@
1
+ ---
2
+ "@7365admin1/core": patch
3
+ ---
4
+
5
+ Scope the four manpower-attendance reads to the caller's sites and the attendance permission.
@@ -0,0 +1,5 @@
1
+ ---
2
+ "@7365admin1/core": patch
3
+ ---
4
+
5
+ Stop the every-minute manpower-sites sync from deleting the whole catalogue when the HRM Labs lookup returns nothing.
package/dist/index.d.ts CHANGED
@@ -9256,7 +9256,7 @@ declare function useManpowerSitesRepo(): {
9256
9256
 
9257
9257
  declare function useManpowerSitesSrvc(): {
9258
9258
  createManpowerSites: (payload: string) => Promise<string>;
9259
- checkManpowerSites: () => Promise<string>;
9259
+ checkManpowerSites: () => Promise<"Manpower Sites Unchanged - No Sites Returned" | "Manpower Sites Updated Successfully">;
9260
9260
  };
9261
9261
 
9262
9262
  declare function useManpowerSitesCtrl(): {
package/dist/index.js CHANGED
@@ -25551,13 +25551,21 @@ var inFlightGrabs = 0;
25551
25551
  var LAST_FRAME_TTL_SECONDS = 60 * 60;
25552
25552
 
25553
25553
  // src/utils/site-reach.util.ts
25554
- async function requireSiteReach(req, site) {
25554
+ async function requireSiteReach(req, site, permission) {
25555
25555
  const siteId = site?.toString?.() ?? "";
25556
25556
  if (!siteId)
25557
25557
  throw new import_node_server_utils55.UnauthorizedError("Not authorized.");
25558
25558
  const actor = await resolveInviteActor(callerId(req));
25559
25559
  if (actor.isSuperAdmin)
25560
25560
  return;
25561
+ if (permission) {
25562
+ await useCameraViewService().authorizeSite({
25563
+ siteId,
25564
+ userId: actor.id,
25565
+ ...permission
25566
+ });
25567
+ return;
25568
+ }
25561
25569
  await useCameraViewService().entitleSite({ siteId, userId: actor.id });
25562
25570
  }
25563
25571
  async function siteReachOf(req) {
@@ -78519,6 +78527,10 @@ function useHrmLabsAttendanceSrvc() {
78519
78527
  // src/controllers/hrmlabs-attendance.controller.ts
78520
78528
  var import_node_server_utils249 = require("@7365admin1/node-server-utils");
78521
78529
  var import_joi131 = __toESM(require("joi"));
78530
+ var ATTENDANCE_READ = {
78531
+ permissions: ["manpower-monitoring:see-all-manpower-monitoring-attendance"],
78532
+ message: "You do not have permission to view manpower attendance."
78533
+ };
78522
78534
  function useHrmLabsAttendanceCtrl() {
78523
78535
  const hrmLabsAttendanceSrvc = useHrmLabsAttendanceSrvc();
78524
78536
  async function getAttendanceData(req, res, next) {
@@ -78563,6 +78575,7 @@ function useHrmLabsAttendanceCtrl() {
78563
78575
  next(new import_node_server_utils249.BadRequestError(error.message));
78564
78576
  return;
78565
78577
  }
78578
+ await requireSiteReach(req, siteId, ATTENDANCE_READ);
78566
78579
  const result = await hrmLabsAttendanceSrvc.getAttendanceData(req.body);
78567
78580
  return res.json(result);
78568
78581
  } catch (error) {
@@ -78592,6 +78605,7 @@ function useHrmLabsAttendanceCtrl() {
78592
78605
  next(new import_node_server_utils249.BadRequestError(error.message));
78593
78606
  return;
78594
78607
  }
78608
+ await requireSiteReach(req, siteId, ATTENDANCE_READ);
78595
78609
  const result = await hrmLabsAttendanceSrvc.getAttendanceDataCount(
78596
78610
  req.body
78597
78611
  );
@@ -78635,6 +78649,7 @@ function useHrmLabsAttendanceCtrl() {
78635
78649
  next(new import_node_server_utils249.BadRequestError(error.message));
78636
78650
  return;
78637
78651
  }
78652
+ await requireSiteReach(req, siteId, ATTENDANCE_READ);
78638
78653
  const result = await hrmLabsAttendanceSrvc.getAllAttendance(req.body);
78639
78654
  return res.json(result);
78640
78655
  } catch (error) {
@@ -78676,6 +78691,7 @@ function useHrmLabsAttendanceCtrl() {
78676
78691
  next(new import_node_server_utils249.BadRequestError(error.message));
78677
78692
  return;
78678
78693
  }
78694
+ await requireSiteReach(req, siteId, ATTENDANCE_READ);
78679
78695
  const result = await hrmLabsAttendanceSrvc.getChartAttendanceData(
78680
78696
  req.body
78681
78697
  );
@@ -78988,6 +79004,12 @@ function useManpowerSitesSrvc() {
78988
79004
  const hrmLabsSites = await manpowerMonitoringRepo.getAllSites(
78989
79005
  serviceProviderId
78990
79006
  );
79007
+ if (!Array.isArray(hrmLabsSites) || hrmLabsSites.length === 0) {
79008
+ import_node_server_utils252.logger.error(
79009
+ `checkManpowerSites: HRMLabs returned no sites for service provider ${serviceProviderId} - skipping sync, nothing added or deleted.`
79010
+ );
79011
+ return "Manpower Sites Unchanged - No Sites Returned";
79012
+ }
78991
79013
  const manpowerSites = await manpowerSitesRepo.getAllManpowerSites({
78992
79014
  page: 1,
78993
79015
  limit: 1e3,