diff --git a/browser/js/database.js b/browser/js/database.js index 074b2f21b357423209cf05eaf94125bc4724991d..8f8165563deb11ed210232b3d0ec8d7e90bca368 100644 --- a/browser/js/database.js +++ b/browser/js/database.js @@ -201,7 +201,7 @@ Database.prototype = { if (result.status == "COMPLETED"){ callback(result.data); }else if(result.status == "FAILED"){ - console.log({"type": "flash", "msg": "process failed", "priority": 1}); + console.log({"type": "flash", "msg": "process failed:" + ((typeof result.message !== 'undefined') ? result.message: ''), "priority": 1}); }else{ setTimeout(function(){ self.waitProcess(processId, interval, callback); }, interval); } diff --git a/server/web2py/applications/vidjil/controllers/default.py b/server/web2py/applications/vidjil/controllers/default.py index e2634a6ece9fb2c99d4c2ab3abcf1158c56eafca..606c2f4cb59dff506d47a934be5b109c7853b8da 100644 --- a/server/web2py/applications/vidjil/controllers/default.py +++ b/server/web2py/applications/vidjil/controllers/default.py @@ -172,8 +172,15 @@ def run_extra(): def checkProcess(): task = db.scheduler_task[request.vars["processId"]] - - if task.status == "COMPLETED" : + results_file = db(db.results_file.scheduler_task_id == task.id).select().first() + + msg = '' + sample_set_id = -1 + if results_file: + sample_set_id = get_sample_set_id_from_results_file(results_file.id) + if not results_file or not auth.can_view_sample_set(sample_set_id): + msg = "You don't have access to this sample" + if sample_set_id > -1 and task.status == "COMPLETED" : run = db( db.scheduler_run.task_id == task.id ).select()[0] res = {"success" : "true", @@ -181,9 +188,15 @@ def checkProcess(): "data" : run.run_result, "processId" : task.id} else : - res = {"success" : "true", - "status" : task.status, - "processId" : task.id} + if len(msg) > 0: + res = {"success" : "false", + "status" : "FAILED", + "message": msg, + "processId" : task.id} + else: + res = {"success" : "true", + "status" : task.status, + "processId" : task.id} log.error(res) return gluon.contrib.simplejson.dumps(res, separators=(',',':'))