views.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from django.shortcuts import render
  2. from django.http import HttpResponse
  3. from django.template import loader
  4. from django.shortcuts import redirect
  5. from django.shortcuts import render
  6. from django.contrib.auth import authenticate
  7. from django.views.generic.base import TemplateView
  8. from django.conf import settings
  9. from django.urls import reverse
  10. from django.contrib.auth.models import User
  11. from django.contrib.auth.models import Group
  12. from config.models import Instance
  13. import vyos
  14. import perms
  15. import vapi
  16. import vmsg
  17. import viewinfo
  18. import validators
  19. from perms import is_authenticated
  20. from libs.vycontrol_validators import *
  21. from django.template.defaultfilters import register
  22. from libs.vycontrol_filters import get_item
  23. def index(request):
  24. users_admin = User.objects.filter(
  25. is_active=True,
  26. is_superuser=True
  27. )
  28. if users_admin.count() > 0:
  29. if request.user.is_authenticated:
  30. return redirect('interface:interface-list')
  31. else:
  32. return redirect('accounts-login')
  33. else:
  34. if 'username' in request.POST and 'password' in request.POST:
  35. user = User.objects.create_superuser(username=request.POST['username'], email='', password=request.POST['password'])
  36. user.save()
  37. return redirect('interface:interface-list')
  38. context = {
  39. 'users_admin': users_admin.all(),
  40. }
  41. return render(request, 'accounts/start.html', context)
  42. @is_authenticated
  43. def profile(request):
  44. vinfo = viewinfo.prepare(request)
  45. user = User.objects.get(
  46. username=request.user,
  47. is_active=True
  48. )
  49. if request.POST.get('email', None) != None:
  50. email_new = request.POST.get('email').strip()
  51. if validators.email(email_new):
  52. user.email = email_new
  53. user.save()
  54. if request.POST.get('pass1', None) != None and request.POST.get('pass2', None) != None:
  55. if request.POST.get('pass1') == request.POST.get('pass2'):
  56. pass_new = request.POST.get('pass1').strip()
  57. if pass_new != '':
  58. user.set_password(pass_new)
  59. user.save()
  60. context = viewinfo.context(vinfo)
  61. localcontext = {
  62. 'user': user,
  63. }
  64. context.update(localcontext)
  65. return render(request, 'accounts/profile.html', context)