diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7c2453d --- /dev/null +++ b/Dockerfile @@ -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 \ No newline at end of file diff --git a/generalApp/AbstractCRUD.py b/generalApp/AbstractCRUD.py index 744b165..c7f2333 100644 --- a/generalApp/AbstractCRUD.py +++ b/generalApp/AbstractCRUD.py @@ -3,6 +3,7 @@ from django.http import HttpResponse from datetime import datetime from .utilities import * + class ValidationUtils(): @classmethod @@ -12,6 +13,7 @@ class ValidationUtils(): class Meta: abstract = True + class AbstractUtilsCRUD(): """ This class have a primary utilities for CRUD functionality @@ -177,7 +179,7 @@ class AbstractUpdate(AbstractUtilsCRUD): @classmethod def putObject(self, request, objectID, privilige): object = jsonLoad(request) - if checkSession(request, privilige) and checkUserPermission(object, request): + if checkSession(request, privilige) or checkUserPermission(object, request): return self._updateObject(object, objectID) else: return HttpResponse("No Permission") @@ -201,7 +203,7 @@ class AbstractDelete(AbstractUtilsCRUD): @classmethod def deleteObject(self, request, objectID, privilige): 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() return HttpResponse(f"Delete Object: {objectDel}") else: @@ -213,11 +215,15 @@ class AbstractDelete(AbstractUtilsCRUD): class AbstractCRUD( models.Model, - ValidationUtils, AbstractGet, AbstractCreate, AbstractUpdate, AbstractDelete, ): + + @classmethod + def fromDict(self, dict): + self.__dict__.update(dict) + class Meta: abstract = True \ No newline at end of file diff --git a/generalApp/__pycache__/AbstractCRUD.cpython-36.pyc b/generalApp/__pycache__/AbstractCRUD.cpython-36.pyc index a8f39aa..bb05036 100644 Binary files a/generalApp/__pycache__/AbstractCRUD.cpython-36.pyc and b/generalApp/__pycache__/AbstractCRUD.cpython-36.pyc differ diff --git a/generalApp/__pycache__/models.cpython-36.pyc b/generalApp/__pycache__/models.cpython-36.pyc index c8d637e..ce95a2b 100644 Binary files a/generalApp/__pycache__/models.cpython-36.pyc and b/generalApp/__pycache__/models.cpython-36.pyc differ diff --git a/generalApp/__pycache__/utilities.cpython-36.pyc b/generalApp/__pycache__/utilities.cpython-36.pyc index ec62e28..307b627 100644 Binary files a/generalApp/__pycache__/utilities.cpython-36.pyc and b/generalApp/__pycache__/utilities.cpython-36.pyc differ diff --git a/generalApp/utilities.py b/generalApp/utilities.py index 27612dd..e4c418a 100755 --- a/generalApp/utilities.py +++ b/generalApp/utilities.py @@ -22,6 +22,8 @@ def createToken(userDict): def checkSession(request, privilige): token = tryGetTokenFromRequest(request) + print( token ) + print( tokens ) for currentToken in tokens: if token == currentToken: if decodeToken(currentToken)['payload']['privilige'] >= privilige: @@ -70,6 +72,8 @@ def checkUserPermission(modelDict, request): token = tryGetTokenFromRequest(request) if modelIsNotUser(modelDict): + print( UserIsAdmin(token) ) + print( UserIsModer(token) ) if UserIsAdmin(token): return True elif UserIsModer(token):