mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Initial push to public repo
This commit is contained in:
24
netbox/secrets/decorators.py
Normal file
24
netbox/secrets/decorators.py
Normal file
@@ -0,0 +1,24 @@
|
||||
from django.contrib import messages
|
||||
from django.shortcuts import redirect
|
||||
|
||||
from .models import UserKey
|
||||
|
||||
|
||||
def userkey_required():
|
||||
"""
|
||||
Decorator for views which require that the user has an active UserKey (typically for encryption/decryption of
|
||||
Secrets).
|
||||
"""
|
||||
def _decorator(view):
|
||||
def wrapped_view(request, *args, **kwargs):
|
||||
try:
|
||||
uk = UserKey.objects.get(user=request.user)
|
||||
except UserKey.DoesNotExist:
|
||||
messages.warning(request, "This operation requires an active user key, but you don't have one.")
|
||||
return redirect('users:userkey')
|
||||
if not uk.is_active():
|
||||
messages.warning(request, "This operation is not available. Your user key has not been activated.")
|
||||
return redirect('users:userkey')
|
||||
return view(request, *args, **kwargs)
|
||||
return wrapped_view
|
||||
return _decorator
|
Reference in New Issue
Block a user