diff --git a/modules/first_boot/middleware.py b/modules/first_boot/middleware.py index 3d354b1ea..d28967d42 100644 --- a/modules/first_boot/middleware.py +++ b/modules/first_boot/middleware.py @@ -13,11 +13,15 @@ class FirstBootMiddleware: """ Forward to firstboot page if firstboot isn't finished yet """ def process_request(self, request): with sqlite_db(cfg.store_file, table='firstboot') as database: + first_boot_url = reverse('first_boot:index') if not 'state' in database: - # Permanent redirect causes the browser to cache the redirect, - # preventing the user from navigating to /plinth until the - # browser is restarted. - return HttpResponseRedirect(reverse('first_boot:index')) + if hasattr(request, 'url') and request.url != first_boot_url: + # Permanent redirect causes the browser to cache the + # redirect, preventing the user from navigating to /plinth + # until the browser is restarted. + return HttpResponseRedirect(first_boot_url) + else: + return if database['state'] < 5: LOGGER.info('First boot state - %d', database['state'])