Cambios API Clientes permisos

This commit is contained in:
fjrodriguez
2023-09-22 15:28:52 -06:00
parent 4bdb833cdb
commit ac80bf6a45
12 changed files with 452 additions and 55 deletions

View File

@@ -20,6 +20,8 @@ class DeviceHistoryAdmin(admin.ModelAdmin):
class DeviceAdmin(admin.ModelAdmin):
list_display = ['client', 'device_name', 'ip_address', 'sistema', 'macAddress','database']
list_filter = ['client', 'sistema']
search_fields = ('client__Nombre',)
admin.site.register(BitacoraErrores,BitacoraErroresAdmin)
admin.site.register(Sistema,Sistema_Admin)

View File

@@ -1,14 +1,36 @@
from rest_framework.permissions import BasePermission
class HasAuthorizationHeader(BasePermission):
def has_permission(self, request, view):
return 'Authorization' in request.headers
class ItsAdminToken(BasePermission):
def has_permission(self,request,view):
return request.user.is_superuser
class ItsAdminGroup(BasePermission):
def has_permission(self, request, view):
return request.user.groups.filter(name= 'admin_soft')
from rest_framework.permissions import BasePermission
from django.contrib.auth.models import Permission
class HasAuthorizationHeader(BasePermission):
def has_permission(self, request, view):
return 'Authorization' in request.headers
class ItsAdminToken(BasePermission):
def has_permission(self,request,view):
return request.user.is_superuser
class ItsAdminGroup(BasePermission):
def has_permission(self, request, view):
return request.user.groups.filter(name= 'admin_soft')
class CheckPermiso(BasePermission):
def has_permission(self, request, view):
user = request.user
print(user)
permiso= request.META.get('HTTP_PERMISSION')
print('permiso',permiso)
print('es staff: ',user.is_staff)
print('su: ',user.is_superuser)
print('Permisos:', user.user_permissions.filter(codename = permiso))
print(user.has_perm(permiso))
print('Grupos',user.groups.all())
if user.is_staff:
return True
if user.is_superuser:
return True
return True

View File

@@ -8,7 +8,7 @@ from django.views.generic.edit import CreateView
from rest_framework.authentication import TokenAuthentication
from rest_framework.decorators import authentication_classes,api_view,permission_classes
from rest_framework.exceptions import AuthenticationFailed
from rest_framework.authtoken.models import Token
from rest_framework.views import APIView
from rest_framework.response import Response
@@ -380,7 +380,7 @@ class CheckVersionView(APIView):
class Custom_Login(APIView):
"""Autentica al device"""
authentication_classes= [TokenAuthentication]
permissions_classes=[IsAuthenticated, HasAuthorizationHeader]
permission_classes=[IsAuthenticated, HasAuthorizationHeader]
def post(self, request):
username = request.data.get('username')
@@ -389,7 +389,8 @@ class Custom_Login(APIView):
user = authenticate(request, username=username,password=password)
if user is not None:
login(request,user)
return Response({'access':True})
token, created = Token.objects.get_or_create(user=user)
return Response({'access':True, 'token':token.key})
else:
return Response({'access':False})
except Exception as ex: