Skip to content

Commit

Permalink
Merge 6f6ece0 into 2c76b3e
Browse files Browse the repository at this point in the history
  • Loading branch information
gritfessel committed Oct 16, 2020
2 parents 2c76b3e + 6f6ece0 commit 9624356
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 2 deletions.
38 changes: 36 additions & 2 deletions ephios/user_management/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,21 +95,33 @@ def clean_password(self):

class GroupForm(ModelForm):
publish_event_for_group = ModelMultipleChoiceField(
label=_("Can publish event for group"),
label=_("Can publish events for groups"),
queryset=Group.objects.all(),
required=False,
help_text=_("Choose groups that this group can make events visible for."),
widget=Select2MultipleWidget,
)
can_view_past_event = BooleanField(label=_("Can view past events"), required=False)
can_add_event = BooleanField(label=_("Can add event"), required=False)
can_add_event = BooleanField(label=_("Can add events"), required=False)
can_manage_user = BooleanField(
label=_("Can manage users"),
help_text=_("If checked, users in this group can view, add, edit and delete users."),
required=False,
)
can_manage_group = BooleanField(
label=_("Can manage groups"),
help_text=_("If checked, users in this group can view, add, edit and delete groups."),
required=False,
)
users = ModelMultipleChoiceField(
label=_("Users"), queryset=UserProfile.objects.all(), widget=MultiUserProfileWidget
)

field_order = [
"name",
"users",
"can_manage_user",
"can_manage_group",
"can_view_past_event",
"can_add_event",
"publish_event_for_group",
Expand Down Expand Up @@ -140,6 +152,28 @@ def save(self, commit=True):
remove_perm("event_management.add_event", group)
remove_perm("event_management.delete_event", group)

if self.cleaned_data["can_manage_user"]:
assign_perm("user_management.add_userprofile", group)
assign_perm("user_management.change_userprofile", group)
assign_perm("user_management.delete_userprofile", group)
assign_perm("user_management.view_userprofile", group)
else:
remove_perm("user_management.add_userprofile", group)
remove_perm("user_management.change_userprofile", group)
remove_perm("user_management.delete_userprofile", group)
remove_perm("user_management.view_userprofile", group)

if self.cleaned_data["can_manage_group"]:
assign_perm("auth.add_group", group)
assign_perm("auth.change_group", group)
assign_perm("auth.delete_group", group)
assign_perm("auth.view_group", group)
else:
remove_perm("auth.add_group", group)
remove_perm("auth.change_group", group)
remove_perm("auth.delete_group", group)
remove_perm("auth.view_group", group)

return group


Expand Down
16 changes: 16 additions & 0 deletions ephios/user_management/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,22 @@ def get_form_kwargs(self):
"publish_event_for_group": get_objects_for_group(
self.object, "publish_event_for_group", klass=Group
),
"can_manage_user": self.object.permissions.filter(
codename__in=[
"add_userprofile",
"change_userprofile",
"delete_userprofile",
"view_userprofile",
]
).exists(),
"can_manage_group": self.object.permissions.filter(
codename__in=[
"add_group",
"change_group",
"delete_group",
"view_group",
]
).exists(),
}
return kwargs

Expand Down

0 comments on commit 9624356

Please sign in to comment.