diff options
| author | J08nY | 2017-08-20 22:48:09 +0200 |
|---|---|---|
| committer | J08nY | 2017-08-20 22:48:09 +0200 |
| commit | bfc7f14b1df86834abf395fdbf11ab54f076dca6 (patch) | |
| tree | 4ea3c48c079baf533e625c90a1f77c62f14d5c2c /src/django_pgpmailman/decorators.py | |
| parent | 9d23d95ca530f5eabcd0f1c50d18dea2dc29b506 (diff) | |
| download | django-pgpmailman-bfc7f14b1df86834abf395fdbf11ab54f076dca6.tar.gz django-pgpmailman-bfc7f14b1df86834abf395fdbf11ab54f076dca6.tar.zst django-pgpmailman-bfc7f14b1df86834abf395fdbf11ab54f076dca6.zip | |
Diffstat (limited to 'src/django_pgpmailman/decorators.py')
| -rw-r--r-- | src/django_pgpmailman/decorators.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/django_pgpmailman/decorators.py b/src/django_pgpmailman/decorators.py index 5f994b6..7e700a0 100644 --- a/src/django_pgpmailman/decorators.py +++ b/src/django_pgpmailman/decorators.py @@ -21,14 +21,14 @@ from django.http import Http404 from six import wraps from six.moves.urllib_error import HTTPError -from django_pgpmailman.plugin import get_pgp_plugin +from django_pgpmailman.plugin import get_plugin, get_client def list_view(fn): @wraps(fn) def wrapper(request, *args, **kwargs): try: - pgp_list = get_pgp_plugin().get_list(kwargs.pop('list_id')) + pgp_list = get_plugin().get_list(kwargs.pop('list_id')) except HTTPError: raise Http404 return fn(request, pgp_list, *args, **kwargs) @@ -39,7 +39,7 @@ def list_view(fn): def list_class_view(fn): @wraps(fn) def wrapper(self, request, *args, **kwargs): - self.pgp_list = get_pgp_plugin().get_list(kwargs.pop('list_id')) + self.pgp_list = get_plugin().get_list(kwargs.pop('list_id')) return fn(self, request, *args, **kwargs) return wrapper @@ -68,3 +68,17 @@ def member_role_required(*roles): return wrapped return wrapper + + +def user_class_view(fn): + @wraps(fn) + def wrapper(self, request, *args, **kwargs): + client = get_client() + user = request.user + try: + self.mm_user = client.get_user(address=user.email) + except HTTPError: + self.mm_user = client.create_user(user.email, user.get_full_name()) + return fn(self, request, *args, **kwargs) + + return wrapper |
