def get_context_data( self, *args, **kwargs): #add data not out of database or another mdoel context = super(TweetListView, self).get_context_data( *args, **kwargs) #inherit data from class qs_user = User.objects.filter(username=self.request.user) from maintenance_mode.utils import get_client_ip_address client_ip_1 = get_client_ip_address(self.request) logger.info(client_ip_1) from ipware import get_client_ip client_ip, is_routable = get_client_ip(self.request) logger.info(client_ip) logger.info(is_routable) context['create_form'] = TweetModelForm() context['create_form_2'] = ProfileImage() context['create_form_3'] = ProfileName() context['create_url'] = reverse_lazy("tweet:create") context['create_url_2'] = str(self.request.user) + "/update/" qs = UserProfile.objects.filter(user__exact=self.request.user) context['points'] = qs.values('points').first()["points"] context['name'] = qs.values('name').first()["name"] context['image'] = qs.values('image').first()["image"] context['user_id_1'] = qs_user.values('id').first()["id"] context['user_id_2'] = qs.values('id').first()["id"] if context['image'] == "no_img": context['image'] = "static/Hiyoko.png" logger.info("what's happening???") try: qs = Payment.objects.filter(user=self.request.user) id = qs.values('purchase_id').first()["purchase_id"] logger.info(qs) logger.info(id) try: api = CoingateAPI(auth_token=auth_token, environment='live') result = api.checkout( id ) # if there were no such an order, it would return error logger.info(result) if result['status'] == 'paid': user_obj = UserProfile.objects.filter( user=self.request.user).first() points_add = qs.values('points').first()["points"] points_original = user_obj.points points = points_original + points_add user_obj.points = points user_obj.save() qs.delete() else: logger.info(result['status']) except api_error.APIError as e: logger.info(e) except TypeError as e: logger.info(e) logger.info(qs) logger.info("No data in queryset") return context
def test_middleware_ignore_ip_addresses(self): self.__reset_state() settings.MAINTENANCE_MODE = True request = self.__get_anonymous_user_request('/') settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES = (utils.get_client_ip_address(request), ) response = self.middleware.process_request(request) self.assertEqual(response, None) settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES = None response = self.middleware.process_request(request) self.assertMaintenanceMode(response)
def test_middleware_ignore_ip_addresses(self): self.__reset_state() settings.MAINTENANCE_MODE = True request = self.__get_anonymous_user_request('/') settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES = ( utils.get_client_ip_address(request), ) response = self.middleware.process_request(request) self.assertEqual(response, None) settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES = None response = self.middleware.process_request(request) self.assertMaintenanceResponse(response)
def test_middleware_ignore_ip_addresses_get_client_ip_address(self): self.__reset_state() settings.MAINTENANCE_MODE = True request = self.__get_anonymous_user_request('/') request.META['CLIENT_IP_ADDRESS_FIELD'] = '127.0.0.2' settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES = ( request.META['CLIENT_IP_ADDRESS_FIELD'], ) settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS = \ 'tests.tests.get_client_ip_address' response = self.middleware.process_request(request) self.assertEqual(response, None) settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS = \ 'tests.tests.get_client_ip_address_invalid' get_client_ip_address_error = False try: response = self.middleware.process_request(request) except ImproperlyConfigured: get_client_ip_address_error = True self.assertEqual(get_client_ip_address_error, True) settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS = \ 'tests.tests_invalid.get_client_ip_address' get_client_ip_address_error = False try: response = self.middleware.process_request(request) except ImproperlyConfigured: get_client_ip_address_error = True self.assertEqual(get_client_ip_address_error, True) settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES = ( utils.get_client_ip_address(request), ) settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS = None response = self.middleware.process_request(request) self.assertEqual(response, None) settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES = None settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS = None response = self.middleware.process_request(request) self.assertMaintenanceResponse(response)
def need_maintenance_response(request): """ Tells if the given request needs a maintenance response or not. """ try: view_match = resolve(request.path) view_func = view_match[0] view_dict = view_func.__dict__ view_force_maintenance_mode_off = view_dict.get( 'force_maintenance_mode_off', False) if view_force_maintenance_mode_off: # view has 'force_maintenance_mode_off' decorator return False view_force_maintenance_mode_on = view_dict.get( 'force_maintenance_mode_on', False) if view_force_maintenance_mode_on: # view has 'force_maintenance_mode_on' decorator return True except Resolver404: pass if not get_maintenance_mode(): return False try: url_off = reverse('maintenance_mode_off') resolve(url_off) if url_off == request.path_info: return False except NoReverseMatch: # maintenance_mode.urls not added pass if hasattr(request, 'user'): if django.VERSION < (1, 10): if settings.MAINTENANCE_MODE_IGNORE_ANONYMOUS_USER \ and request.user.is_anonymous(): return False if settings.MAINTENANCE_MODE_IGNORE_AUTHENTICATED_USER \ and request.user.is_authenticated(): return False else: if settings.MAINTENANCE_MODE_IGNORE_ANONYMOUS_USER \ and request.user.is_anonymous: return False if settings.MAINTENANCE_MODE_IGNORE_AUTHENTICATED_USER \ and request.user.is_authenticated: return False if settings.MAINTENANCE_MODE_IGNORE_STAFF \ and request.user.is_staff: return False if settings.MAINTENANCE_MODE_IGNORE_SUPERUSER \ and request.user.is_superuser: return False if settings.MAINTENANCE_MODE_IGNORE_ADMIN_SITE: try: request_path = request.path if request.path else '' if not request_path.endswith('/'): request_path += '/' admin_url = reverse('admin:index') if request_path.startswith(admin_url): return False except NoReverseMatch: # admin.urls not added pass if settings.MAINTENANCE_MODE_IGNORE_TESTS: is_testing = False if (len(sys.argv) > 0 and 'runtests' in sys.argv[0]) \ or (len(sys.argv) > 1 and sys.argv[1] == 'test'): # python runtests.py | python manage.py test | python # setup.py test | django-admin.py test is_testing = True if is_testing: return False if settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES: if settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS: try: get_client_ip_address_func = import_string( settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS) except ImportError: raise ImproperlyConfigured( 'settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS ' 'is not a valid function path.') else: client_ip_address = get_client_ip_address_func(request) else: client_ip_address = get_client_ip_address(request) for ip_address in settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES: ip_address_re = re.compile(ip_address) if ip_address_re.match(client_ip_address): return False if settings.MAINTENANCE_MODE_IGNORE_URLS: for url in settings.MAINTENANCE_MODE_IGNORE_URLS: if not isinstance(url, pattern_class): url = str(url) url_re = re.compile(url) if url_re.match(request.path_info): return False if settings.MAINTENANCE_MODE_REDIRECT_URL: redirect_url_re = re.compile( settings.MAINTENANCE_MODE_REDIRECT_URL) if redirect_url_re.match(request.path_info): return False return True
def need_maintenance_response(request): """ Tells if the given request needs a maintenance response or not. """ try: view_match = resolve(request.path) view_func = view_match[0] view_dict = view_func.__dict__ view_force_maintenance_mode_off = view_dict.get( 'force_maintenance_mode_off', False) if view_force_maintenance_mode_off: # view has 'force_maintenance_mode_off' decorator return False view_force_maintenance_mode_on = view_dict.get( 'force_maintenance_mode_on', False) if view_force_maintenance_mode_on: # view has 'force_maintenance_mode_on' decorator return True except Resolver404: pass if not get_maintenance_mode(): return False try: url_off = reverse('maintenance_mode_off') resolve(url_off) if url_off == request.path_info: return False except NoReverseMatch: # maintenance_mode.urls not added pass if hasattr(request, 'user'): if django.VERSION < (1, 10): if settings.MAINTENANCE_MODE_IGNORE_ANONYMOUS_USER \ and request.user.is_anonymous(): return False if settings.MAINTENANCE_MODE_IGNORE_AUTHENTICATED_USER \ and request.user.is_authenticated(): return False else: if settings.MAINTENANCE_MODE_IGNORE_ANONYMOUS_USER \ and request.user.is_anonymous: return False if settings.MAINTENANCE_MODE_IGNORE_AUTHENTICATED_USER \ and request.user.is_authenticated: return False if settings.MAINTENANCE_MODE_IGNORE_STAFF \ and request.user.is_staff: return False if settings.MAINTENANCE_MODE_IGNORE_SUPERUSER \ and request.user.is_superuser: return False if settings.MAINTENANCE_MODE_IGNORE_ADMIN_SITE: try: request_path = request.path if request.path else '' if not request_path.endswith('/'): request_path += '/' admin_url = reverse('admin:index') if request_path.startswith(admin_url): return False except NoReverseMatch: # admin.urls not added pass if settings.MAINTENANCE_MODE_IGNORE_TESTS: is_testing = False if (len(sys.argv) > 0 and 'runtests' in sys.argv[0]) \ or (len(sys.argv) > 1 and sys.argv[1] == 'test'): # python runtests.py | python manage.py test | python # setup.py test | django-admin.py test is_testing = True if is_testing: return False if settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES: if settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS: try: get_client_ip_address_func = import_string( settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS) except ImportError: raise ImproperlyConfigured( 'settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS ' 'is not a valid function path.') else: client_ip_address = get_client_ip_address_func(request) else: client_ip_address = get_client_ip_address(request) for ip_address in settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES: ip_address_re = re.compile(ip_address) if ip_address_re.match(client_ip_address): return False if settings.MAINTENANCE_MODE_IGNORE_URLS: for url in settings.MAINTENANCE_MODE_IGNORE_URLS: if not isinstance(url, pattern_class): url = str(url) url_re = re.compile(url) if url_re.match(request.path_info): return False if settings.MAINTENANCE_MODE_REDIRECT_URL: redirect_url_re = re.compile(settings.MAINTENANCE_MODE_REDIRECT_URL) if redirect_url_re.match(request.path_info): return False return True
def process_request(self, request): if settings.MAINTENANCE_MODE or core.get_maintenance_mode(): try: url_off = reverse('maintenance_mode_off') resolve(url_off) if url_off == request.path_info: return None except NoReverseMatch: #maintenance_mode.urls not added pass if hasattr(request, 'user'): if settings.MAINTENANCE_MODE_IGNORE_STAFF and request.user.is_staff: return None if settings.MAINTENANCE_MODE_IGNORE_SUPERUSER and request.user.is_superuser: return None if settings.MAINTENANCE_MODE_IGNORE_TESTS: is_testing = False if (len(sys.argv) > 0 and 'runtests' in sys.argv[0]) or ( len(sys.argv) > 1 and sys.argv[1] == 'test'): #python runtests.py | python manage.py test | python setup.py test | django-admin.py test is_testing = True if is_testing: return None if settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES: if settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS: get_client_ip_address_func = utils.import_function( settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS) if get_client_ip_address_func: client_ip_address = get_client_ip_address_func(request) else: raise ImproperlyConfigured( 'settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS is not a valid function path.' ) else: client_ip_address = utils.get_client_ip_address(request) for ip_address in settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES: ip_address_re = re.compile(ip_address) if ip_address_re.match(client_ip_address): return None if settings.MAINTENANCE_MODE_IGNORE_URLS: for url in settings.MAINTENANCE_MODE_IGNORE_URLS: url_re = re.compile(url) if url_re.match(request.path_info): return None if settings.MAINTENANCE_MODE_REDIRECT_URL: redirect_url_re = re.compile( settings.MAINTENANCE_MODE_REDIRECT_URL) if redirect_url_re.match(request.path_info): return None return HttpResponseRedirect( settings.MAINTENANCE_MODE_REDIRECT_URL) else: request_context = {} if settings.MAINTENANCE_MODE_GET_TEMPLATE_CONTEXT: get_request_context_func = utils.import_function( settings.MAINTENANCE_MODE_GET_TEMPLATE_CONTEXT) if get_request_context_func: request_context = get_request_context_func( request=request) else: raise ImproperlyConfigured( 'settings.MAINTENANCE_MODE_GET_TEMPLATE_CONTEXT is not a valid function path.' ) if django.VERSION < (1, 8): response = render_to_response( settings.MAINTENANCE_MODE_TEMPLATE, request_context, context_instance=RequestContext(request), content_type='text/html') else: response = render(request, settings.MAINTENANCE_MODE_TEMPLATE, context=request_context, content_type='text/html', status=503) add_never_cache_headers(response) return response else: return None
def process_request(self, request): if not core.get_maintenance_mode(): return None try: url_off = reverse('maintenance_mode_off') resolve(url_off) if url_off == request.path_info: return None except NoReverseMatch: # maintenance_mode.urls not added pass if hasattr(request, 'user'): if settings.MAINTENANCE_MODE_IGNORE_STAFF \ and request.user.is_staff: return None if settings.MAINTENANCE_MODE_IGNORE_SUPERUSER \ and request.user.is_superuser: return None if settings.MAINTENANCE_MODE_IGNORE_TESTS: is_testing = False if (len(sys.argv) > 0 and 'runtests' in sys.argv[0]) \ or (len(sys.argv) > 1 and sys.argv[1] == 'test'): # python runtests.py | python manage.py test | python # setup.py test | django-admin.py test is_testing = True if is_testing: return None if settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES: if settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS: try: get_client_ip_address_func = import_string( settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS) except ImportError: raise ImproperlyConfigured( 'settings.MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS ' 'is not a valid function path.') else: client_ip_address = get_client_ip_address_func(request) else: client_ip_address = utils.get_client_ip_address(request) for ip_address in settings.MAINTENANCE_MODE_IGNORE_IP_ADDRESSES: ip_address_re = re.compile(ip_address) if ip_address_re.match(client_ip_address): return None if settings.MAINTENANCE_MODE_IGNORE_URLS: for url in settings.MAINTENANCE_MODE_IGNORE_URLS: url_re = re.compile(url) if url_re.match(request.path_info): return None if settings.MAINTENANCE_MODE_REDIRECT_URL: redirect_url_re = re.compile( settings.MAINTENANCE_MODE_REDIRECT_URL) if redirect_url_re.match(request.path_info): return None return get_maintenance_response(request)