delete old Abstract
parent
20cf6148f3
commit
de9ca3ce04
|
|
@ -6,123 +6,6 @@ from .utilities import *
|
|||
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):
|
||||
login = models.CharField(max_length=30)
|
||||
password = models.CharField(max_length=200)
|
||||
|
|
|
|||
Loading…
Reference in New Issue