add dockerfile

master/v0.1.0
TBS093A 2020-10-09 14:34:12 +02:00
parent de9ca3ce04
commit 82518c563e
6 changed files with 26 additions and 3 deletions

13
Dockerfile 100644
View File

@ -0,0 +1,13 @@
FROM python:3.8
RUN python -m venv venv
RUN surce venv/bin/activate
CMD ["mkdir", "application"]
WORKDIR /application
RUN git clone git@github.com:TBS093A/trade-app-backend.git
RUN ./packages.sh
RUN ./migrate.sh
RUN ./run.sh

View File

@ -3,6 +3,7 @@ from django.http import HttpResponse
from datetime import datetime from datetime import datetime
from .utilities import * from .utilities import *
class ValidationUtils(): class ValidationUtils():
@classmethod @classmethod
@ -12,6 +13,7 @@ class ValidationUtils():
class Meta: class Meta:
abstract = True abstract = True
class AbstractUtilsCRUD(): class AbstractUtilsCRUD():
""" """
This class have a primary utilities for CRUD functionality This class have a primary utilities for CRUD functionality
@ -177,7 +179,7 @@ class AbstractUpdate(AbstractUtilsCRUD):
@classmethod @classmethod
def putObject(self, request, objectID, privilige): def putObject(self, request, objectID, privilige):
object = jsonLoad(request) object = jsonLoad(request)
if checkSession(request, privilige) and checkUserPermission(object, request): if checkSession(request, privilige) or checkUserPermission(object, request):
return self._updateObject(object, objectID) return self._updateObject(object, objectID)
else: else:
return HttpResponse("No Permission") return HttpResponse("No Permission")
@ -201,7 +203,7 @@ class AbstractDelete(AbstractUtilsCRUD):
@classmethod @classmethod
def deleteObject(self, request, objectID, privilige): def deleteObject(self, request, objectID, privilige):
objectDel = self._objectFactory().objects.get(pk = objectID) objectDel = self._objectFactory().objects.get(pk = objectID)
if checkSession(request, privilige) and checkUserPermission(objectDel.toDict(), request): if checkSession(request, privilige) or checkUserPermission(objectDel.toDict(), request):
objectDel.delete() objectDel.delete()
return HttpResponse(f"Delete Object: {objectDel}") return HttpResponse(f"Delete Object: {objectDel}")
else: else:
@ -213,11 +215,15 @@ class AbstractDelete(AbstractUtilsCRUD):
class AbstractCRUD( class AbstractCRUD(
models.Model, models.Model,
ValidationUtils,
AbstractGet, AbstractGet,
AbstractCreate, AbstractCreate,
AbstractUpdate, AbstractUpdate,
AbstractDelete, AbstractDelete,
): ):
@classmethod
def fromDict(self, dict):
self.__dict__.update(dict)
class Meta: class Meta:
abstract = True abstract = True

View File

@ -22,6 +22,8 @@ def createToken(userDict):
def checkSession(request, privilige): def checkSession(request, privilige):
token = tryGetTokenFromRequest(request) token = tryGetTokenFromRequest(request)
print( token )
print( tokens )
for currentToken in tokens: for currentToken in tokens:
if token == currentToken: if token == currentToken:
if decodeToken(currentToken)['payload']['privilige'] >= privilige: if decodeToken(currentToken)['payload']['privilige'] >= privilige:
@ -70,6 +72,8 @@ def checkUserPermission(modelDict, request):
token = tryGetTokenFromRequest(request) token = tryGetTokenFromRequest(request)
if modelIsNotUser(modelDict): if modelIsNotUser(modelDict):
print( UserIsAdmin(token) )
print( UserIsModer(token) )
if UserIsAdmin(token): if UserIsAdmin(token):
return True return True
elif UserIsModer(token): elif UserIsModer(token):