From 62adc75161adcac81a0b680f5150fa0e3c9073d6 Mon Sep 17 00:00:00 2001 From: SDE Date: Thu, 21 Sep 2023 15:02:51 +0300 Subject: [PATCH] 0.0.3 login page --- AuthApp/urls.py | 6 +- AuthApp/views.py | 527 +++++++++++++++--------------- BaseModels/mailSender.py | 3 +- BaseModels/openAI/openAI_funcs.py | 2 +- FirePlayProj/urls.py | 3 +- templates/p_authorization.html | 0 6 files changed, 275 insertions(+), 266 deletions(-) create mode 100644 templates/p_authorization.html diff --git a/AuthApp/urls.py b/AuthApp/urls.py index a268e24..9ed3acb 100644 --- a/AuthApp/urls.py +++ b/AuthApp/urls.py @@ -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'), diff --git a/AuthApp/views.py b/AuthApp/views.py index 5fd6218..72374a5 100644 --- a/AuthApp/views.py +++ b/AuthApp/views.py @@ -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 \ No newline at end of file +# 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 \ No newline at end of file diff --git a/BaseModels/mailSender.py b/BaseModels/mailSender.py index 49f9c67..7245756 100644 --- a/BaseModels/mailSender.py +++ b/BaseModels/mailSender.py @@ -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 diff --git a/BaseModels/openAI/openAI_funcs.py b/BaseModels/openAI/openAI_funcs.py index e4095fc..39ec205 100644 --- a/BaseModels/openAI/openAI_funcs.py +++ b/BaseModels/openAI/openAI_funcs.py @@ -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 diff --git a/FirePlayProj/urls.py b/FirePlayProj/urls.py index 47205c5..7e70bd4 100644 --- a/FirePlayProj/urls.py +++ b/FirePlayProj/urls.py @@ -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) \ No newline at end of file diff --git a/templates/p_authorization.html b/templates/p_authorization.html new file mode 100644 index 0000000..e69de29