Аутентификация пользователя, если он присутствует в группе
Я хочу аутентифицировать пользователя только если он присутствует в определенной группе. Может кто-нибудь подсказать мне, как я могу это сделать, пожалуйста!
Я делаю это для добавления пользователя в группу, когда пользователь регистрируется, но он показывает мне ошибку ( AttributeError at /stusignup/ 'NoneType' объект не имеет атрибута 'groups' )
def stusignup(request):
if request.method == "POST":
name = request.POST['name']
email = request.POST['email']
pass1 = request.POST['password1']
pass2 = request.POST['password2']
if not pass1 == pass2:
messages.error(request,"Please enter same password!")
else:
myuser =
User.objects.create_user(username=name,password=pass1,email=email)
myuser.name = name
myuser.email = email
myuser.password = pass1
stuser = myuser.save()
group = Group.objects.get(name='Student')
stuser.groups.add(group)
return redirect('studentloginpage')
return render(request,'stusignup.html')
views.py (Я пробовал это, но даже если пользователь присутствует в группе, он переходит к части else{ return httpresponse..... } )
def stuloginpage(request):
if request.method == 'POST':
user_email = request.POST['email']
pass1 = request.POST['password']
user = User.objects.get(email=user_email,password=pass1)
if user.groups.filter(name = 'Student').exists():
if user is not None:
login(request,user)
return redirect('homepage')
#messages.success(request,'Login Succcessful')
else:
messages.info(request, "Username OR Password is INCORRECT")
else:
return HttpResponse("You aren't a Student !")
Я также попробовал следующее
def is_student(user):
return user.groups.filter(name='Student')
@user_passes_test(is_student)
Мне нужна помощь в добавлении пользователя в группу во время регистрации, а затем перед входом в систему проверить, находится ли пользователь в определенной группе!