From 0df063b2d5393469e3710cf82016b09dbf1e5c4e Mon Sep 17 00:00:00 2001 From: Carlos Oliveira Date: Wed, 17 Dec 2014 17:37:52 -0200 Subject: [PATCH] Created middleware to redirect user --- colab/accounts/middleware.py | 19 +++++++++++++++++++ colab/accounts/migrations/0002_user_needs_update.py | 20 ++++++++++++++++++++ colab/settings.py | 1 + 3 files changed, 40 insertions(+), 0 deletions(-) create mode 100644 colab/accounts/middleware.py create mode 100644 colab/accounts/migrations/0002_user_needs_update.py diff --git a/colab/accounts/middleware.py b/colab/accounts/middleware.py new file mode 100644 index 0000000..1efb9b6 --- /dev/null +++ b/colab/accounts/middleware.py @@ -0,0 +1,19 @@ +from django.core.urlresolvers import resolve +from django.shortcuts import redirect + + +class UserRegisterMiddleware(object): + + def process_view(self, request, view_func, view_args, view_kwargs): + if not request.user.is_authenticated(): + return + + if not request.user.needs_update: + return + + current_url = resolve(request.path_info).url_name + + if current_url not in ['signup']: + return redirect('signup') + + return None diff --git a/colab/accounts/migrations/0002_user_needs_update.py b/colab/accounts/migrations/0002_user_needs_update.py new file mode 100644 index 0000000..0ce41e7 --- /dev/null +++ b/colab/accounts/migrations/0002_user_needs_update.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('accounts', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='needs_update', + field=models.BooleanField(default=False), + preserve_default=True, + ), + ] diff --git a/colab/settings.py b/colab/settings.py index e597c8d..033e54a 100644 --- a/colab/settings.py +++ b/colab/settings.py @@ -214,6 +214,7 @@ MIDDLEWARE_CLASSES = ( 'django_mobile.middleware.MobileDetectionMiddleware', 'django_mobile.middleware.SetFlavourMiddleware', 'colab.tz.middleware.TimezoneMiddleware', + 'colab.accounts.middleware.UserRegisterMiddleware', ) # Add the django_browserid authentication backend. -- libgit2 0.21.2