User groups, group users views to AddRemoveView

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2019-04-25 03:24:33 -04:00
parent 510cdf894c
commit fb1f5dbfe3
6 changed files with 157 additions and 107 deletions
+72
View File
@@ -9,6 +9,8 @@ from .events import (
event_group_created, event_group_edited, event_user_created,
event_user_edited
)
from .permissions import permission_group_view, permission_user_view
from .querysets import get_user_queryset
def get_method_group_save():
@@ -33,12 +35,82 @@ def get_method_group_save():
return method_group_save
def method_group_get_users(self, user, permission=permission_user_view):
AccessControlList = apps.get_model(
app_label='acls', model_name='AccessControlList'
)
return AccessControlList.objects.filter_by_access(
permission=permission, queryset=get_user_queryset().filter(
id__in=self.user_set.all()
), user=user
)
def method_group_users_add(self, queryset, _user):
with transaction.atomic():
event_group_edited.commit(
actor=_user, target=self
)
for user in queryset:
self.user_set.add(user)
event_user_edited.commit(
actor=_user, target=user
)
def method_group_users_remove(self, queryset, _user):
with transaction.atomic():
event_group_edited.commit(
actor=_user, target=self
)
for user in queryset:
self.user_set.remove(user)
event_user_edited.commit(
actor=_user, target=user
)
def method_user_get_absolute_url(self):
return reverse(
viewname='user_management:user_details', kwargs={'pk': self.pk}
)
def method_user_get_groups(self, user, permission=permission_group_view):
AccessControlList = apps.get_model(
app_label='acls', model_name='AccessControlList'
)
return AccessControlList.objects.filter_by_access(
permission=permission, queryset=self.groups.all(), user=user
)
def method_user_groups_add(self, queryset, _user):
with transaction.atomic():
event_user_edited.commit(
actor=_user, target=self
)
for group in queryset:
self.groups.add(group)
event_group_edited.commit(
actor=_user, target=group
)
def method_user_groups_remove(self, queryset, _user):
with transaction.atomic():
event_user_edited.commit(
actor=_user, target=self
)
for group in queryset:
self.groups.remove(group)
event_group_edited.commit(
actor=_user, target=group
)
def get_method_user_save():
user_save_original = get_user_model().save