Skip to content

Commit 3b2ab0d

Browse files
committed
Refs django#720 -- Allowed staff users to edit bios and teams.
1 parent 747e65b commit 3b2ab0d

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-1
lines changed

Diff for: members/admin.py

+10
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ class IndividualMemberAdmin(MarkdownxModelAdmin):
2020
]
2121
search_fields = ['name']
2222

23+
def has_change_permission(self, request, obj=None):
24+
return request.user.is_staff
25+
26+
has_module_permission = has_change_permission
27+
2328

2429
class InvoiceInline(admin.TabularInline):
2530
model = Invoice
@@ -106,3 +111,8 @@ def membership_expires(self, obj):
106111
class TeamAdmin(admin.ModelAdmin):
107112
filter_horizontal = ['members']
108113
prepopulated_fields = {'slug': ('name',)}
114+
115+
def has_change_permission(self, request, obj=None):
116+
return request.user.is_staff
117+
118+
has_module_permission = has_change_permission

Diff for: members/test_admin.py

+37-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from datetime import date, timedelta
22

33
from django.contrib import admin
4+
from django.contrib.auth.models import User
5+
from django.http import HttpRequest
46
from django.test import TestCase
57

68
from .admin import CorporateMemberAdmin, StatusFilter
7-
from .models import CorporateMember
9+
from .models import CorporateMember, IndividualMember, Team
810

911

1012
class CorporateMemberAdminTests(TestCase):
@@ -85,3 +87,37 @@ def get_query_string(self, *args):
8587
{'display': 'All', 'query_string': '', 'selected': False},
8688
]
8789
)
90+
91+
92+
class IndividualMemberTests(TestCase):
93+
94+
def test_has_change_permission(self):
95+
user = User.objects.create()
96+
request = HttpRequest()
97+
request.user = user
98+
self.assertIs(admin.site._registry[IndividualMember].has_change_permission(request), False)
99+
user.is_staff = True
100+
self.assertIs(admin.site._registry[IndividualMember].has_change_permission(request), True)
101+
102+
def test_has_module_permission(self):
103+
self.assertEqual(
104+
admin.site._registry[IndividualMember].has_change_permission,
105+
admin.site._registry[IndividualMember].has_module_permission
106+
)
107+
108+
109+
class TeamTests(TestCase):
110+
111+
def test_has_change_permission(self):
112+
user = User.objects.create()
113+
request = HttpRequest()
114+
request.user = user
115+
self.assertIs(admin.site._registry[Team].has_change_permission(request), False)
116+
user.is_staff = True
117+
self.assertIs(admin.site._registry[Team].has_change_permission(request), True)
118+
119+
def test_has_module_permission(self):
120+
self.assertEqual(
121+
admin.site._registry[Team].has_change_permission,
122+
admin.site._registry[Team].has_module_permission
123+
)

0 commit comments

Comments
 (0)