Skip to content

Commit 751c301

Browse files
authored
Merge pull request #1253 from TOMToolkit/1249-group-object-permissions-are-not-deleted-when-the-related-object-is-deleted
Clean orphaned permissions after target delete
2 parents ea39f0f + 787128f commit 751c301

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

tom_targets/signals/handlers.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
from django.dispatch import receiver
2-
from django.db.models.signals import post_save
2+
from django.db.models.signals import post_save, post_delete
3+
from guardian.utils import clean_orphan_obj_perms
34

45
from tom_dataproducts.models import ReducedDatum
56
from tom_targets.sharing import continuous_share_data
7+
from tom_targets.models import Target
68

79

810
@receiver(post_save, sender=ReducedDatum)
@@ -11,3 +13,11 @@ def cb_reduceddatum_post_save(sender, instance, *args, **kwargs):
1113
# and if they exist, attempt to share the new data
1214
target = instance.target
1315
continuous_share_data(target, reduced_datums=[instance])
16+
17+
18+
@receiver(post_delete, sender=Target)
19+
def cb_target_post_delete(sender, instance, *args, **kwargs):
20+
# When a Target is deleted, clean up orphaned permissions.
21+
# Note that this removes ALL orphaned permissions, not just those
22+
# associated with this target.
23+
clean_orphan_obj_perms()

0 commit comments

Comments
 (0)