def post(self, request): user_id = request.POST.get('user_id', None) user = User.objects.get(id=user_id) new_password = request.POST.get('password', 1) confirm_password = request.POST.get('password_repeat', 2) if new_password != confirm_password: return HttpResponseRedirect( generate_url_for("accounts/change_password.html", query={ "type": "danger", "content": "Password doesn't match" })) user.set_password(new_password) user.save() return HttpResponseRedirect( generate_url_for('accounts:login', query={ 'type': 'success', 'content': 'Password changed, You may now log in!' }))
def get(self, request): token = request.GET.get('t', None) if not token: return HttpResponseRedirect( generate_url_for('accounts:login', query={ 'type': 'danger', 'content': 'You were not allowed to be there!' })) payload = None try: payload = jwt.decode(token, settings.SECRET_KEY, settings.JWT_ALGORITHM) except: return HttpResponseRedirect( generate_url_for( 'accounts:login', query={ 'type': 'danger', 'content': 'The password reset link has expired or is invalid!' })) user_id = payload['user_id'] user_email = payload['email'] if not user_id: return HttpResponseRedirect( generate_url_for( 'accounts:login', query={ 'type': 'danger', 'content': "There's no account associated with email : {}".format( user_email) })) return HttpResponse( loader.get_template('accounts/change_password.html').render( { 'user_id': user_id, "message": { 'type': 'success', 'content': 'Verification Successfull! You may now set a new password!' } }, request))
def post(self, request): raw_response = api_call(method='post', request=request, reverse_for="articles-api:list", data=request.POST.dict(), files=request.FILES.dict()) response = raw_response.json() if response['status'] == 200: if response['data']['article']['is_drafted']: return HttpResponseRedirect( generate_url_for( 'articles:create', query={ "type": "success", "content": "Article Drafted, to publish it, go to your profile" })) else: return HttpResponseRedirect( response['data']['article']['absolute_url']) else: return suitableRedirect(response=raw_response, reverse_name="articles:create")
def api_call(*args, **kwargs): request = kwargs['request'] csrftoken = kwargs['request'].POST.get('csrfmiddlewaretoken', '') headers = { 'X-CSRFToken': csrftoken, 'Token': request.headers.get('Token', None) } cookies = { 'csrftoken': csrftoken, 'accessToken': request.COOKIES.get('accessToken', None) } reverse_kwargs = kwargs.get('reverse_kwargs', None) reverse_params = kwargs.get('reverse_params', None) reverse_for = kwargs.get('reverse_for', '') data = kwargs.get('data', None) files = kwargs.get('files', None) return getattr(requests, kwargs.get('method', 'get'))(url=request.build_absolute_uri( generate_url_for(reverse_for, kwargs=reverse_kwargs, query=reverse_params)), headers=headers, cookies=cookies, data=data, files=files)
def post(self, request, slug): deleteMode = request.POST.get('deletemode', False) if deleteMode: raw_response = api_call(method='delete', request=request, reverse_for="articles-api:detail", reverse_kwargs={'slug': slug}) response = raw_response.json() if response['status'] == 200: return HttpResponseRedirect( generate_url_for("articles:list", query={ "type": "success", "content": "Article deletion successful!" })) else: return suitableRedirect(response=raw_response, reverse_name="articles:list") else: raw_response = api_call(method='post', request=request, reverse_for="articles-api:detail", reverse_kwargs={'slug': slug}, data=request.POST.dict()) response = raw_response.json() if response['status'] == 200: return HttpResponseRedirect( generate_url_for("articles:detail", kwargs={"slug": slug}, query={ "type": "success", "content": "Comment Added!" })) else: return suitableRedirect(response=raw_response, reverse_name="articles:detail", reverse_kwargs={"slug": slug})
def post(self, request): query = {} if request.POST.get("profile_update", False): query = self.handle_profile_update(request) elif request.POST.get("social_update", False): query = self.handle_social_update(request) elif request.POST.get("account_update", False): query = self.handle_account_update(request) elif request.POST.get("password_update", False): query = self.handle_password_update(request) elif request.POST.get("billing_update", False): query = self.handle_billing_update(request) return HttpResponseRedirect( generate_url_for("user:settings", query=query))
def suitableRedirect(*args, **kwargs): raw_response = kwargs.get('response', None) reverse_kwargs = kwargs.get('reverse_kwargs', None) reverse_name = kwargs.get('reverse_name', None) response = raw_response.json() togo = reverse_name message = response['message'] query = {"type": "danger", "content": message} if not response or response['status'] == 404: return Http404() elif response['status'] == 403: togo = "auth-api:logout" message = "Please login to continue" reverse_kwargs = None query['next'] = response['from'] return HttpResponseRedirect( generate_url_for(togo, kwargs=reverse_kwargs, query=query))
def post(self, request, model, slug): delete_mode = request.POST.get('delete_mode', False) if not delete_mode: response = api_call(method='post', request=request, reverse_for="comments-api:detail", reverse_kwargs={ 'slug': slug }, data=request.POST.dict()).json() if response['status'] == 200: return HttpResponseRedirect( generate_url_for("comments:detail", kwargs={ "model": model, "slug": slug }, query={ 'type': 'success', 'content': 'Reply Added!' })) else: return suitableRedirect(response=response, reverse_name="comments:detail", reverse_kwargs={ "slug": slug, "model": model }) else: response = api_call(method='delete', request=request, reverse_for="comments-api:detail", reverse_kwargs={ 'slug': slug }).json() togo = model if response['status'] == 200: kwargs = {'slug': response['data']['parent_slug']} query = {'type': 'success', 'content': 'Comment Removed!'} if not response['data']['is_parent']: togo = "comments" kwargs['model'] = model query = {'type': 'success', 'content': 'Reply Removed!'} return HttpResponseRedirect( generate_url_for("{}:detail".format(togo), kwargs=kwargs, query=query)) else: return suitableRedirect(response=response, reverse_name="comments:detail", reverse_kwargs={ "slug": slug, "model": model })
def wrapper(*args, **kwargs): if not args[1].user.is_authenticated: return callback(*args, **kwargs) else: return HttpResponseRedirect(generate_url_for('home'))