Private
Public Access
1
0

fixing rules backend error

This commit is contained in:
2024-06-01 17:38:33 +02:00
parent 4c6fea4159
commit 4354bb125f
4 changed files with 18 additions and 4 deletions

14
rowers/backends.py Normal file
View File

@@ -0,0 +1,14 @@
from rules.permissions import ObjectPermissionBackend
from rowers.models import User
class MyObjectPermissionBackend(ObjectPermissionBackend):
def user_can_authenticate(self, user):
return getattr(user, "is_active", True)
def get_user(self, user_id):
try:
user = User.objects.get(pk=user_id)
except User.DoesNotExist:
return None
return user if self.user_can_authenticate(user) else None

Binary file not shown.

View File

@@ -2,7 +2,7 @@ from django.utils.encoding import force_bytes, force_str
from rowers.tokens import account_activation_token from rowers.tokens import account_activation_token
from django.contrib.sites.shortcuts import get_current_site from django.contrib.sites.shortcuts import get_current_site
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
from django.contrib.auth.backends import ModelBackend
from rowers.views.statements import * from rowers.views.statements import *
from django.core.mail import EmailMessage from django.core.mail import EmailMessage
@@ -817,7 +817,7 @@ def useractivate(request, uidb64, token): # pragma: no cover
messages.info( messages.info(
request, 'Thank you for your email confirmation. You are now signed in to your account.') request, 'Thank you for your email confirmation. You are now signed in to your account.')
login(request, user, backend=settings.AUTHENTICATION_BACKENDS[0]) login(request, user, backend='django.contrib.auth.backends.ModelBackend')
url = reverse('workouts_view') url = reverse('workouts_view')
# if user.rower.rowerplan == 'freecoach': # if user.rower.rowerplan == 'freecoach':
# url+='?next=/rowers/me/teams' # url+='?next=/rowers/me/teams'

View File

@@ -90,10 +90,10 @@ INSTALLED_APPS = [
AUTHENTICATION_BACKENDS = ( AUTHENTICATION_BACKENDS = (
#'oauth2_provider.backends.OAuth2Backend', #'oauth2_provider.backends.OAuth2Backend',
# Uncomment following if you want to access the admin # Uncomment following if you want to access the admin
'rules.permissions.ObjectPermissionBackend',
'django.contrib.auth.backends.ModelBackend',
'django.contrib.auth.backends.ModelBackend', 'django.contrib.auth.backends.ModelBackend',
'django.contrib.auth.backends.RemoteUserBackend', 'django.contrib.auth.backends.RemoteUserBackend',
'rowers.backends.MyObjectPermissionBackend',
#'rules.permissions.ObjectPermissionBackend',
) )
MIDDLEWARE = [ MIDDLEWARE = [