Skip to content

Commit 51ed12d

Browse files
committed
Test is failing for some reason.
1 parent d29763c commit 51ed12d

File tree

4 files changed

+35
-10
lines changed

4 files changed

+35
-10
lines changed

braces/views/_access.py

+3-9
Original file line numberDiff line numberDiff line change
@@ -198,17 +198,11 @@ def check_permissions(self, request):
198198

199199
if self.object_level_permissions:
200200
if hasattr(self, "object") and self.object is not None:
201-
has_permission = request.user.has_perm(
202-
self.get_permission_required(request), self.object
203-
)
201+
has_permission = request.user.has_perm(perms, self.object)
204202
elif hasattr(self, "get_object") and callable(self.get_object):
205-
has_permission = request.user.has_perm(
206-
self.get_permission_required(request), self.get_object()
207-
)
203+
has_permission = request.user.has_perm(perms, self.get_object())
208204
else:
209-
has_permission = request.user.has_perm(
210-
self.get_permission_required(request)
211-
)
205+
has_permission = request.user.has_perm(perms)
212206
return has_permission
213207

214208
def dispatch(self, request, *args, **kwargs):

tests/test_access_mixins.py

+17-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
AnonymousRequiredView,
2626
SSLRequiredView,
2727
RecentLoginRequiredView,
28-
UserPassesTestLoginRequiredView,
28+
UserPassesTestLoginRequiredView, ObjectPermissionRequiredView,
2929
)
3030

3131

@@ -414,6 +414,22 @@ def test_invalid_permission(self):
414414
self.dispatch_view(self.build_request(), permission_required=None)
415415

416416

417+
@pytest.mark.django_db
418+
class TestObjectPermissionRequiredMixin(_TestAccessBasicsMixin, test.TestCase):
419+
"""Scenarios around requiring an object permission"""
420+
421+
view_class = ObjectPermissionRequiredView
422+
view_url = "/object_permission_required/1/"
423+
424+
def build_authorized_user(self):
425+
"""Create a user with permissions"""
426+
return UserFactory(permissions=["auth.add_user"])
427+
428+
def build_unauthorized_user(self):
429+
"""Create a user without permissions"""
430+
return UserFactory()
431+
432+
417433
@pytest.mark.django_db
418434
class TestMultiplePermissionsRequiredMixin(
419435
_TestAccessBasicsMixin, test.TestCase

tests/urls.py

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
path("context/", views.ContextView.as_view(), name="context"),
7171
# PermissionRequiredMixin tests
7272
path("permission_required/", views.PermissionRequiredView.as_view()),
73+
re_path(r"^object_permission_required/(?P<pk>[\w-]+)/$", views.ObjectPermissionRequiredView.as_view()),
7374
# MultiplePermissionsRequiredMixin tests
7475
path(
7576
"multiple_permissions_required/",

tests/views.py

+14
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,20 @@ class PermissionRequiredView(views.PermissionRequiredMixin, OkView):
293293
permission_required = "auth.add_user"
294294

295295

296+
class ObjectPermissionRequiredView(views.PermissionRequiredMixin, DetailView):
297+
"""
298+
View for testing PermissionRequiredMixin.
299+
"""
300+
301+
model = User
302+
permission_required = "auth.add_user"
303+
template_name = "blank.html"
304+
object_level_permissions = True
305+
306+
def get_object(self, **kwargs):
307+
return User.objects.first()
308+
309+
296310
class MultiplePermissionsRequiredView(
297311
views.MultiplePermissionsRequiredMixin, OkView
298312
):

0 commit comments

Comments
 (0)