diff --git a/apps/assets/api.py b/apps/assets/api.py index aadebbd93..19e04a713 100644 --- a/apps/assets/api.py +++ b/apps/assets/api.py @@ -172,3 +172,19 @@ class AssetAdminUserTestView(AssetRefreshHardwareView): return Response('1') else: return Response('0', status=502) + + +class AssetGroupPushSystemUserView(generics.UpdateAPIView): + queryset = AssetGroup.objects.all() + permission_classes = (IsSuperUser,) + + def patch(self, request, *args, **kwargs): + asset_group = self.get_object() + assets = asset_group.assets.all() + system_user_id = self.request.data['system_user'] + system_user = get_object_or_none(SystemUser, id=system_user_id) + if not assets or not system_user: + return Response('Invalid system user id or asset group id', status=404) + task = push_users.delay([asset._to_secret_json() for asset in assets], + system_user._to_secret_json()) + return Response(task.id) diff --git a/apps/assets/forms.py b/apps/assets/forms.py index c2d7e9cd4..7c176b026 100644 --- a/apps/assets/forms.py +++ b/apps/assets/forms.py @@ -70,7 +70,7 @@ class AssetBulkUpdateForm(forms.ModelForm): required=True, help_text='* required', label=_('Select assets'), - choices=[(asset.id, asset.hostname) for asset in Asset.objects.all()], + # choices=[(asset.id, asset.hostname) for asset in Asset.objects.all()], widget=forms.SelectMultiple( attrs={ 'class': 'select2', diff --git a/apps/assets/models/user.py b/apps/assets/models/user.py index 1504f9c2f..a07aae5de 100644 --- a/apps/assets/models/user.py +++ b/apps/assets/models/user.py @@ -157,6 +157,7 @@ class SystemUser(models.Model): def __unicode__(self): return self.name + __str__ = __unicode__ @property def password(self): diff --git a/apps/assets/templates/assets/asset_group_detail.html b/apps/assets/templates/assets/asset_group_detail.html index 26162f4e0..a764acc15 100644 --- a/apps/assets/templates/assets/asset_group_detail.html +++ b/apps/assets/templates/assets/asset_group_detail.html @@ -51,22 +51,6 @@
-{# {% for asset in assets %}#} -{#