我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用django.conf.settings.AUTHENTICATION_BACKENDS。
def render_to(template): """Simple render_to decorator""" def decorator(func): """Decorator""" @wraps(func) def wrapper(request, *args, **kwargs): """Rendering method""" out = func(request, *args, **kwargs) or {} if isinstance(out, dict): out = render(request, template, common_context( settings.AUTHENTICATION_BACKENDS, request.user, plus_id=getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None), **out )) return out return wrapper return decorator
def render_to(template): """Simple render_to decorator""" def decorator(func): """Decorator""" @wraps(func) def wrapper(request, *args, **kwargs): """Rendering method""" out = func(request, *args, **kwargs) or {} if isinstance(out, dict): out = render(request, template, common_context( settings.AUTHENTICATION_BACKENDS, load_strategy(), request.user, plus_id=getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None), **out )) return out return wrapper return decorator
def crm(request): """add constant to context""" site_url = None if not settings.BALAFON_AS_HOMEPAGE: try: site_url = reverse('homepage') except NoReverseMatch: pass return { 'BALAFON_VERSION': VERSION, 'BALAFON_SITE_URL': site_url, 'BALAFON_ALLOW_SINGLE_CONTACT': crm_settings.ALLOW_SINGLE_CONTACT, 'BALAFON_NO_ENTITY_TYPE': crm_settings.NO_ENTITY_TYPE, 'BALAFON_ENTITY_TYPES': EntityType.objects.all(), 'BALAFON_MULTI_USER': getattr(settings, 'BALAFON_MULTI_USER', True), 'BALAFON_EMAIL_LOGIN': ('balafon.Profile.backends.EmailModelBackend' in settings.AUTHENTICATION_BACKENDS), 'BALAFON_STORE_INSTALLED': 'balafon.Store' in settings.INSTALLED_APPS, 'NOW': datetime.now(), 'is_allowed_homepage': is_allowed_homepage(request.path), 'addable_action_types': ActionType.objects.filter(set__isnull=False), }
def _login_user(request, user): """ Log in a user without requiring credentials (using ``login`` from ``django.contrib.auth``, first finding a matching backend). """ from django.contrib.auth import load_backend, login if not hasattr(user, 'backend'): for backend in settings.AUTHENTICATION_BACKENDS: if user == load_backend(backend).get_user(user.pk): user.backend = backend break if hasattr(user, 'backend'): return login(request, user)
def _get_backends(return_tuples=False): backends = [] for backend_path in settings.AUTHENTICATION_BACKENDS: backend = load_backend(backend_path) backends.append((backend, backend_path) if return_tuples else backend) if not backends: raise ImproperlyConfigured( 'No authentication backends have been defined. Does ' 'AUTHENTICATION_BACKENDS contain anything?' ) return backends
def get_user(request): """ Returns the user model instance associated with the given request session. If no user is retrieved an instance of `AnonymousUser` is returned. """ from .models import AnonymousUser user = None try: user_id = _get_user_session_key(request) backend_path = request.session[BACKEND_SESSION_KEY] except KeyError: pass else: if backend_path in settings.AUTHENTICATION_BACKENDS: backend = load_backend(backend_path) user = backend.get_user(user_id) # Verify the session if ('django.contrib.auth.middleware.SessionAuthenticationMiddleware' in settings.MIDDLEWARE_CLASSES and hasattr(user, 'get_session_auth_hash')): session_hash = request.session.get(HASH_SESSION_KEY) session_hash_verified = session_hash and constant_time_compare( session_hash, user.get_session_auth_hash() ) if not session_hash_verified: request.session.flush() user = None return user or AnonymousUser()
def force_login(self, user, backend=None): if backend is None: backend = settings.AUTHENTICATION_BACKENDS[0] user.backend = backend self._login(user)
def get_user(request): """ Returns the user model instance associated with the given request session. If no user is retrieved an instance of `AnonymousUser` is returned. """ from .models import AnonymousUser user = None try: user_id = _get_user_session_key(request) backend_path = request.session[BACKEND_SESSION_KEY] except KeyError: pass else: if backend_path in settings.AUTHENTICATION_BACKENDS: backend = load_backend(backend_path) user = backend.get_user(user_id) # Verify the session if hasattr(user, 'get_session_auth_hash'): session_hash = request.session.get(HASH_SESSION_KEY) session_hash_verified = session_hash and constant_time_compare( session_hash, user.get_session_auth_hash() ) if not session_hash_verified: request.session.flush() user = None return user or AnonymousUser()
def check_dependencies(**kwargs): """ Check that the admin's dependencies are correctly installed. """ errors = [] # contrib.contenttypes must be installed. if not apps.is_installed('django.contrib.contenttypes'): missing_app = checks.Error( "'django.contrib.contenttypes' must be in INSTALLED_APPS in order " "to use the admin application.", id="admin.E401", ) errors.append(missing_app) # The auth context processor must be installed if using the default # authentication backend. try: default_template_engine = Engine.get_default() except Exception: # Skip this non-critical check: # 1. if the user has a non-trivial TEMPLATES setting and Django # can't find a default template engine # 2. if anything goes wrong while loading template engines, in # order to avoid raising an exception from a confusing location # Catching ImproperlyConfigured suffices for 1. but 2. requires # catching all exceptions. pass else: if ('django.contrib.auth.context_processors.auth' not in default_template_engine.context_processors and 'django.contrib.auth.backends.ModelBackend' in settings.AUTHENTICATION_BACKENDS): missing_template = checks.Error( "'django.contrib.auth.context_processors.auth' must be in " "TEMPLATES in order to use the admin application.", id="admin.E402" ) errors.append(missing_template) return errors
def create_preauthenticated_session_for(self, user): session = SessionStore() session[SESSION_KEY] = user.pk session[BACKEND_SESSION_KEY] = settings.AUTHENTICATION_BACKENDS[0] session[HASH_SESSION_KEY] = user.get_session_auth_hash() session.save() self.browser.get(self.live_server_url + "/fake/") self.browser.add_cookie(dict( name=SESSION_COOKIE_NAME, value=session.session_key, path='/', ))
def get_context_data(self, **kwargs): context = super(ProfileEditUpdateView, self).get_context_data(**kwargs) # context['available_backends'] = load_backends() context.update(common_context( authentication_backends=settings.AUTHENTICATION_BACKENDS, user=self.request.user )) context['memberships'] = TeamMembership.objects.filter(account__in=self.request.user.profile.account_set.all()) return context
def process_request(self, request): if not request.user.is_authenticated(): user, created = User.objects.get_or_create(username=self.username, defaults=self.defaults) user.backend = settings.AUTHENTICATION_BACKENDS[0] login(request, user)
def test_home_auth_200(self): self.client.force_login(self.user, backend=settings.AUTHENTICATION_BACKENDS[0]) response = self.client.get('/') self.assertEqual(response.status_code, 200)
def test_repo_list_unauth_302(self): response = self.client.get(self.url) self.assertEqual(response.status_code, 302) # Disabled because the view requires OAuth with Github # def test_repo_list_auth_200(self): # self.client.force_login(self.user, backend=settings.AUTHENTICATION_BACKENDS[0]) # response = self.client.get(self.url) # self.assertEqual(response.status_code, 200) # self.assertContains(response, self.repo.full_name)
def test_repo_list_auth_200(self, mock_branches): mock_branches.return_value = [type('test', (), {'name': 'master'})] self.client.force_login(self.user, backend=settings.AUTHENTICATION_BACKENDS[0]) response = self.client.get(self.url) self.assertEqual(response.status_code, 200) self.assertContains(response, self.repo.full_name) self.assertContains(response, self.build.id)
def test_build_results_paginated(self, mock_branches): mock_branches.return_value = [type('test', (), {'name': 'master'})] for _ in range(49): Build.objects.create( repo=self.repo, ref='master', sha='2278cd53905d74f01d2ec5bae3cf136ad66e7393', status=Build.ERROR ) self.client.force_login(self.user, backend=settings.AUTHENTICATION_BACKENDS[0]) response = self.client.get(self.url) self.assertEqual(Build.objects.count(), 50) self.assertEqual(len(response.context_data['builds']), 20)
def test_build_detail_owner_200(self, mock_get_issues): mock_get_issues.return_value = type('test', (), {'totalCount': 0}) self.client.force_login(self.user, backend=settings.AUTHENTICATION_BACKENDS[0]) response = self.client.get(self.url) self.assertEqual(response.status_code, 200)
def test_non_staff_302(self): self.client.force_login(self.user, settings.AUTHENTICATION_BACKENDS[0]) response = self.client.get(self.url) self.assertEqual(response.status_code, 302)
def test_staff_200(self): self.user.is_staff = True self.user.save() self.client.force_login(self.user, settings.AUTHENTICATION_BACKENDS[0]) response = self.client.get(self.url) self.assertEqual(response.status_code, 200) self.assertIn(self.build.id, response.content)
def force_login(self, user, backend=None): if backend is None: backend = settings.AUTHENTICATION_BACKENDS[0] user.backend = backend self._login(user, backend)