File tree Expand file tree Collapse file tree 2 files changed +20
-1
lines changed
Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -363,12 +363,12 @@ if (Meteor.isServer) {
363363 if ( value ) params [ key ] = value ;
364364 } ) ;
365365 if ( board ) {
366+ const activeMemberIds = _ . filter ( board . members || [ ] , m => m . isActive === true ) . map ( m => m . userId ) ;
366367 const BIGEVENTS = process . env . BIGEVENTS_PATTERN ; // if environment BIGEVENTS_PATTERN is set, any activityType matching it is important
367368 if ( BIGEVENTS ) {
368369 try {
369370 const atype = activity . activityType ;
370371 if ( new RegExp ( BIGEVENTS ) . exec ( atype ) ) {
371- const activeMemberIds = _ . filter ( board . members , m => m . isActive === true ) . map ( m => m . userId ) ;
372372 watchers = _ . union ( watchers , activeMemberIds ) ; // notify all active members for important events
373373 }
374374 } catch ( e ) {
@@ -393,6 +393,9 @@ if (Meteor.isServer) {
393393 _ . intersection ( participants , trackingUsers ) ,
394394 ) ;
395395 }
396+
397+ // Ensure notifications only go to active members of the current board.
398+ watchers = _ . intersection ( watchers , activeMemberIds ) ;
396399 }
397400 ( await Notifications . getUsers ( watchers ) ) . forEach ( ( user ) => {
398401 // Skip if user is undefined or doesn't have an _id (e.g., deleted user or invalid ID)
Original file line number Diff line number Diff line change @@ -2098,6 +2098,10 @@ Cards.helpers({
20982098 ) ;
20992099
21002100 const newBoard = ReactiveCache . getBoard ( boardId ) ;
2101+ const allowedMemberIds = _ . pluck (
2102+ _ . filter ( newBoard . members || [ ] , member => member . isActive === true ) ,
2103+ 'userId' ,
2104+ ) ;
21012105 const newBoardLabels = newBoard . labels ;
21022106 const newCardLabelIds = _ . pluck (
21032107 _ . filter ( newBoardLabels , label => {
@@ -2119,6 +2123,18 @@ Cards.helpers({
21192123 if ( ! Array . isArray ( mutatedFields . customFields ) ) {
21202124 mutatedFields . customFields = [ ] ;
21212125 }
2126+
2127+ const currentMembers = Array . isArray ( this . members ) ? this . members : [ ] ;
2128+ const filteredMembers = currentMembers . filter ( memberId => allowedMemberIds . includes ( memberId ) ) ;
2129+ if ( _ . difference ( currentMembers , filteredMembers ) . length > 0 ) {
2130+ mutatedFields . members = filteredMembers ;
2131+ }
2132+
2133+ const currentWatchers = Array . isArray ( this . watchers ) ? this . watchers : [ ] ;
2134+ const filteredWatchers = currentWatchers . filter ( watcherId => allowedMemberIds . includes ( watcherId ) ) ;
2135+ if ( _ . difference ( currentWatchers , filteredWatchers ) . length > 0 ) {
2136+ mutatedFields . watchers = filteredWatchers ;
2137+ }
21222138 }
21232139
21242140 Cards . updateAsync ( this . _id , { $set : mutatedFields } ) ;
You can’t perform that action at this time.
0 commit comments