diff options
author | dk-15 | 2017-06-15 18:55:21 +0530 |
---|---|---|
committer | dk-15 | 2017-06-15 19:02:21 +0530 |
commit | 730a85cddf9958e0e7c70bde0aebb0a566dc685c (patch) | |
tree | 3236fdf8e3fd0fb1f6a057db7f5204918c23d346 | |
parent | b4985750bdf1ad7c570723e3f8387f4c9ce3e561 (diff) | |
download | SBHS-2018-Rpi-730a85cddf9958e0e7c70bde0aebb0a566dc685c.tar.gz SBHS-2018-Rpi-730a85cddf9958e0e7c70bde0aebb0a566dc685c.tar.bz2 SBHS-2018-Rpi-730a85cddf9958e0e7c70bde0aebb0a566dc685c.zip |
Add function to provide RPi ip to client app
-rw-r--r-- | experiment/urls.py | 2 | ||||
-rw-r--r-- | experiment/views.py | 81 |
2 files changed, 10 insertions, 73 deletions
diff --git a/experiment/urls.py b/experiment/urls.py index 9445973..6b9c801 100644 --- a/experiment/urls.py +++ b/experiment/urls.py @@ -9,7 +9,7 @@ urlpatterns = [ url(r'^experiment/check_connection/?$', views.check_connection, name='experiment_check_connection'), url(r'^experiment/client_version/?$', views.client_version, name='experiment_client_version'), - url(r'^experiment/initiate/?$', views.initiation, name='experiment_initiate'), + url(r'^experiment/initiate/?$', views.initial_login, name='experiment_initiate'), url(r'^experiment/experiment/?$', views.experiment, name='experiment_experiment'), url(r'^experiment/reset/?$', views.reset, name='experiment_reset'), url(r'^experiment/logs/?$', views.logs, name='experiment_logs'), diff --git a/experiment/views.py b/experiment/views.py index 9b493f3..1aa79e5 100644 --- a/experiment/views.py +++ b/experiment/views.py @@ -13,80 +13,17 @@ def check_connection(req): return HttpResponse("TESTOK") @csrf_exempt -def initiation(req): +def initial_login(req): username = req.POST.get("username") - password = req.POST.get("password") - user = authenticate(username=username, password=password) - if user is not None: - if user.is_active: - user1 = Account.objects.select_related().filter(id=user.id) - user1 = user1[0] - user_board = user1.board - - #allows admin to access the temporary offline devices but prohibits the users to do so - if user_board.online and (not user_board.temp_offline or user1.is_admin): - slots = Slot.slots_now() - slot_ids = [s.id for s in slots] - now = datetime.datetime.now() - bookings = user.booking_set.filter(booking_date__year=now.year, - booking_date__month=now.month, - booking_date__day=now.day, - slot_id__in=slot_ids).select_related("slot") - try: - cur_booking = bookings[0] - active_slot = cur_booking.slot - except: - cur_booking = None - active_slot = None - - if active_slot is not None: - endtime = cur_booking.end_time() - if now < endtime: - filename = datetime.datetime.strftime(now, "%Y%b%d_%H_%M_%S.txt") - logdir = os.path.join(settings.EXPERIMENT_LOGS_DIR, user.username) - if not os.path.exists(logdir): - os.makedirs(logdir) - - f = open(os.path.join(logdir, filename), "a") - f.close() - - LOGIN(req, user) - - e = Experiment() - e.booking=cur_booking - e.log=os.path.join(logdir, filename) - e.save() - - key = str(user_board.mid) - - settings.boards[key]["experiment_id"] = e.id - global_logfile = settings.SBHS_GLOBAL_LOG_DIR + "/" + key + ".log" - with open(global_logfile, "a") as global_loghandler: - data = "\n\n===================New experiment====================\nUsername : " + user.username + "\nExperiment Id : " + str(e.id) + "\n" - global_loghandler.write(data) - - reset(req) - - STATUS = 1 - MESSAGE = filename - else: - reset(req) - STATUS = 0 - MESSAGE = "Slot has ended. Please book the next slot to continue the experiment." - else: - STATUS = 0 - MESSAGE = "You haven't booked this slot." - else: - STATUS = 0 - MESSAGE = "Your SBHS is offline. Please contact the Vlabs team." - else: - STATUS = 0 - MESSAGE = "Your account is not activated yet. Please check your email for activation link." - else: - STATUS = 0 - MESSAGE = "Invalid username or password" + rpi_ip = '' + try: + assigned_mid = Account.objects.select_related().get(username=username).board.mid + except Exception as e: + return HttpResponse(json.dumps({"STATUS": 400, "MESSAGE": "Invalid username"})) + + rpi_ip = settings.pi_ip_map[str(assigned_mid)] - return HttpResponse(json.dumps({"STATUS": STATUS, "MESSAGE": MESSAGE})) + return HttpResponse(json.dumps({"STATUS": 200, "MESSAGE": rpi_ip})) # return HttpResponse(key) # @login_required(redirect_field_name=None) @csrf_exempt |