diff --git a/openslides/motion/views.py b/openslides/motion/views.py index 9be63f5ed..9d6f78ed9 100644 --- a/openslides/motion/views.py +++ b/openslides/motion/views.py @@ -426,10 +426,13 @@ class MotionDelete(DeleteView): """ Delete one or more Motions. """ - permission_required = 'motion.can_manage_motion' model = Motion url = 'motion_overview' + def has_permission(self, request, *args, **kwargs): + self.kwargs = kwargs + return self.get_object().get_allowed_actions(request.user) + def get_object(self): self.motions = [] diff --git a/openslides/utils/views.py b/openslides/utils/views.py index be40f9062..8db35b162 100644 --- a/openslides/utils/views.py +++ b/openslides/utils/views.py @@ -80,14 +80,14 @@ class LoginMixin(object): class PermissionMixin(object): permission_required = NO_PERMISSION_REQUIRED - def has_permission(self, request): + def has_permission(self, request, *args, **kwargs): if self.permission_required == NO_PERMISSION_REQUIRED: return True else: return request.user.has_perm(self.permission_required) def dispatch(self, request, *args, **kwargs): - if not self.has_permission(request): + if not self.has_permission(request, *args, **kwargs): if not request.user.is_authenticated(): path = request.get_full_path() return HttpResponseRedirect("%s?next=%s" % (settings.LOGIN_URL,