Skip to content

Commit ad47acf

Browse files
committed
Merge branch 'master' of github.com:django-commons/django-tasks-scheduler
2 parents 24cd128 + ac07187 commit ad47acf

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

scheduler/admin/ephemeral_models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def has_module_permission(self, request: HttpRequest) -> bool:
2222
not restrict access to the add, change or delete views. Use `ModelAdmin.has_(add|change|delete)_permission` for
2323
that.
2424
"""
25-
return request.user.has_module_perms("django-tasks-scheduler") # type: ignore
25+
return request.user.has_module_perms("scheduler") # type: ignore
2626

2727

2828
@admin.register(Queue)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from django.contrib import admin
2+
from django.contrib.auth.models import Permission, User
3+
from django.test import RequestFactory, TestCase
4+
5+
from scheduler.admin.ephemeral_models import QueueAdmin
6+
from scheduler.models.ephemeral_models import Queue
7+
8+
9+
class TestImmutableAdminModulePermission(TestCase):
10+
def setUp(self) -> None:
11+
self.request_factory = RequestFactory()
12+
self.admin = QueueAdmin(Queue, admin.site)
13+
14+
def _make_staff_user(self, username: str = "staff", with_scheduler_perm: bool = False) -> User:
15+
user = User.objects.create_user(username=username, password="pwd", is_staff=True)
16+
if with_scheduler_perm:
17+
# Any permission in the 'scheduler' app should grant module perms
18+
perm = Permission.objects.get(codename="view_task", content_type__app_label="scheduler")
19+
user.user_permissions.add(perm)
20+
return user
21+
22+
def test_has_module_permission_without_any_scheduler_perms_is_false(self) -> None:
23+
user = self._make_staff_user("no_perm", with_scheduler_perm=False)
24+
request = self.request_factory.get("/")
25+
request.user = user
26+
27+
assert self.admin.has_module_permission(request) is False
28+
29+
def test_has_module_permission_with_any_scheduler_perm_is_true(self) -> None:
30+
user = self._make_staff_user("with_perm", with_scheduler_perm=True)
31+
request = self.request_factory.get("/")
32+
request.user = user
33+
34+
assert self.admin.has_module_permission(request) is True

0 commit comments

Comments
 (0)