From 8e8c4edfc7a1df1a2562d29c0848b905fbde022f Mon Sep 17 00:00:00 2001 From: Unknown Author Date: Fri, 8 Aug 2008 23:32:30 +0000 Subject: [PATCH] Replaced hard coded IP address (of permitted analysis clients to from end) with the use of dicionary vars, defined in the settings.py. --- gaworkflow/frontend/exp_track/exptrack.py | 124 ++++++++++++---------- 1 file changed, 68 insertions(+), 56 deletions(-) diff --git a/gaworkflow/frontend/exp_track/exptrack.py b/gaworkflow/frontend/exp_track/exptrack.py index 38daaab..8cd5d6d 100644 --- a/gaworkflow/frontend/exp_track/exptrack.py +++ b/gaworkflow/frontend/exp_track/exptrack.py @@ -3,8 +3,9 @@ from django.http import HttpResponse from datetime import datetime from string import * import re -from gaworkflow.frontend.exp_track.models import DataRun -from gaworkflow.frontend.fctracker.models import FlowCell, Library +from gaworkflow.frontend import settings +from gaworkflow.frontend.exp_track.models import FlowCell, DataRun +from gaworkflow.frontend.fctracker.models import Library from django.core.exceptions import ObjectDoesNotExist from django.core.mail import send_mail, mail_admins @@ -13,11 +14,20 @@ def updStatus(request): user = 'none' pswd = '' UpdatedStatus = 'unknown' - ClIP = 'unknown' - granted = False fcid = 'none' runfolder = 'unknown' - + ClIP = request.META['REMOTE_ADDR'] + granted = False + + if request.has_key('user'): + user = request['user'] + + #Check access permission + if (user == 'rami' and settings.ALLOWED_IPS.has_key(ClIP)): granted = True + if not granted: return HttpResponse("access denied.") + + + # ~~~~~~Parameters for the job ~~~~ if request.has_key('fcid'): fcid = request['fcid'] else: @@ -27,51 +37,35 @@ def updStatus(request): runfolder = request['runf'] else: return HttpResponse('missing runf') - - if request.has_key('user'): - user = request['user'] - else: - return HttpResponse('access denied') - - #TO DO: pswd decode etc.. - #if request.has_key('pswd'): - # pswd = request['pswd'] - #else: - # return HttpResponse('access denied') - ClIP = request.META['REMOTE_ADDR'] - #Check permission to update - if (user == 'rami' and (ClIP == '171.65.76.167' or ClIP == '171.65.76.51' or ClIP == '171.65.76.194' or (ClIP == '74.51.115.100' or ClIP == '64.89.97.100'))): ## or ClIP == '127.0.0.1')): - granted = True + if request.has_key('updst'): + UpdatedStatus = request['updst'] + else: + return HttpResponse('missing status') - if granted: - if request.has_key('updst'): - UpdatedStatus = request['updst'] - else: - return HttpResponse('missing status') - - # Update Data Run status in DB - # Try get rec. If not found return 'entry not found + ', if found try update and return updated - try: - rec = DataRun.objects.get(run_folder=runfolder) - rec.run_status = UpdatedStatus - - #if there's a message update that too - mytimestamp = datetime.now().__str__() - mytimestamp = re.sub(pattern=":[^:]*$",repl="",string=mytimestamp) - if request.has_key('msg'): - rec.run_note += ", "+request['msg']+" ("+mytimestamp+")" - else : - if UpdatedStatus == '1': - rec.run_note = "Started ("+mytimestamp+")" - - rec.save() - output = "updated to:'"+DataRun.RUN_STATUS_CHOICES[int(UpdatedStatus)][1].__str__()+"'" - except ObjectDoesNotExist: - output = "entry not found: "+fcid+", "+runfolder - else: - output ="access denied.. u: "+user+", ClIP: "+ClIP + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + # Update Data Run status in DB + # Try get rec. If not found return 'entry not found + ', if found try update and return updated + try: + rec = DataRun.objects.get(run_folder=runfolder) + rec.run_status = UpdatedStatus + + #if there's a message update that too + mytimestamp = datetime.now().__str__() + mytimestamp = re.sub(pattern=":[^:]*$",repl="",string=mytimestamp) + if request.has_key('msg'): + rec.run_note += ", "+request['msg']+" ("+mytimestamp+")" + else : + if UpdatedStatus == '1': + rec.run_note = "Started ("+mytimestamp+")" + + rec.save() + output = "Hello "+settings.ALLOWED_IPS[ClIP]+". Updated to:'"+DataRun.RUN_STATUS_CHOICES[int(UpdatedStatus)][1].__str__()+"'" + except ObjectDoesNotExist: + output = "entry not found: "+fcid+", "+runfolder + #Notify researcher by email # Doesn't work @@ -81,6 +75,12 @@ def updStatus(request): return HttpResponse(output) def generateConfile(fcid): + granted = False + ClIP = request.META['REMOTE_ADDR'] + if (settings.ALLOWED_IPS.has_key(ClIP)): granted = True + + if not granted: return HttpResponse("access denied.") + cnfgfile = 'READ_LENGTH 25\n' cnfgfile += 'ANALYSIS eland\n' cnfgfile += 'GENOME_FILE all_chr.fa\n' @@ -121,6 +121,12 @@ def generateConfile(fcid): return cnfgfile def getConfile(request): + granted = False + ClIP = request.META['REMOTE_ADDR'] + if (settings.ALLOWED_IPS.has_key(ClIP)): granted = True + + if not granted: return HttpResponse("access denied.") + fcid = 'none' cnfgfile = '' runfolder = 'unknown' @@ -148,6 +154,12 @@ def getConfile(request): return HttpResponse(cnfgfile) def getLaneLibs(request): + granted = False + ClIP = request.META['REMOTE_ADDR'] + if (settings.ALLOWED_IPS.has_key(ClIP)): granted = True + + if not granted: return HttpResponse("access denied.") + fcid = 'none' outputfile = '' if request.has_key('fcid'): @@ -165,15 +177,15 @@ def getLaneLibs(request): else: day = day.__str__() mydate = year+month+day outputfile = '' - outputfile += '\n' - outputfile += '\n' - outputfile += '\n' - outputfile += '\n' - outputfile += '\n' - outputfile += '\n' - outputfile += '\n' - outputfile += '\n' - outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' + outputfile += '\n' outputfile += '\n' except ObjectDoesNotExist: outputfile = 'Flowcell entry not found for: '+fcid -- 2.30.2