def post(self): self.set_session_store() self.response.headers['Content-Type'] = "application/json" sender_id = self.current_user_id() sender = User.get_by_id(sender_id) if sender_id else None if not sender: self.render_json( {"error": "you need to be logged in to upload files."}, 401 ) return if ( not sender.is_staff and not sender.is_admin and not sender.is_domain_admin ): self.render_json( {"error": "Only admin and staff can upload files."}, 403 ) return upload_files = self.get_uploads('file') blob_info = upload_files[0] name = self.request.POST.get('name', blob_info.filename) exam = models.AssessmentExam.new_exam(name, blob_info.key()) self.render_json(exam.summary())
def get(self, keyId): self.set_session_store() keyId = str(urllib.unquote(keyId)) viewer_id = self.current_user_id() viewer = User.get_by_id(viewer_id) if viewer_id else None if not viewer: self.error(401) return doc = models.Document.get_by_id(keyId) if ( not viewer.is_staff and not viewer.is_admin and not viewer.is_domain_admin and viewer.student_id != doc.dest_ref.id() ): self.error(403) blob_info = blobstore.BlobInfo.get(keyId) if blob_info.filename.endswith('.pdf'): self.send_blob(blob_info, content_type='application/pdf') else: self.send_blob(blob_info)
def post(self): self.set_session_store() self.response.headers['Content-Type'] = "application/json" sender_id = self.current_user_id() sender = User.get_by_id(sender_id) if sender_id else None if not sender: self.render_json( {"error": "you need to be logged in to upload files."}, 401 ) return if ( not sender.is_staff and not sender.is_admin and not sender.is_domain_admin ): self.render_json( {"error": "Only admin and staff can upload files."}, 403 ) return upload_files = self.get_uploads('file') blob_info = upload_files[0] dest_student_id = self.request.POST.get('destId') name = self.request.POST.get('name', blob_info.filename) doc_type = self.request.POST.get('docType') if not dest_student_id: self.render_json( {"error": 'No recipent was given.'}, 400 ) return if not doc_type: self.render_json( {"error": 'A document should have a type.'}, 400 ) return try: new_file = models.Document.new_file( dest_student_id, blob_info, doc_type, sender, name ) except (ValueError, ValidationError,), e: self.render_json( {"error": "Failed to safe new file (%s)." % str(e)}, 400 ) return
def post(self): self.set_session_store() self.response.headers['Content-Type'] = "application/json" sender_id = self.current_user_id() sender = User.get_by_id(sender_id) if sender_id else None if not sender: self.render_json( {"error": "you need to be logged in to upload files."}, 401) return if (not sender.is_staff and not sender.is_admin and not sender.is_domain_admin): self.render_json( {"error": "Only admin and staff can upload files."}, 403) return upload_files = self.get_uploads('file') blob_info = upload_files[0] dest_student_id = self.request.POST.get('destId') name = self.request.POST.get('name', blob_info.filename) doc_type = self.request.POST.get('docType') if not dest_student_id: self.render_json({"error": 'No recipent was given.'}, 400) return if not doc_type: self.render_json({"error": 'A document should have a type.'}, 400) return try: new_file = models.Document.new_file(dest_student_id, blob_info, doc_type, sender, name) except ( ValueError, ValidationError, ), e: self.render_json( {"error": "Failed to safe new file (%s)." % str(e)}, 400) return
def get(self, keyId): self.set_session_store() keyId = str(urllib.unquote(keyId)) viewer_id = self.current_user_id() viewer = User.get_by_id(viewer_id) if viewer_id else None if not viewer: self.error(401) return doc = models.Document.get_by_id(keyId) if (not viewer.is_staff and not viewer.is_admin and not viewer.is_domain_admin and viewer.student_id != doc.dest_ref.id()): self.error(403) blob_info = blobstore.BlobInfo.get(keyId) if blob_info.filename.endswith('.pdf'): self.send_blob(blob_info, content_type='application/pdf') else: self.send_blob(blob_info)
def post(self): self.set_session_store() self.response.headers['Content-Type'] = "application/json" sender_id = self.current_user_id() sender = User.get_by_id(sender_id) if sender_id else None if not sender: self.render_json( {"error": "you need to be logged in to upload files."}, 401) return if (not sender.is_staff and not sender.is_admin and not sender.is_domain_admin): self.render_json( {"error": "Only admin and staff can upload files."}, 403) return upload_files = self.get_uploads('file') blob_info = upload_files[0] name = self.request.POST.get('name', blob_info.filename) exam = models.AssessmentExam.new_exam(name, blob_info.key()) self.render_json(exam.summary())