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)
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)
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)
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)
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)
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 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)
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)
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, )
def login_required(view): return django_login_required(view)
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
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)
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)
def login_required(view): if not settings.DEBUG: return django_login_required(view) return view
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)
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)