env reader
This commit is contained in:
@@ -7,6 +7,7 @@ from django.shortcuts import render
|
|||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.test import SimpleTestCase, override_settings
|
from django.test import SimpleTestCase, override_settings
|
||||||
|
from rest_framework.authtoken.views import obtain_auth_token
|
||||||
|
|
||||||
def response_error_handler(request, exception=None):
|
def response_error_handler(request, exception=None):
|
||||||
context={}
|
context={}
|
||||||
@@ -21,6 +22,7 @@ def permission_denied_view(request):
|
|||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
path('accounts/', include('allauth.urls')),
|
path('accounts/', include('allauth.urls')),
|
||||||
|
path('DRF_Token/', obtain_auth_token, name='DRF_Token'),
|
||||||
path('', include('Clientes.urls')),
|
path('', include('Clientes.urls')),
|
||||||
path('403/', permission_denied_view),
|
path('403/', permission_denied_view),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -74,3 +74,15 @@ class Clientes(models.Model):
|
|||||||
class Meta:
|
class Meta:
|
||||||
ordering = ('-Activo','-conteo_mes','RFC')
|
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
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ from .views import (
|
|||||||
saldo_funct2,
|
saldo_funct2,
|
||||||
add_timbre2,
|
add_timbre2,
|
||||||
check_RFC,
|
check_RFC,
|
||||||
|
check_host,
|
||||||
)
|
)
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
@@ -22,5 +23,7 @@ urlpatterns = [
|
|||||||
path('get_timbres_xls/', export_Excel, name='export_Excel'),
|
path('get_timbres_xls/', export_Excel, name='export_Excel'),
|
||||||
path('send_timbres_cliente/',send_timbres_Email, name='send_timbres_Email'),
|
path('send_timbres_cliente/',send_timbres_Email, name='send_timbres_Email'),
|
||||||
path('getActivoRFC/', check_RFC.as_view(), name='check_active_RFC'),
|
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'),
|
||||||
|
|
||||||
]
|
]
|
||||||
@@ -24,18 +24,42 @@ from .serailizers import ClienteSerializer
|
|||||||
#EXCEL
|
#EXCEL
|
||||||
from openpyxl import Workbook
|
from openpyxl import Workbook
|
||||||
from openpyxl.styles import Alignment, Border, Font, PatternFill, Side
|
from openpyxl.styles import Alignment, Border, Font, PatternFill, Side
|
||||||
import json
|
|
||||||
|
|
||||||
#email
|
#email
|
||||||
from django.core.mail import EmailMessage
|
from django.core.mail import EmailMessage
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
import requests
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
import functools
|
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)
|
@sync_to_async(thread_sensitive=False)
|
||||||
@login_required
|
@login_required
|
||||||
def send_timbres_Email(request):
|
def send_timbres_Email(request):
|
||||||
@@ -132,11 +156,11 @@ def send_timbres_Email(request):
|
|||||||
messages.success(request, 'Email Enviado correctamente.')
|
messages.success(request, 'Email Enviado correctamente.')
|
||||||
except Exception as E:
|
except Exception as E:
|
||||||
messages.error(request, f'Email no se envio correctamente.{E}')
|
messages.error(request, f'Email no se envio correctamente.{E}')
|
||||||
|
|
||||||
return redirect('index')
|
return redirect('index')
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def index(request):
|
def index(request):
|
||||||
|
#read_env_file()
|
||||||
clientes_list = Clientes.objects.all()
|
clientes_list = Clientes.objects.all()
|
||||||
mes = request.GET.get('mes', None)
|
mes = request.GET.get('mes', None)
|
||||||
page = request.GET.get('page', 1)
|
page = request.GET.get('page', 1)
|
||||||
@@ -230,31 +254,8 @@ def timbres_cliente(request, RFC):
|
|||||||
}
|
}
|
||||||
return render(request, 'Clientes/timbres_cliente.html', context)
|
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)
|
@sync_to_async(thread_sensitive=False)
|
||||||
|
@login_required
|
||||||
def export_Excel(request):
|
def export_Excel(request):
|
||||||
|
|
||||||
RFC = request.GET.get('RFC', None)
|
RFC = request.GET.get('RFC', None)
|
||||||
@@ -315,12 +316,17 @@ def export_Excel(request):
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
#-----------------------------API VIEWS
|
#-----------------------------------API VIEWS
|
||||||
|
#--------------------------------------------
|
||||||
class check_RFC(APIView):
|
class check_RFC(APIView):
|
||||||
permission_classes = (IsAuthenticated,)
|
permission_classes = (IsAuthenticated,)
|
||||||
def get(self,request):
|
def get(self,request):
|
||||||
rfc = request.GET.get('RFC', None)
|
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)
|
serializer = ClienteSerializer(cliente)
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
|
||||||
@@ -373,3 +379,36 @@ class saldo_funct2(APIView):
|
|||||||
Saldo.save()
|
Saldo.save()
|
||||||
content = {'data':Saldo.saldo}
|
content = {'data':Saldo.saldo}
|
||||||
return Response(content)
|
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')
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<!-- Bootstrap CSS -->
|
<!-- 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">
|
<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>
|
</head>
|
||||||
<body >
|
<body >
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
Reference in New Issue
Block a user