diff --git a/suivi/templates/suivi/index.html b/suivi/templates/suivi/index.html
index d5e32f6..72b1b75 100644
--- a/suivi/templates/suivi/index.html
+++ b/suivi/templates/suivi/index.html
@@ -1,3 +1,8 @@
+
Créer une note :
diff --git a/utilisateurs/models.py b/utilisateurs/models.py
index 1720123..323b9bd 100644
--- a/utilisateurs/models.py
+++ b/utilisateurs/models.py
@@ -52,7 +52,9 @@ class MaraudeurManager(UserManager):
'first_name': first_name,
'last_name': last_name,
'email': "%s@alsa68.org" % username,
- }
+ 'is_staff': True,
+ 'is_active': True,
+ }
return super().create_user(username, **data)
diff --git a/website/backends.py b/website/backends.py
index 297fca7..da822d4 100644
--- a/website/backends.py
+++ b/website/backends.py
@@ -2,24 +2,22 @@ from django.contrib.auth.backends import ModelBackend
from utilisateurs.models import Maraudeur
+
+def user_models():
+ return (Maraudeur,)
+
class MyBackend(ModelBackend):
- def authenticate(self, **kwargs):
- print('authenticate using MyBackend')
- return super().authenticate(**kwargs)
-
def get_user(self, user_id):
- """ Retourne la classe enfant de l'utilisateur connecté
- s'il en a une, sinon le User par défaut.
+ """ Essaye de récupérer une classe enfant de User existante, telle que
+ définie dans 'utilisateurs.models'. Fallback to default user.
"""
- print('use MyBackend: get_user', user_id)
- try:
- user = Maraudeur.objects.get(pk=user_id)
- except Maraudeur.DoesNotExist:
- print('no Maraudeur found. Using base user class')
- user = super().get_user(user_id)
- print("found:", user, user.__class__)
- return user
+ for user_model in user_models():
+ try:
+ return user_model.objects.get(pk=user_id)
+ except user_model.DoesNotExist:
+ print('Tried %s.' % user_model.__class__)
+ return super().get_user(user_id)
def has_perm(self, *args, **kwargs):
print('call has_perm', args, kwargs)
diff --git a/website/mixins.py b/website/mixins.py
index ffd1ba5..cb1454e 100644
--- a/website/mixins.py
+++ b/website/mixins.py
@@ -2,8 +2,6 @@ import datetime
from django.utils import timezone
from django.core.exceptions import ImproperlyConfigured
from django.apps import apps
-#TODO: remove next line
-from django.contrib.auth.decorators import login_required, permission_required
from django.contrib.auth.decorators import user_passes_test
from django.template import Template, Context
from django.views.generic.base import ContextMixin, TemplateResponseMixin
@@ -12,13 +10,6 @@ from django.views.generic.base import ContextMixin, TemplateResponseMixin
## Mixins ##
-class PermissionRequiredMixin(object):
- permissions = []
- @classmethod
- def as_view(cls, **initkwargs):
- view = super(PermissionRequiredMixin, cls).as_view(**initkwargs)
- return permission_required(cls.permissions)(view)
-
def special_user_required(authorized_users):
valid_cls = tuple(authorized_users)
@@ -54,7 +45,7 @@ class TemplateFieldsMetaclass(type):
def user_processor(request, context):
- context['user_group'] = request.user.groups.first()
+ context['user_group'] = request.user.__class__.__qualname__
return context
@@ -83,7 +74,6 @@ class NavbarMixin(object):
app_config.menu_icon = APP_ICONS[name]
#TODO: Seems unsafe (only need module perm)
app_config.disabled = not self.request.user.has_module_perms(name)
- print(self.request.user, app_config, '-> has perm:', not app_config.disabled)
self._apps.append(app_config)
return self._apps