delete old Abstract
parent
20cf6148f3
commit
de9ca3ce04
|
|
@ -6,123 +6,6 @@ from .utilities import *
|
||||||
from .AbstractCRUD import AbstractCRUD
|
from .AbstractCRUD import AbstractCRUD
|
||||||
|
|
||||||
|
|
||||||
class ObjectAbstract(models.Model):
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def addObject(self, request, parentID, privilige):
|
|
||||||
if checkSession(request, privilige):
|
|
||||||
object = jsonLoad(request)
|
|
||||||
if self.__checkUniqueValues(self, parentID, object):
|
|
||||||
return self.__saveObject(self, parentID, object)
|
|
||||||
else:
|
|
||||||
return HttpResponse("Object Is Already Exist")
|
|
||||||
else:
|
|
||||||
return HttpResponse("No Permission")
|
|
||||||
|
|
||||||
def __checkUniqueValues(model, parentID, objectDict):
|
|
||||||
objectsAll = model.__allObjectsDict(model)
|
|
||||||
for x in objectsAll:
|
|
||||||
if model == Ratings:
|
|
||||||
if int(x['user_id']) == int(objectDict['user_id']) and int(x['comment_id']) == parentID:
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
def __saveObject(model, parentID, objectDict):
|
|
||||||
newObject = model()
|
|
||||||
newObject.fromDict(objectDict)
|
|
||||||
if model.modelHaveParent(model):
|
|
||||||
newObject.setParentID(parentID)
|
|
||||||
if model.modelIsTrigger(model):
|
|
||||||
newObject.setActualTime()
|
|
||||||
newObject.save()
|
|
||||||
return HttpResponse(f"{model.__name__}: Add new Object: {newObject.toDict()}")
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def __allObjectsDict(model):
|
|
||||||
objectAll = model.objects.all()
|
|
||||||
list = []
|
|
||||||
for x in objectAll:
|
|
||||||
list.append(x.toDict())
|
|
||||||
return list
|
|
||||||
|
|
||||||
def modelIsNotUser(model):
|
|
||||||
return model != Users
|
|
||||||
|
|
||||||
def modelHaveParent(model):
|
|
||||||
return model != Threads and model != Users
|
|
||||||
|
|
||||||
def modelIsTrigger(model):
|
|
||||||
return model == Triggers
|
|
||||||
|
|
||||||
def modelIsSubject(model):
|
|
||||||
return model == Subjects
|
|
||||||
|
|
||||||
def newCommentInNewSubject(objectDict):
|
|
||||||
return 'comment' in objectDict
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def getObject(self, request, objectID, privilige): # request, privilige is unnecessary
|
|
||||||
return self.__getObjectNormal(self, objectID)
|
|
||||||
|
|
||||||
def __getObjectNormal(model, objectID):
|
|
||||||
object = model.objects.get(pk = objectID).toDict()
|
|
||||||
return HttpResponse(json.dumps(object))
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def getAllObjects(self, request, privilige):
|
|
||||||
objectsAll = self.__allObjectsDict(self)
|
|
||||||
return HttpResponse(json.dumps(objectsAll))
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def getObjectsByParentID(self, request, parentID, privilige):
|
|
||||||
if self.modelHaveParent(self):
|
|
||||||
return HttpResponse(self.getAllByParentID(parentID))
|
|
||||||
return HttpResponse("No Permission")
|
|
||||||
|
|
||||||
# @classmethod
|
|
||||||
# def putObject(self, request, objectID, privilige):
|
|
||||||
# if checkSession(request, privilige):
|
|
||||||
# object = jsonLoad(request)
|
|
||||||
# return self.updateObject(self, request, object, objectID)
|
|
||||||
# else:
|
|
||||||
# return HttpResponse("No Permission")
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def putObject(self, request, objectID, privilige):
|
|
||||||
object = jsonLoad(request)
|
|
||||||
if checkSession(request, privilige) and checkUserPermission(object, request):
|
|
||||||
return self.updateObject(request, object, objectID)
|
|
||||||
else:
|
|
||||||
return HttpResponse("No Permission")
|
|
||||||
|
|
||||||
def updateObject(model, request, objectDict, objectID):
|
|
||||||
objectOld = model.objects.get(pk = objectID)
|
|
||||||
if model.modelIsUser(model):
|
|
||||||
if checkPassHash(objectDict['passwordOld'], objectOld.password):
|
|
||||||
if 'passwordNew' in objectDict.keys():
|
|
||||||
objectDict['password'] = createPassHash(objectDict['passwordNew'])
|
|
||||||
else:
|
|
||||||
return HttpResponse('Bad Password')
|
|
||||||
objectOld.fromDict(objectDict)
|
|
||||||
if checkUserPermission(objectOld.toDict(), request):
|
|
||||||
objectOld.save()
|
|
||||||
return HttpResponse(f"{model.__name__}: {objectOld.toDict()} has been updated")
|
|
||||||
else:
|
|
||||||
return HttpResponse("No Permission")
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def deleteObject(model, request, objectID, privilige):
|
|
||||||
objectDel = model.objects.get(pk = objectID)
|
|
||||||
if checkSession(request, privilige) and checkUserPermission(objectDel.toDict(), request):
|
|
||||||
objectDel.delete()
|
|
||||||
return HttpResponse(f"{model.__name__}: {objectDel} has been deleted")
|
|
||||||
else:
|
|
||||||
return HttpResponse("No Permission")
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
abstract = True
|
|
||||||
|
|
||||||
|
|
||||||
class Users(AbstractCRUD):
|
class Users(AbstractCRUD):
|
||||||
login = models.CharField(max_length=30)
|
login = models.CharField(max_length=30)
|
||||||
password = models.CharField(max_length=200)
|
password = models.CharField(max_length=200)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue