Esempio n. 1
0
 def wrapper(*args, **kwargs):
     request = args[0]
     if not (request.path.startswith('/account/')
             or request.path.startswith('/admin/')):
         raise Exception(
             "Login required in bad path, aborting with exception.")
     return django_login_required(f)(*args, **kwargs)
Esempio n. 2
0
def login_required(f):
    def new_f(request, *args, **kwargs):
        if not finished_registration(request.user):
            return redirect(finish_registration)
        else:
            return f(request, *args, **kwargs)
    return django_login_required(new_f)
Esempio n. 3
0
    def wrapper(request, *args, **kwargs):
        if is_authenticated(request.user):
            # when browsing multiple stores in tabs, ensure that the login
            # is not shared between them
            if 'shop' in request.GET and request.user.myshopify_domain != request.GET[
                    'shop']:
                logout(request)
            else:
                return f(request, *args, **kwargs)

        # Extract the Shopify-specific authentication parameters from the current request.
        shopify_params = {
            k: request.GET[k]
            for k in ['shop', 'timestamp', 'signature', 'hmac']
            if k in request.GET
        }

        # Get the login URL.
        resolved_login_url = force_str(
            resolve_url(login_url or settings.LOGIN_URL))

        # Add the Shopify authentication parameters to the login URL.
        updated_login_url = add_query_parameters_to_url(
            resolved_login_url, shopify_params)

        django_login_required_decorator = django_login_required(
            redirect_field_name=redirect_field_name,
            login_url=updated_login_url)
        return django_login_required_decorator(f)(request, *args, **kwargs)
Esempio n. 4
0
def login_required(f):
    def new_f(request, *args, **kwargs):
        if not finished_registration(request.user):
            return redirect(finish_registration)
        else:
            return f(request, *args, **kwargs)

    return django_login_required(new_f)
Esempio n. 5
0
    def decorator(*args, **kwargs):
        if args:
            request = args[0]

            if isinstance(request, WSGIRequest) and request.method == 'POST':
                user = getattr(request, 'user')
                if user and user.is_authenticated:
                    return view_func(*args, **kwargs)
                path = urlparse(request.META['HTTP_REFERER']).path
                return redirect_to_login(path)
        return django_login_required(view_func)(*args, **kwargs)
Esempio n. 6
0
    def wrapper(self, *args, **kwargs):

        required = getattr(self, 'login_required', True)

        if required:

            @method_decorator(django_login_required(redirect_field_name=redirect_field_name, login_url=login_url))
            def wrap(_self, *ag, **kag):
                return method(_self, *ag, **kag)

            return wrap(self, *args, **kwargs)

        return method(self, *args, **kwargs)
 def wrapper(request, *args, **kwargs):        
     if request.user.is_authenticated():
         return f(request, *args, **kwargs)
     
     # Extract the Shopify-specific authentication parameters from the current request.
     shopify_params = dict([(k, v) for k, v in six.iteritems(request.GET) if k in ['shop', 'timestamp', 'signature', 'hmac']])
                     
     # Get the login URL.
     resolved_login_url = force_str(resolve_url(login_url or settings.LOGIN_URL))
         
     # Add the Shopify authentication parameters to the login URL.
     updated_login_url = add_query_parameters_to_url(resolved_login_url, shopify_params)
     
     django_login_required_decorator = django_login_required(redirect_field_name = redirect_field_name, login_url = updated_login_url)
     return django_login_required_decorator(f)(request, *args, **kwargs)         
Esempio n. 8
0
    def wrapper(self, *args, **kwargs):

        required = getattr(self, 'login_required', True)

        if required:

            @method_decorator(
                django_login_required(redirect_field_name=redirect_field_name,
                                      login_url=login_url))
            def wrap(_self, *ag, **kag):
                return method(_self, *ag, **kag)

            return wrap(self, *args, **kwargs)

        return method(self, *args, **kwargs)
Esempio n. 9
0
 def decorator(*args, **kwargs):
     if args:
         request = args[0]
         # Django의 view에서 첫 번째 매개변수는 HttpRequest타입의 변수이며, 이를 확인한다
         # 또한 요청 메서드가 POST인지 확인한다
         if isinstance(request, WSGIRequest) and request.method == 'POST':
             # request의 user가 존재하며 인증되어있는지 확인한다
             user = getattr(request, 'user')
             if user and user.is_authenticated:
                 return view_func(*args, **kwargs)
             # 인증되지 않았을 경우, HTTP_REFERER의 path를 가져온다
             path = urlparse(request.META['HTTP_REFERER']).path
             # 로그인 뷰로 이동하며 GET파라미터의 next값을 path로 지정해주는
             # redirect_to_login함수를 되돌려준다
             return redirect_to_login(path)
     # 위에 해당하지 않는 경우, Django에서 제공하는 기본 login_required를 데코레이터로 사용한다
     return django_login_required(view_func)(*args, **kwargs)
