コード例 #1
0
ファイル: LibraryModules.py プロジェクト: SysMo/SmoSTEM
	def put(self, moduleID):
		with AdminPermission.require():
			moduleData = parseJsonResponse(request.data)
			del moduleData['_id']
			module = LibraryModule.objects.get(id = moduleID)
			module.modify(**moduleData)
			module.save()
コード例 #2
0
ファイル: LibraryModules.py プロジェクト: SysMo/SmoSTEM
	def post(self, moduleID = None):
		with AdminPermission.require():
			if (moduleID == None):
				newModule = LibraryModule()
				newModule.save()
				return makeJsonResponse({'_id': newModule.id})
			else:
				params = request.args
				action = params.get('action')			
				raise APIException("Unknown POST action {}".format(action))
コード例 #3
0
ファイル: Models.py プロジェクト: SysMo/SmoSTEM
 def listModels(self):
     responseFields = {"name": True, "description": True, "created": True, "owner": True}
     userCollection = User._get_collection()
     models = None
     if current_user.is_authenticated():
         user = current_user._get_current_object()
         # modelUserRelation = [own, shared, public, all]
         modelUserRelation = request.args.get("modelUserRelation", "own")
         if modelUserRelation == "own":
             searchFilter = {"owner": user.id}
         elif modelUserRelation == "shared":
             models = []
             sharedModelAccess = MP.ModelUserAccess.objects(
                 user=user, access__gte=MP.ModelUserAccess.ACCESS_DCT["list"]
             )
             for modelAccess in sharedModelAccess:
                 model = modelAccess.model
                 models.append(
                     {
                         "_id": model.id,
                         "name": model.name,
                         "description": model.description,
                         "created": model.created,
                         "owner": model.owner.username,
                         "access": modelAccess.access,
                     }
                 )
         elif modelUserRelation == "public":
             searchFilter = {"publicAccess": {"$gte": Model.PUBLIC_ACCESS_DCT["list"]}}
             responseFields["publicAccess"] = True
         elif modelUserRelation == "all":
             if AdminPermission.can():
                 searchFilter = {}
             else:
                 raise UnauthorizedError("Only administrators can list all models in the database")
         else:
             raise APIException("Invalid value for modelUserRelation, must be one of [own, shared, public, all]")
     else:
         searchFilter = {"publicAccess": {"$gte": Model.PUBLIC_ACCESS_DCT["list"]}}
         responseFields["publicAccess"] = True
     if models is None:
         models = list(Model._get_collection().find(searchFilter, responseFields, sort=[("name", 1)]))
         for model in models:
             model["owner"] = userCollection.find_one({"_id": model["owner"]})["username"]
     return makeJsonResponse(models)
コード例 #4
0
ファイル: LibraryModules.py プロジェクト: SysMo/SmoSTEM
	def delete(self, moduleID):
		with AdminPermission.require():
			LibraryModule.objects.get(id = moduleID).delete()
			return {'msg': 'Module deleted'}