Browse Source

Added the functionality to pick up STATUS_ACTIVE users from targetUsers

Shunm634-source 3 years ago
parent
commit
02829ba886
1 changed files with 7 additions and 2 deletions
  1. 7 2
      packages/app/src/server/service/page.ts

+ 7 - 2
packages/app/src/server/service/page.ts

@@ -2248,10 +2248,15 @@ class PageService {
     };
     };
     const activity = await activityService.createByParameters(parameters);
     const activity = await activityService.createByParameters(parameters);
     // Get user to be notified
     // Get user to be notified
-    let targetUsers = await activity.getNotificationTargetUsers();
+    const targetUsers = await activity.getNotificationTargetUsers();
     if (descendantPages != null) {
     if (descendantPages != null) {
+      const User = this.crowi.model('User');
       const targetDescendantsUsers = await Subscription.getSubscriptions(descendantPages);
       const targetDescendantsUsers = await Subscription.getSubscriptions(descendantPages);
-      targetUsers = targetUsers.concat(targetDescendantsUsers.filter(item => (item.toString() !== user._id.toString())));
+      const descendantsUsers = targetDescendantsUsers.filter(item => (item.toString() !== user._id.toString()));
+      targetUsers.concat(await User.find({
+        _id: { $in: descendantsUsers },
+        status: User.STATUS_ACTIVE,
+      }).distinct('_id'));
     }
     }
     // Create and send notifications
     // Create and send notifications
     await inAppNotificationService.upsertByActivity(targetUsers, activity, snapshot);
     await inAppNotificationService.upsertByActivity(targetUsers, activity, snapshot);