Esempio n. 10
0
    def wrapper(request, *args, **kwargs):
        if request.user.is_authenticated():
            return f(request, *args, **kwargs)

        # Extract the Shopify-specific authentication parameters from the current request.
        shopify_params = dict([(k, v) for k, v in request.GET.iteritems()
                               if k in ['shop', 'timestamp', 'signature']])

        # Get the login URL.
        resolved_login_url = force_str(
            resolve_url(login_url or settings.LOGIN_URL))

        # Add the Shopify authentication parameters to the login URL.
        updated_login_url = add_query_parameters_to_url(
            resolved_login_url, shopify_params)

        django_login_required_decorator = django_login_required(
            redirect_field_name=redirect_field_name,
            login_url=updated_login_url)
        return django_login_required_decorator(f)(request, *args, **kwargs)
Esempio n. 11
0
    def decorator(view_func):

        @wraps(view_func, assigned=available_attrs(view_func))
        def _wrapped_view(request, *args, **kwargs):
            response = _has_only_invalidated_emails(request)
            if response:
                return response

            _has_invalidated_emails_add_warning(request)

            rpconfig = get_rpconfig_from_request(request, None)
            u = request.user
            required = (
                require_twofactor or
                twofactor.user_requires_twofactor_auth(request, u) or
                twofactor.site_requires_twofactor_auth(request, None, rpconfig)
            )
            require_auth = (
                (required and not twofactor.is_upgraded(request)) or
                (require_twofactor_freshness and
                 not twofactor.is_fresh(request))
            )
            if require_auth:
                # only valid reverse arg is token
                reverse_args = {}
                if 'token' in kwargs and kwargs['token'] is not None:
                    reverse_args['token'] = kwargs['token']
                return redirect_to_login(
                    request.get_full_path(),
                    reverse('twofactor', kwargs=reverse_args),
                    redirect_field_name,
                )
            return view_func(request, *args, **kwargs)

        return django_login_required(
            _wrapped_view, redirect_field_name, login_url,
        )
Esempio n. 12
0
def login_required(view):
    return django_login_required(view)
Esempio n. 13
0
from contextlib import contextmanager
import json
import os

from django.contrib.auth.decorators import login_required as django_login_required
from django.core.exceptions import ObjectDoesNotExist
from django.http import HttpResponseBadRequest, Http404, HttpResponse
from django.views.decorators.http import require_POST

from famille.utils.python import JSONEncoder


login_required = django_login_required(
    redirect_field_name="s", login_url="auth_login"
)


def require_JSON(func):
    """
    A decorator that makes a view require
    JSON content in the request body.
    """
    def wrapped(request, *args, **kwargs):
        if "application/json" not in request.META["CONTENT_TYPE"]:
            return HttpResponseBadRequest("Response header should be application/json.")
        try:
            request.json = json.loads(request.body)
        except (ValueError, TypeError):
            return HttpResponseBadRequest("Request body should be valid JSON.")
        return func(request, *args, **kwargs)
    return wrapped
Esempio n. 14
0
def login_required(function):
    """
    wrapper for django login_required with our custom url for redirect
    """
    return django_login_required(function, login_url=settings.UNREGISTERED_REDIRECT_URL)
Esempio n. 15
0
        return False
    return filter(_allowed, clean_html_tags(name.strip())).strip().replace(" ", "-")

def should_be_admin(the_function):
    def _should_be_admin(request, *args, **kwargs):
        if request.user.is_anonymous():
            raise Http404
        from django.contrib.auth.models import Group
        if Group.objects.get(name='admin') in request.user.groups.all():
            return the_function(request, *args, **kwargs)
#        if request.user.is_superuser: return the_function(request, *args, **kwargs)
        raise Http404
    return _should_be_admin

auth_check = lambda u : u.is_authenticated()
login_required = django_login_required(auth_check, login_url= '/login/')


CENTERALIGNMSG="<div style=\'text-align:center;font:bold 1em sans-serif;\'>%s</div>"
def _add_noticemsg(request,reminder,align_center=True):
    if align_center:
        reminder=CENTERALIGNMSG%(reminder)
    request.fmessages.add_reminder_msg(reminder)
    
def _add_errormsg(request,errormsg,align_center=True):
    if align_center:
        errormsg=CENTERALIGNMSG%(errormsg)
    request.fmessages.add_error_msg(errormsg)

def _add_successmsg(request,msg,align_center=True):
    if align_center:
def DEFAULT_AUTHENTICATOR(*args, **kwargs):
    return not django_login_required(*args, **kwargs)
Esempio n. 17
0
def login_required(view):
    if not settings.DEBUG:
        return django_login_required(view)
    return view
Esempio n. 18
0
def login_required(function=None, redirect_field_name=REDIRECT_FIELD_NAME, login_url=None):

    if login_url is None:
        login_url = reverse_lazy('comptes-login')

    return django_login_required(function, redirect_field_name=redirect_field_name, login_url=login_url)
Esempio n. 19
0
def login_required(view):
    return django_login_required(view)
Esempio n. 20
0
 def wrapper(*args, **kwargs):
     request = args[0]
     if not (request.path.startswith('/account/') or request.path.startswith('/admin/')):
         raise Exception("Login required in bad path, aborting with exception.")
     return django_login_required(f)(*args, **kwargs)