login page
This commit is contained in:
SDE
2023-09-21 15:02:51 +03:00
parent b033f5c96d
commit 62adc75161
6 changed files with 275 additions and 266 deletions

View File

@@ -1,12 +1,12 @@
# coding=utf-8
from django.conf.urls import url
from django.urls import path
# from AuthApp.js_views import *
# from AuthApp.import_funcs import *
from AuthApp.views import *
from .views import *
from django.contrib.auth import views
urlpatterns = [
path('login', login_View, name='login')
# ajax ----------------
# url(r'^login$', user_login_View_ajax, name='user_login_View_ajax'),
# url(r'^login_confirm$', user_login_confirm_ajax, name='user_login_confirm_ajax'),

View File

@@ -9,284 +9,293 @@ from django.http import HttpResponse, Http404
from django.template import loader, RequestContext
from django.contrib.auth.decorators import login_required
from BaseModels.mailSender import techSendMail
from django.utils.translation import ugettext as _
from django.utils.translation import gettext as _
from datetime import datetime
def login_View(request):
def create_personal_user(data, creator):
Dict = {}
try:
user_id = str(uuid1().hex)[:10]
user_name = data['email']
mail = user_name
user = User.objects.create_user(username=user_name, email=mail, password=user_id)
if 'first_name' in data and data['first_name']:
user.first_name = data['first_name']
if 'last_name' in data and data['last_name']:
user.last_name = data['last_name']
user.is_staff = False
user.is_active = False
user.is_superuser = False
# user.set_password(user_id)
user.save()
user_communications_ads_list = []
if 'office__name' in data['user_profile']:
del data['user_profile']['office__name']
if 'communications' in data['user_profile']:
user_communications_ads_list.extend(data['user_profile']['communications'])
del data['user_profile']['communications']
if not 'creator' in data['user_profile'] and creator:
data['user_profile']['creator'] = creator
profiles = UserProfile.objects.filter(user=user).update(**data['user_profile'])
if user_communications_ads_list:
from GeneralApp.funcs import create_communications_items_by_list
comm_objs = create_communications_items_by_list(user.user_profile, user_communications_ads_list)
user.refresh_from_db()
return {
'name' : mail,
'pass' : user_id,
'user' : user
}
except Exception as e:
return {
'error': 'Ошибка добавление нового пользователя = {0}'.format(str(e)),
}
def decode_get_param(data):
import base64
import json
d = data['data'].encode()
token_data = base64.b64decode(d)
try:
request_data = token_data.decode('utf8')
except:
request_data = token_data
data = json.loads(request_data)
return data
def check_user_key(data):
# print(u'check_user_key')
# try:
# user_id = int(data[0])
# except:
# user_id = None
# try:
# user1S_id = int(data[1])
#
# company_id = data[2]
# user_key = data[3]
res = u'Key Broken'
# user_id = data[u'userId']
# user_key = data[u'userKey']
# user1S_id = data['user1S_id']
# company_id = data[u'companyId']
data = decode_get_param(data)
try:
token = UserTokens.objects.get(
user_id=data['pk'],
user_key=data['code'],
user1S_id=data['1S_pk'],
company_id = data['comp_pk']
)
res = u'Accept'
# print(u'try1 ok')
except UserTokens.DoesNotExist:
# если не найден id и ключ
try:
token = UserTokens.objects.get(
user_id=data['pk']
)
# techSendMail(
# u'user try access by id={0}, key={1}, c_id={2}'.format(
# str(user_id),
# str(user_key),
# str(company_id)
# )
# )
res = u'Key Broken'
# print(u'try2 ok')
except UserTokens.DoesNotExist:
# если не найден id
token = UserTokens.objects.create(
user_id=data['pk'],
user_key=data['code'],
company_id=data['comp_pk']
)
res = u'Accept'
# print(u'except ok')
t = loader.get_template('p_authorization.html')
res = HttpResponse(t.render(Dict, request))
return res
def recovery_password_user(request, uidb64=None, token=None):
from django.contrib.auth.views import PasswordResetConfirmView
return PasswordResetConfirmView(request=request, uidb64=uidb64, token=token
)
# def recovery_password_user_complete(request, user_id, authCode):
# from django.contrib.auth.forms import SetPasswordForm
# from AuthApp.funcs import sendActivationMail
#
# def create_personal_user(data, creator):
#
# try:
# user = User.objects.get(id=user_id, mipp_user__authMailCode=authCode)
#
# except:
# user = None
# user_id = str(uuid1().hex)[:10]
# user_name = data['email']
# mail = user_name
# user = User.objects.create_user(username=user_name, email=mail, password=user_id)
#
# if user:
# if 'first_name' in data and data['first_name']:
# user.first_name = data['first_name']
# if 'last_name' in data and data['last_name']:
# user.last_name = data['last_name']
# user.is_staff = False
# user.is_active = False
# user.is_superuser = False
# # user.set_password(user_id)
# user.save()
#
# user.set_password()
# user_communications_ads_list = []
#
# if reg_user.is_active:
# activated_early = True
# else:
# reg_user.backend = 'AuthApp.backends.BaldeniniAuthBackend'
# login(request, reg_user)
# if 'office__name' in data['user_profile']:
# del data['user_profile']['office__name']
# if 'communications' in data['user_profile']:
#
# reg_user.is_active = True
# reg_user.save()
# sendActivationMail(reg_user)
# user_communications_ads_list.extend(data['user_profile']['communications'])
# del data['user_profile']['communications']
#
# else:
# raise Http404
# # print(reg_user)
# if not 'creator' in data['user_profile'] and creator:
# data['user_profile']['creator'] = creator
#
# context = {
# 'user': user,
# 'activated_early' : activated_early,
# profiles = UserProfile.objects.filter(user=user).update(**data['user_profile'])
#
# if user_communications_ads_list:
# from GeneralApp.funcs import create_communications_items_by_list
# comm_objs = create_communications_items_by_list(user.user_profile, user_communications_ads_list)
#
# user.refresh_from_db()
#
# return {
# 'name' : mail,
# 'pass' : user_id,
# 'user' : user
# }
#
# t = loader.get_template('pages/profile.html')
#
# rContext = RequestContext(request, context)
# return HttpResponse(t.render(rContext))
# def check_user_registration_and_activate(request, user_id, authCode):
# from django.contrib.auth import authenticate, login
# from AuthApp.funcs import sendActivationMail
#
# try:
# reg_user = User.objects.get(id=user_id, mipp_user__authMailCode=authCode)
#
# except:
# reg_user = None
#
# activated_early = False
#
# if reg_user:
#
# if reg_user.is_active:
# activated_early = True
# else:
# reg_user.backend = 'AuthApp.backends.BaldeniniAuthBackend'
# login(request, reg_user)
#
# reg_user.is_active = True
# reg_user.save()
# sendActivationMail(reg_user)
#
# else:
# raise Http404
# # print(reg_user)
#
# context = {
# 'reg_user': reg_user,
# 'activated_early' : activated_early,
# except Exception as e:
# return {
# 'error': 'Ошибка добавление нового пользователя = {0}'.format(str(e)),
# }
#
#
#
# t = loader.get_template('admin_pages/pages/Profile/profile.html')
# def decode_get_param(data):
# import base64
# import json
#
# # rContext = RequestContext(request, context)
# # return HttpResponse(t.render(rContext))
# return HttpResponse(t.render(context, request))
def create_temporary_user():
from django.utils.translation import ugettext as _
user_id = str(uuid1().hex)[:10]
user_name = u'user'+user_id
mail = user_id+u'@truenergy.by'
user = User.objects.create_user(mail, mail,user_id)
user.first_name = _(u'незарег. пользователь')
user.last_name = u''
user.is_staff = False
user.is_active = True
user.is_superuser = False
user.set_password(user_id)
# print(u'user_create_pass', user.password)
# p = user.get_profile()
# p.address = ''
# p.phone = ''
# p.group = None
# p.discount = 0
# p.pay_balance = 0
# p.authMailCode = uuid1().hex
# p.save()
user.save()
user.mipp_user.temporary_user = True
user.mipp_user.save()
# print('user',user)
# print('created profile',p)
# print('user created', user)
return {
'name' : mail,
'pass' : user_id,
'user' : user
}
def get_active_user(request):
if request.user.is_anonymous:
return None
else:
user = request.user
# try:
# bd = user.mipp_user.birthdate
# except MIPPUser.DoesNotExist:
# MIPPUser.objects.create(user=user)
return user
def get_active_user_if_anonymous_create_temporary(request):
user = get_active_user(request)
if not user:
new_user_Dict = create_temporary_user()
user = auth.authenticate(username=new_user_Dict['name'], password=new_user_Dict['pass'])
if user:
auth.login(request, user)
return user
# d = data['data'].encode()
# token_data = base64.b64decode(d)
#
# try:
# request_data = token_data.decode('utf8')
# except:
# request_data = token_data
#
# data = json.loads(request_data)
#
# return data
#
# def check_user_key(data):
# # print(u'check_user_key')
#
#
# # try:
# # user_id = int(data[0])
# # except:
# # user_id = None
# # try:
# # user1S_id = int(data[1])
# #
# # company_id = data[2]
# # user_key = data[3]
#
# res = u'Key Broken'
# # user_id = data[u'userId']
# # user_key = data[u'userKey']
# # user1S_id = data['user1S_id']
# # company_id = data[u'companyId']
#
# data = decode_get_param(data)
#
# try:
# token = UserTokens.objects.get(
# user_id=data['pk'],
# user_key=data['code'],
# user1S_id=data['1S_pk'],
# company_id = data['comp_pk']
# )
# res = u'Accept'
# # print(u'try1 ok')
# except UserTokens.DoesNotExist:
# # если не найден id и ключ
# try:
# token = UserTokens.objects.get(
# user_id=data['pk']
# )
# # techSendMail(
# # u'user try access by id={0}, key={1}, c_id={2}'.format(
# # str(user_id),
# # str(user_key),
# # str(company_id)
# # )
# # )
#
# res = u'Key Broken'
# # print(u'try2 ok')
# except UserTokens.DoesNotExist:
# # если не найден id
# token = UserTokens.objects.create(
# user_id=data['pk'],
# user_key=data['code'],
# company_id=data['comp_pk']
# )
# res = u'Accept'
# # print(u'except ok')
#
# return res
#
#
#
# def recovery_password_user(request, uidb64=None, token=None):
# from django.contrib.auth.views import PasswordResetConfirmView
#
# return PasswordResetConfirmView(request=request, uidb64=uidb64, token=token
# )
#
#
# # def recovery_password_user_complete(request, user_id, authCode):
# # from django.contrib.auth.forms import SetPasswordForm
# # from AuthApp.funcs import sendActivationMail
# #
# # try:
# # user = User.objects.get(id=user_id, mipp_user__authMailCode=authCode)
# #
# # except:
# # user = None
# #
# # if user:
# #
# # user.set_password()
# #
# # if reg_user.is_active:
# # activated_early = True
# # else:
# # reg_user.backend = 'AuthApp.backends.BaldeniniAuthBackend'
# # login(request, reg_user)
# #
# # reg_user.is_active = True
# # reg_user.save()
# # sendActivationMail(reg_user)
# #
# # else:
# # raise Http404
# # # print(reg_user)
# #
# # context = {
# # 'user': user,
# # 'activated_early' : activated_early,
# # }
# #
# # t = loader.get_template('pages/profile.html')
# #
# # rContext = RequestContext(request, context)
# # return HttpResponse(t.render(rContext))
#
#
#
# # def check_user_registration_and_activate(request, user_id, authCode):
# # from django.contrib.auth import authenticate, login
# # from AuthApp.funcs import sendActivationMail
# #
# # try:
# # reg_user = User.objects.get(id=user_id, mipp_user__authMailCode=authCode)
# #
# # except:
# # reg_user = None
# #
# # activated_early = False
# #
# # if reg_user:
# #
# # if reg_user.is_active:
# # activated_early = True
# # else:
# # reg_user.backend = 'AuthApp.backends.BaldeniniAuthBackend'
# # login(request, reg_user)
# #
# # reg_user.is_active = True
# # reg_user.save()
# # sendActivationMail(reg_user)
# #
# # else:
# # raise Http404
# # # print(reg_user)
# #
# # context = {
# # 'reg_user': reg_user,
# # 'activated_early' : activated_early,
# # }
# #
# #
# #
# # t = loader.get_template('admin_pages/pages/Profile/profile.html')
# #
# # # rContext = RequestContext(request, context)
# # # return HttpResponse(t.render(rContext))
# # return HttpResponse(t.render(context, request))
#
#
#
# def create_temporary_user():
# from django.utils.translation import ugettext as _
# user_id = str(uuid1().hex)[:10]
# user_name = u'user'+user_id
# mail = user_id+u'@truenergy.by'
# user = User.objects.create_user(mail, mail,user_id)
# user.first_name = _(u'незарег. пользователь')
# user.last_name = u''
# user.is_staff = False
# user.is_active = True
# user.is_superuser = False
# user.set_password(user_id)
# # print(u'user_create_pass', user.password)
# # p = user.get_profile()
# # p.address = ''
# # p.phone = ''
# # p.group = None
# # p.discount = 0
# # p.pay_balance = 0
# # p.authMailCode = uuid1().hex
# # p.save()
#
# user.save()
# user.mipp_user.temporary_user = True
# user.mipp_user.save()
# # print('user',user)
# # print('created profile',p)
# # print('user created', user)
# return {
# 'name' : mail,
# 'pass' : user_id,
# 'user' : user
# }
#
#
# def get_active_user(request):
# if request.user.is_anonymous:
# return None
# else:
# user = request.user
# # try:
# # bd = user.mipp_user.birthdate
# # except MIPPUser.DoesNotExist:
# # MIPPUser.objects.create(user=user)
#
# return user
#
#
# def get_active_user_if_anonymous_create_temporary(request):
#
# user = get_active_user(request)
#
# if not user:
# new_user_Dict = create_temporary_user()
# user = auth.authenticate(username=new_user_Dict['name'], password=new_user_Dict['pass'])
# if user:
# auth.login(request, user)
#
# return user

View File

@@ -5,7 +5,7 @@ __author__ = 'SDE'
from django.core.mail import EmailMultiAlternatives
# from AuthApp.models import UserProfileModel
import smtplib
from tEDataProj.settings import prod_server
# from tEDataProj.settings import prod_server
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
@@ -16,7 +16,6 @@ from email import encoders
import ssl
import time
import random
from tEDataProj import settings
# tech@truenergy.by

View File

@@ -44,7 +44,7 @@ def send_request(msg):
time.sleep(60)
# send_request(msg)
if res and 'OpenAI account' in res['choices'][0]['message']['content']:
if res and ('OpenAI account' in res['choices'][0]['message']['content'] or 'help.openai.com' in res['choices'][0]['message']['content']):
msg = f"!!! --- OpenAI send_request fail = {str(res['choices'][0]['message']['content'])} > sleep 60sec"
print(msg)
res = None

View File

@@ -23,6 +23,7 @@ from django.conf import settings
urlpatterns = [
path('admin/', admin.site.urls),
path('ckeditor/', include('ckeditor_uploader.urls')),
path('', include('QuestionsApp.urls'))
path('', include('QuestionsApp.urls')),
path('', include('AuthApp.urls')),
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View File