env reader

This commit is contained in:
fjrodriguez
2022-12-14 12:44:10 -06:00
parent 7bea944972
commit 09d7edddd6
5 changed files with 96 additions and 40 deletions

View File

@@ -7,6 +7,7 @@ from django.shortcuts import render
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse
from django.test import SimpleTestCase, override_settings
from rest_framework.authtoken.views import obtain_auth_token
def response_error_handler(request, exception=None):
context={}
@@ -21,6 +22,7 @@ def permission_denied_view(request):
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls')),
path('DRF_Token/', obtain_auth_token, name='DRF_Token'),
path('', include('Clientes.urls')),
path('403/', permission_denied_view),
]

View File

@@ -74,3 +74,15 @@ class Clientes(models.Model):
class Meta:
ordering = ('-Activo','-conteo_mes','RFC')
class Maquinas_Conectadas(models.Model):
UserName = models.CharField(max_length=255)
PC_Name = models.CharField(max_length=255)
Is64 = models.BooleanField()
OSversion= models.CharField(max_length=255)
local_ip = models.CharField(max_length=55)
public_ip= models.CharField(max_length=55)
RFC = models.CharField(max_length=13)
class Meta:
abstract =True

View File

@@ -11,6 +11,7 @@ from .views import (
saldo_funct2,
add_timbre2,
check_RFC,
check_host,
)
urlpatterns = [
@@ -22,5 +23,7 @@ urlpatterns = [
path('get_timbres_xls/', export_Excel, name='export_Excel'),
path('send_timbres_cliente/',send_timbres_Email, name='send_timbres_Email'),
path('getActivoRFC/', check_RFC.as_view(), name='check_active_RFC'),
path('get_saldo2/', saldo_funct2.as_view(), name='saldo_funct2')
path('get_saldo2/', saldo_funct2.as_view(), name='saldo_funct2'),
path('check_host/',check_host.as_view(),name='check_host'),
]

View File

@@ -24,18 +24,42 @@ from .serailizers import ClienteSerializer
#EXCEL
from openpyxl import Workbook
from openpyxl.styles import Alignment, Border, Font, PatternFill, Side
import json
#email
from django.core.mail import EmailMessage
from django.conf import settings
import requests
import os
import re
from io import BytesIO
import functools
from django.core.files.storage import FileSystemStorage
import os
from django.conf import settings
import re
def read_env_file():
try:
#env_file = os.listdir(settings.BASE_DIR)
storage = FileSystemStorage(location=settings.BASE_DIR)
env_file= os.path.join(settings.BASE_DIR,'.env')
print('EEEEE: ', env_file)
lista =['asds', 'asdasd','sss','com' ,'pol.com']
if storage.exists(env_file):
with open(env_file, 'r') as file:
data = file.read()
data =re.findall('"([^"]*)"',data)
print('data',data)
for x in lista:
data.append(x)
res= ' '.join(data)
final = '"'+res+'"'
print('final',final)
with open(env_file, 'w') as newFile:
newFile.write("export hosts="+final)
except:
pass
@sync_to_async(thread_sensitive=False)
@login_required
def send_timbres_Email(request):
@@ -132,11 +156,11 @@ def send_timbres_Email(request):
messages.success(request, 'Email Enviado correctamente.')
except Exception as E:
messages.error(request, f'Email no se envio correctamente.{E}')
return redirect('index')
@login_required
def index(request):
#read_env_file()
clientes_list = Clientes.objects.all()
mes = request.GET.get('mes', None)
page = request.GET.get('page', 1)
@@ -230,31 +254,8 @@ def timbres_cliente(request, RFC):
}
return render(request, 'Clientes/timbres_cliente.html', context)
class ClientesUpdateView(UserPassesTestMixin,LoginRequiredMixin,UpdateView):
model= Clientes
form_class=ClienteForm
success_url='/'
template_name='Clientes/edit_cliente.html'
def test_func(self):
res = self.request.user.groups.filter(name= 'admin_soft')
if not res:
messages.error(self.request, f'Lo sentimos. La página que buscas no está disponible, no cuentas con los permisos.')
return res
class ClientesCreateView(UserPassesTestMixin,LoginRequiredMixin,CreateView):
model = Clientes
form_class = ClienteForm
success_url='/'
template_name='Clientes/edit_cliente.html'
def test_func(self):
#self.request.user.groups.all()
return self.request.user.groups.filter(name= 'admin_soft')
#@login_required
@sync_to_async(thread_sensitive=False)
@login_required
def export_Excel(request):
RFC = request.GET.get('RFC', None)
@@ -315,12 +316,17 @@ def export_Excel(request):
return response
#-----------------------------API VIEWS
#-----------------------------------API VIEWS
#--------------------------------------------
class check_RFC(APIView):
permission_classes = (IsAuthenticated,)
def get(self,request):
rfc = request.GET.get('RFC', None)
cliente = get_object_or_404(Clientes, RFC=rfc)
cliente, created = Clientes.objects.get_or_create(RFC=rfc)
if created:
cliente.Activo=True
cliente.save()
#cliente = get_object_or_404(Clientes, RFC=rfc)
serializer = ClienteSerializer(cliente)
return Response(serializer.data)
@@ -373,3 +379,36 @@ class saldo_funct2(APIView):
Saldo.save()
content = {'data':Saldo.saldo}
return Response(content)
class check_host(APIView):
permission_classes = (IsAuthenticated,)
def post(self,request, format=None):
data = request.data
print(data)
return Response(data)
#---------------------------CLASS BASED VIEWS
#--------------------------------------------
class ClientesUpdateView(UserPassesTestMixin,LoginRequiredMixin,UpdateView):
model= Clientes
form_class=ClienteForm
success_url='/'
template_name='Clientes/edit_cliente.html'
def test_func(self):
res = self.request.user.groups.filter(name= 'admin_soft')
if not res:
messages.error(self.request, f'Lo sentimos. La página que buscas no está disponible, no cuentas con los permisos.')
return res
class ClientesCreateView(UserPassesTestMixin,LoginRequiredMixin,CreateView):
model = Clientes
form_class = ClienteForm
success_url='/'
template_name='Clientes/edit_cliente.html'
def test_func(self):
#self.request.user.groups.all()
return self.request.user.groups.filter(name= 'admin_soft')

View File

@@ -8,7 +8,7 @@
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.2.1/dist/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
<title>Hello, world!</title>
<title>AS Admin Permiso No concedido</title>
</head>
<body >
<div>