Skip to content

Commit 2fbc008

Browse files
authored
Merge pull request #148 from DeepMicroscopy/NewUserManagement
New user management
2 parents e2c9e27 + 6bf861c commit 2fbc008

25 files changed

Lines changed: 1812 additions & 106 deletions
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# administration/permissions.py
2+
from functools import wraps
3+
from django.http import HttpResponseForbidden
4+
from django.shortcuts import redirect
5+
from django.urls import reverse
6+
7+
def site_admin_required(view_func):
8+
"""
9+
Allows access only to authenticated users with user.prefs.site_admin == True.
10+
Returns 403 for AJAX/JSON requests; redirects to login for anonymous users.
11+
"""
12+
@wraps(view_func)
13+
def _wrapped(request, *args, **kwargs):
14+
user = request.user
15+
if not user.is_authenticated:
16+
# If you prefer 401 JSON instead, adjust here.
17+
return redirect(f"{reverse('login')}?next={request.path}")
18+
19+
prefs = getattr(user, "prefs", None)
20+
if not prefs or not getattr(prefs, "is_site_admin", False):
21+
return HttpResponseForbidden("Site admin permission required.")
22+
return view_func(request, *args, **kwargs)
23+
24+
return _wrapped

0 commit comments

Comments
 (0)