Skip to content
Snippets Groups Projects
Commit b1832d2e authored by Martin Mareš's avatar Martin Mareš
Browse files

org_jobs: Společná kontrola práv k jobům

parent 77980d0e
Branches
No related tags found
No related merge requests found
......@@ -49,15 +49,20 @@ def org_jobs():
)
@app.route('/org/jobs/<int:id>/')
def org_job(id: int):
sess = db.get_session()
job = sess.query(db.Job).options(joinedload(db.Job.user)).get(id)
def get_job(id: int) -> db.Job:
job = db.get_session().query(db.Job).options(joinedload(db.Job.user)).get(id)
if job is None:
return werkzeug.exceptions.NotFound()
raise werkzeug.exceptions.NotFound()
if not (job.user_id == g.user.user_id or g.user.is_admin):
return werkzeug.exceptions.Forbidden()
raise werkzeug.exceptions.Forbidden()
return job
@app.route('/org/jobs/<int:id>/')
def org_job(id: int):
job = get_job(id)
has_errors = (job.state == db.JobState.failed
and isinstance(job.out_json, dict)
......@@ -72,15 +77,5 @@ def org_job(id: int):
@app.route('/org/jobs/<int:id>/output')
def org_job_output(id: int):
sess = db.get_session()
job = sess.query(db.Job).get(id)
if job is None:
return werkzeug.exceptions.NotFound()
if not (job.user_id == g.user.user_id or g.user.is_org):
return werkzeug.exceptions.Forbidden()
if job.state != db.JobState.done or job.out_file is None:
return werkzeug.exceptions.NotFound()
job = get_job(id)
return mo.web.util.send_job_result(job)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment