def set_fake_current_request(site, user): """ Set's the "current request" to a FakeRequest object with the given Site and User. """ # Create the "FakeRequest" class in-place and instantiate it. request = type('FakeRequest', (object, ), {'site': site, 'user': user})() CrequestMiddleware.set_request(request)
def authenticate(self, request): """ Here the `authenticate` method has been overriden due to check the token requested by the user in order to identify whether the token is valid for the requested user or not. :param request: The WSGI request sent from the client/mobile side. :return: It returns the authenticated user and its token to the django rest framework if valid. """ auth = get_authorization_header(request=request).split() if not auth or len(auth) == 0 or auth[0].lower() != b'token': return None if len(auth) <= 1: raise AuthenticationFailed(detail="Invalid token header. No credentials provide.") elif len(auth) > 2: raise AuthenticationFailed(detail="Invalid token header. Token string should not contain spaces.") """Retrieve the `User` by authenticating the received `Token` in auth[1]""" _token = self.get_model().objects.filter(key=auth[1].decode(encoding="utf-8")).first() if not _token: raise AuthenticationFailed(detail="Invalid Token") elif not (_token and _token.user and _token.user.is_active): raise AuthenticationFailed(detail="User inactive or deleted.") ConsoleUser = apps.get_model(app_label="enginecore", model_name="ConsoleUser") c_user = ConsoleUser.objects.get(user=_token.user) request.c_user = c_user CrequestMiddleware.set_request(request=request) return _token.user, _token.key
def _setup_request_object(self): self.request = HttpRequest() self.request.user = User.objects.create_user( username="******", email="*****@*****.**" ) self.request._messages = CookieStorage(self.request) CrequestMiddleware.set_request(self.request)
def bp_user_auth(): shell_authenticate(settings.MANAGEMENT_USER_NAME, settings.MANAGEMENT_USER_PASS) request = CrequestMiddleware.get_request() request = add_bp_credentials(request, settings.MANAGEMENT_BP_NAME, settings.MANAGEMENT_BP_PASS) CrequestMiddleware.set_request(request)