1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2024-12-24 15:15:22 +00:00

using custom accounts.backends.MyRemoteUserBackend, which adds default instances and attributes for user

create_missing_userattributes removed from accounts view
This commit is contained in:
Ing. Jan KRCMAR 2017-03-31 14:29:27 +02:00
parent 609651d707
commit fe89af9d8f
3 changed files with 26 additions and 13 deletions

View file

@ -1,7 +1,30 @@
from django.contrib.auth.backends import RemoteUserBackend from django.contrib.auth.backends import RemoteUserBackend
from accounts.models import UserInstance, UserAttributes
from instances.models import Instance
class MyRemoteUserBackend(RemoteUserBackend): class MyRemoteUserBackend(RemoteUserBackend):
#create_unknown_user = True
default_instances = [ 'debian8-template' ]
def create_missing_userattributes(self, user):
try:
userattributes = user.userattributes
except UserAttributes.DoesNotExist:
userattributes = UserAttributes(user=user)
userattributes.save()
def add_default_instances(self, user):
existing_instances = UserInstance.objects.filter(user=user)
if not existing_instances:
for instance_name in self.default_instances:
instance = Instance.objects.get(name=instance_name)
user_instance = UserInstance(user=user, instance=instance)
user_instance.save()
def configure_user(self, user): def configure_user(self, user):
user.is_superuser = True #user.is_superuser = True
self.create_missing_userattributes(user)
self.add_default_instances(user)
return user return user

View file

@ -70,21 +70,11 @@ def accounts(request):
:param request: :param request:
:return: :return:
""" """
def create_missing_userattributes(users):
for user in users:
try:
userattributes = user.userattributes
except UserAttributes.DoesNotExist:
userattributes = UserAttributes(user=user)
userattributes.save()
if not request.user.is_superuser: if not request.user.is_superuser:
return HttpResponseRedirect(reverse('index')) return HttpResponseRedirect(reverse('index'))
error_messages = [] error_messages = []
users = User.objects.all().order_by('username') users = User.objects.all().order_by('username')
create_missing_userattributes(users)
allow_empty_password = settings.ALLOW_EMPTY_PASSWORD allow_empty_password = settings.ALLOW_EMPTY_PASSWORD
if request.method == 'POST': if request.method == 'POST':

View file

@ -45,8 +45,8 @@ MIDDLEWARE_CLASSES = (
) )
AUTHENTICATION_BACKENDS = ( AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.RemoteUserBackend', #'django.contrib.auth.backends.RemoteUserBackend',
#'accounts.backends.MyRemoteUserBackend', 'accounts.backends.MyRemoteUserBackend',
) )
LOGIN_URL = '/accounts/login' LOGIN_URL = '/accounts/login'