mirror of
https://github.com/ansible/awx.git
synced 2026-05-20 07:17:40 -02:30
impersonate requesting user in inventory deletion task
This commit is contained in:
@@ -13,7 +13,7 @@ from django.db.models.signals import post_save, pre_delete, post_delete, m2m_cha
|
||||
from django.dispatch import receiver
|
||||
|
||||
# Django-CRUM
|
||||
from crum import get_current_request
|
||||
from crum import get_current_request, get_current_user
|
||||
from crum.signals import current_user_getter
|
||||
|
||||
# AWX
|
||||
@@ -385,7 +385,8 @@ def activity_stream_create(sender, instance, created, **kwargs):
|
||||
activity_entry = ActivityStream(
|
||||
operation='create',
|
||||
object1=object1,
|
||||
changes=json.dumps(changes))
|
||||
changes=json.dumps(changes),
|
||||
actor=get_current_user())
|
||||
activity_entry.save()
|
||||
#TODO: Weird situation where cascade SETNULL doesn't work
|
||||
# it might actually be a good idea to remove all of these FK references since
|
||||
@@ -412,7 +413,8 @@ def activity_stream_update(sender, instance, **kwargs):
|
||||
activity_entry = ActivityStream(
|
||||
operation='update',
|
||||
object1=object1,
|
||||
changes=json.dumps(changes))
|
||||
changes=json.dumps(changes),
|
||||
actor=get_current_user())
|
||||
activity_entry.save()
|
||||
if instance._meta.model_name != 'setting': # Is not conf.Setting instance
|
||||
getattr(activity_entry, object1).add(instance)
|
||||
@@ -430,7 +432,8 @@ def activity_stream_delete(sender, instance, **kwargs):
|
||||
activity_entry = ActivityStream(
|
||||
operation='delete',
|
||||
changes=json.dumps(changes),
|
||||
object1=object1)
|
||||
object1=object1,
|
||||
actor=get_current_user())
|
||||
activity_entry.save()
|
||||
|
||||
|
||||
@@ -477,7 +480,8 @@ def activity_stream_associate(sender, instance, **kwargs):
|
||||
operation=action,
|
||||
object1=object1,
|
||||
object2=object2,
|
||||
object_relationship_type=obj_rel)
|
||||
object_relationship_type=obj_rel,
|
||||
actor=get_current_user())
|
||||
activity_entry.save()
|
||||
getattr(activity_entry, object1).add(obj1)
|
||||
getattr(activity_entry, object2).add(obj2_actual)
|
||||
@@ -515,8 +519,9 @@ def get_current_user_from_drf_request(sender, **kwargs):
|
||||
@receiver(pre_delete, sender=Organization)
|
||||
def delete_inventory_for_org(sender, instance, **kwargs):
|
||||
inventories = Inventory.objects.filter(organization__pk=instance.pk)
|
||||
user = get_current_user()
|
||||
for inventory in inventories:
|
||||
try:
|
||||
inventory.schedule_deletion()
|
||||
inventory.schedule_deletion(user_id=getattr(user, 'id', None))
|
||||
except RuntimeError, e:
|
||||
logger.debug(e)
|
||||
|
||||
Reference in New Issue
Block a user