def delete(self, task_id, comment_id): if not permissions.has_manager_permissions(): user_service.check_assigned(task_id) comment = self.remove_comment_and_related(comment_id) self.update_task_status(task_id) return comment
def get(self, person_id): if not permissions.has_manager_permissions(): projects = user_service.related_projects() else: projects = projects_service.open_projects() return tasks_service.get_person_done_tasks(person_id, projects)
def get(self, task_id): task = tasks_service.get_task(task_id) if not permissions.has_manager_permissions(): user_service.check_has_task_related(task["project_id"]) return files_service.get_preview_files_for_task(task_id)
def get(self, task_id): task = tasks_service.get_task(task_id) if not permissions.has_manager_permissions(): user_service.check_has_task_related(task["project_id"]) return tasks_service.get_comments(task_id)
def post(self, task_id): (task_status_id, comment, person_id, created_at, checklist) = self.get_arguments() task = tasks_service.get_task(task_id) user_service.check_project_access(task["project_id"]) user_service.check_entity_access(task["entity_id"]) task_status = tasks_service.get_task_status(task_status_id) if not permissions.has_manager_permissions(): person_id = None created_at = None if person_id: person = persons_service.get_person(person_id) else: person = persons_service.get_current_user() comment = tasks_service.create_comment(object_id=task_id, object_type="Task", files=request.files, person_id=person["id"], task_status_id=task_status_id, text=comment, checklist=checklist, created_at=created_at) status_changed = task_status_id != task["task_status_id"] new_data = { "task_status_id": task_status_id, "last_comment_date": comment["created_at"], } if status_changed: if task_status["is_retake"]: retake_count = task["retake_count"] if retake_count is None or retake_count == "NoneType": retake_count = 0 new_data["retake_count"] = retake_count + 1 if task_status["is_done"]: new_data["end_date"] = datetime.datetime.now() else: new_data["end_date"] = None if (task_status["short_name"] == "wip" and task["real_start_date"] is None): new_data["real_start_date"] = datetime.datetime.now() tasks_service.update_task(task_id, new_data) if status_changed: events.emit( "task:status-changed", { "task_id": task_id, "new_task_status_id": new_data["task_status_id"], "previous_task_status_id": task["task_status_id"] }) task = tasks_service.get_task_with_relations(task_id) notifications_service.create_notifications_for_task_and_comment( task, comment, change=status_changed) news_service.create_news_for_task_and_comment(task, comment, change=status_changed) comment["task_status"] = task_status comment["person"] = person return comment, 201
def get(self, task_id): task = tasks_service.get_task(task_id) user_service.check_project_access(task["project_id"]) is_client = permissions.has_client_permissions() is_manager = permissions.has_manager_permissions() return tasks_service.get_comments(task_id, is_client, is_manager)
def serialize_instance(self, instance, relations=False): if permissions.has_manager_permissions(): return instance.serialize_safe(relations=relations) else: return instance.present_minimal(relations=relations)
def check_permissions(self, instance_id): is_current_user = \ persons_service.get_current_user()["id"] != instance_id if is_current_user and not permissions.has_manager_permissions(): raise permissions.PermissionDenied
def serialize_instance(self, instance): if permissions.has_manager_permissions(): return instance.serialize_safe() else: return instance.serialize_without_info()
def check_update_permissions(self, output_file, data): if permissions.has_manager_permissions(): return True return False
def check_update_permissions(self, output_file, data): if permissions.has_manager_permissions(): return True else: return user_service.check_working_on_entity( output_file["entity_id"])
def check_project_access(project_id): return permissions.has_manager_permissions() or \ check_has_task_related(project_id)
def check_update_permissions(self, preview_file, data): task = tasks_service.get_task(preview_file["task_id"]) user_service.check_project_access(task["project_id"]) if not permissions.has_manager_permissions(): user_service.check_working_on_task(task["entity_id"]) return True
def put(self, task_id): task = tasks_service.get_task(task_id) if not permissions.has_manager_permissions(): user_service.check_assigned(task_id) return tasks_service.start_task(task["id"])
def is_allowed(self, preview_file_id): if permissions.has_manager_permissions(): return True else: preview_file = files_service.get_preview_file(preview_file_id) return user_service.check_assigned(preview_file["task_id"])
def get(self, entity_id, task_type_id): entity = entities_service.get_entity(entity_id) if not permissions.has_manager_permissions(): user_service.check_has_task_related(entity["project_id"]) return tasks_service.get_tasks_for_entity_and_task_type( entity_id, task_type_id)
def serialize_instance(self, instance): if permissions.has_manager_permissions(): return instance.serialize_safe() else: return instance.present_minimal()
def get(self, entity_id): entity = entities_service.get_entity(entity_id) if not permissions.has_manager_permissions(): user_service.check_has_task_related(entity["project_id"]) return files_service.get_last_output_files_for_entity(entity["id"])
def is_current_user_manager(): """ Return true is current user is manager or admin. """ return permissions.has_manager_permissions()