+14
-10
automod/engine/persist.go
+14
-10
automod/engine/persist.go
···
43
43
44
44
// de-dupe actions
45
45
newLabels := dedupeLabelActions(c.effects.AccountLabels, c.Account.AccountLabels, c.Account.AccountNegatedLabels)
46
-
rmdLabels := dedupeStrings(c.effects.RemovedAccountLabels)
47
-
for _, lbl := range c.effects.RemovedAccountLabels {
48
-
if !keyword.TokenInSet(lbl, c.Account.AccountLabels) {
46
+
var rmdLabels []string
47
+
for _, lbl := range dedupeStrings(c.effects.RemovedAccountLabels) {
48
+
// we don't need to try and remove labels whenever they are either _not_ already in the account labels, _or_ if they are
49
+
// being applied by some other rule before persisting
50
+
if !keyword.TokenInSet(lbl, c.Account.AccountLabels) || keyword.TokenInSet(lbl, c.effects.AccountLabels) {
49
51
continue
50
52
}
51
53
rmdLabels = append(rmdLabels, lbl)
···
273
275
274
276
atURI := c.RecordOp.ATURI().String()
275
277
newLabels := dedupeStrings(c.effects.RecordLabels)
276
-
rmdLabels := dedupeStrings(c.effects.RemovedRecordLabels)
278
+
var rmdLabels []string
277
279
newTags := dedupeStrings(c.effects.RecordTags)
278
280
newEscalation := c.effects.RecordEscalate
279
281
newAcknowledge := c.effects.RecordAcknowledge
···
287
289
} else {
288
290
var existingLabels []string
289
291
var negLabels []string
290
-
var neededRmdLabels []string
291
292
for _, lbl := range rv.Labels {
292
293
if lbl.Neg != nil && *lbl.Neg == true {
293
294
negLabels = append(negLabels, lbl.Val)
294
295
} else {
295
296
existingLabels = append(existingLabels, lbl.Val)
296
-
297
-
if keyword.TokenInSet(lbl.Val, rmdLabels) {
298
-
neededRmdLabels = append(neededRmdLabels, lbl.Val)
299
-
}
300
297
}
301
298
}
302
299
existingLabels = dedupeStrings(existingLabels)
303
300
negLabels = dedupeStrings(negLabels)
304
301
newLabels = dedupeLabelActions(newLabels, existingLabels, negLabels)
305
-
rmdLabels = neededRmdLabels
302
+
for _, lbl := range dedupeStrings(c.effects.RemovedRecordLabels) {
303
+
// we don't need to try and remove labels whenever they are either _not_ already in the record labels, _or_ if they are
304
+
// being applied by some other rule before persisting
305
+
if !keyword.TokenInSet(lbl, existingLabels) || keyword.TokenInSet(lbl, newLabels) {
306
+
continue
307
+
}
308
+
rmdLabels = append(rmdLabels, lbl)
309
+
}
306
310
existingTags := []string{}
307
311
hasSubjectStatus := rv.Moderation != nil && rv.Moderation.SubjectStatus != nil
308
312
if hasSubjectStatus && rv.Moderation.SubjectStatus.Tags != nil {