Ticket #2332: is_authenticated.diff
File is_authenticated.diff, 13.5 KB (added by , 18 years ago) |
---|
-
django/views/generic/create_update.py
20 20 the form wrapper for the object 21 21 """ 22 22 if extra_context is None: extra_context = {} 23 if login_required and request.user.is_anonymous():23 if login_required and not request.user.is_authenticated(): 24 24 return redirect_to_login(request.path) 25 25 26 26 manipulator = model.AddManipulator(follow=follow) … … 39 39 # No errors -- this means we can save the data! 40 40 new_object = manipulator.save(new_data) 41 41 42 if not request.user.is_anonymous():42 if request.user.is_authenticated(): 43 43 request.user.message_set.create(message="The %s was created successfully." % model._meta.verbose_name) 44 44 45 45 # Redirect to the new object: first by trying post_save_redirect, … … 86 86 the original object being edited 87 87 """ 88 88 if extra_context is None: extra_context = {} 89 if login_required and request.user.is_anonymous():89 if login_required and not request.user.is_authenticated(): 90 90 return redirect_to_login(request.path) 91 91 92 92 # Look up the object to be edited … … 113 113 if not errors: 114 114 object = manipulator.save(new_data) 115 115 116 if not request.user.is_anonymous():116 if request.user.is_authenticated(): 117 117 request.user.message_set.create(message="The %s was updated successfully." % model._meta.verbose_name) 118 118 119 119 # Do a post-after-redirect so that reload works, etc. … … 162 162 the original object being deleted 163 163 """ 164 164 if extra_context is None: extra_context = {} 165 if login_required and request.user.is_anonymous():165 if login_required and not request.user.is_authenticated(): 166 166 return redirect_to_login(request.path) 167 167 168 168 # Look up the object to be edited … … 180 180 181 181 if request.method == 'POST': 182 182 object.delete() 183 if not request.user.is_anonymous():183 if request.user.is_authenticated(): 184 184 request.user.message_set.create(message="The %s was deleted." % model._meta.verbose_name) 185 185 return HttpResponseRedirect(post_delete_redirect) 186 186 else: -
django/contrib/auth/models.py
125 125 def is_anonymous(self): 126 126 "Always returns False. This is a way of comparing User objects to anonymous users." 127 127 return False 128 129 def is_authenticated(self): 130 """Always return True. 131 This is a way to tell if the user is logged in when using request.user 132 in views or user in templates. 133 """ 134 return True 128 135 129 136 def get_full_name(self): 130 137 "Returns the first_name plus the last_name, with a space in between." … … 293 300 294 301 def is_anonymous(self): 295 302 return True 303 304 def is_authenticated(self): 305 return False -
django/contrib/auth/decorators.py
17 17 return _checklogin 18 18 return _dec 19 19 20 login_required = user_passes_test(lambda u: not u.is_anonymous())20 login_required = user_passes_test(lambda u: u.is_authenticated()) 21 21 login_required.__doc__ = ( 22 22 """ 23 23 Decorator for views that checks that the user is logged in, redirecting -
django/contrib/comments/templatetags/comments.py
114 114 comment_list = get_list_function(**kwargs).order_by(self.ordering + 'submit_date').select_related() 115 115 116 116 if not self.free: 117 if context.has_key('user') and not context['user'].is_anonymous():117 if context.has_key('user') and context['user'].is_authenticated(): 118 118 user_id = context['user'].id 119 119 context['user_can_moderate_comments'] = Comment.objects.user_is_moderator(context['user']) 120 120 else: -
django/contrib/comments/views/karma.py
15 15 rating = {'up': 1, 'down': -1}.get(vote, False) 16 16 if not rating: 17 17 raise Http404, "Invalid vote" 18 if request.user.is_anonymous():18 if not request.user.is_authenticated(): 19 19 raise Http404, _("Anonymous users cannot vote") 20 20 try: 21 21 comment = Comment.objects.get(pk=comment_id) -
django/contrib/comments/views/comments.py
63 63 validator_list=get_validator_list(8), 64 64 ), 65 65 ]) 66 if not user.is_anonymous():66 if user.is_authenticated(): 67 67 self["username"].is_required = False 68 68 self["username"].validator_list = [] 69 69 self["password"].is_required = False -
django/contrib/comments/templates/comments/form.html
2 2 {% if display_form %} 3 3 <form {% if photos_optional or photos_required %}enctype="multipart/form-data" {% endif %}action="/comments/post/" method="post"> 4 4 5 {% if user.is_anonymous %} 5 {% if user.is_authenticated %} 6 <p>{% trans "Username:" %} <strong>{{ user.username }}</strong> (<a href="/accounts/logout/">{% trans "Log out" %}</a>)</p> 7 {% else %} 6 8 <p><label for="id_username">{% trans "Username:" %}</label> <input type="text" name="username" id="id_username" /><br />{% trans "Password:" %} <input type="password" name="password" id="id_password" /> (<a href="/accounts/password_reset/">{% trans "Forgotten your password?" %}</a>)</p> 7 {% else %}8 <p>{% trans "Username:" %} <strong>{{ user.username }}</strong> (<a href="/accounts/logout/">{% trans "Log out" %}</a>)</p>9 9 {% endif %} 10 10 11 11 {% if ratings_optional or ratings_required %} -
django/contrib/flatpages/views.py
22 22 f = get_object_or_404(FlatPage, url__exact=url, sites__id__exact=settings.SITE_ID) 23 23 # If registration is required for accessing this page, and the user isn't 24 24 # logged in, redirect to the login page. 25 if f.registration_required and request.user.is_anonymous():25 if f.registration_required and not request.user.is_authenticated(): 26 26 from django.contrib.auth.views import redirect_to_login 27 27 return redirect_to_login(request.path) 28 28 if f.template_name: -
django/contrib/admin/views/decorators.py
46 46 member, displaying the login page if necessary. 47 47 """ 48 48 def _checklogin(request, *args, **kwargs): 49 if not request.user.is_anonymous() and request.user.is_staff:49 if request.user.is_authenticated() and request.user.is_staff: 50 50 # The user is valid. Continue to the admin page. 51 51 if request.POST.has_key('post_data'): 52 52 # User must have re-authenticated through a different window -
django/contrib/admin/templates/admin/base.html
20 20 <div id="branding"> 21 21 {% block branding %}{% endblock %} 22 22 </div> 23 {% if not user.is_anonymous %}{% ifuser.is_staff %}23 {% if user.is_authenticated and user.is_staff %} 24 24 <div id="user-tools">{% trans 'Welcome,' %} <strong>{% if user.first_name %}{{ user.first_name|escape }}{% else %}{{ user.username }}{% endif %}</strong>. {% block userlinks %}<a href="doc/">{% trans 'Documentation' %}</a> / <a href="password_change/">{% trans 'Change password' %}</a> / <a href="logout/">{% trans 'Log out' %}</a>{% endblock %}</div> 25 {% endif %} {% endif %}25 {% endif %} 26 26 {% block nav-global %}{% endblock %} 27 27 </div> 28 28 <!-- END Header --> -
docs/request_response.txt
106 106 A ``django.contrib.auth.models.User`` object representing the currently 107 107 logged-in user. If the user isn't currently logged in, ``user`` will be set 108 108 to an instance of ``django.contrib.auth.models.AnonymousUser``. You 109 can tell them apart with ``is_a nonymous()``, like so::109 can tell them apart with ``is_authenticated()``, like so:: 110 110 111 if request.user.is_anonymous(): 111 if request.user.is_authenticated(): 112 # Do something for logged-in users. 113 else: 112 114 # Do something for anonymous users. 113 else:114 # Do something for logged-in users.115 115 116 116 ``user`` is only available if your Django installation has the 117 117 ``AuthenticationMiddleware`` activated. For more, see -
docs/authentication.txt
95 95 custom methods: 96 96 97 97 * ``is_anonymous()`` -- Always returns ``False``. This is a way of 98 comparing ``User`` objects to anonymous users. 98 differentiating ``User`` and ``AnonymousUser`` objects. Do not use 99 this method for determining if the user has been authenticated. For 100 that, use ``is_authenticated()``. 99 101 102 * ``is_authenticated()`` -- Always returns ``True``. This is a way to 103 tell if the user has been authenticated when using ``request.user`` in 104 views or ``user`` in templates. 105 100 106 * ``get_full_name()`` -- Returns the ``first_name`` plus the ``last_name``, 101 107 with a space in between. 102 108 … … 219 225 220 226 * ``id`` is always ``None``. 221 227 * ``is_anonymous()`` returns ``True`` instead of ``False``. 228 * ``is_authenticated()`` returns ``False`` instead of ``True``. 222 229 * ``has_perm()`` always returns ``False``. 223 230 * ``set_password()``, ``check_password()``, ``save()``, ``delete()``, 224 231 ``set_groups()`` and ``set_permissions()`` raise ``NotImplementedError``. … … 254 261 ``request.user`` in views. ``request.user`` will give you a ``User`` object 255 262 representing the currently logged-in user. If a user isn't currently logged in, 256 263 ``request.user`` will be set to an instance of ``AnonymousUser`` (see the 257 previous section). You can tell them apart with ``is_a nonymous()``, like so::264 previous section). You can tell them apart with ``is_authenticated()``, like so:: 258 265 259 if request.user.is_anonymous(): 266 if request.user.is_authenticated(): 267 # Do something for authenticated users. 268 else: 260 269 # Do something for anonymous users. 261 else:262 # Do something for logged-in users.263 270 264 271 .. _request objects: http://www.djangoproject.com/documentation/request_response/#httprequest-objects 265 272 .. _session documentation: http://www.djangoproject.com/documentation/sessions/ … … 323 330 ~~~~~~~~~~~ 324 331 325 332 The simple, raw way to limit access to pages is to check 326 ``request.user.is_a nonymous()`` and either redirect to a login page::333 ``request.user.is_authenticated()`` and either redirect to a login page:: 327 334 328 335 from django.http import HttpResponseRedirect 329 336 330 337 def my_view(request): 331 if request.user.is_anonymous():338 if not request.user.is_authenticated(): 332 339 return HttpResponseRedirect('/login/?next=%s' % request.path) 333 340 # ... 334 341 335 342 ...or display an error message:: 336 343 337 344 def my_view(request): 338 if request.user.is_anonymous():345 if not request.user.is_authenticated(): 339 346 return render_to_response('myapp/login_error.html') 340 347 # ... 341 348 … … 439 446 permission ``polls.can_vote``:: 440 447 441 448 def my_view(request): 442 if request.user.is_anonymous() or not request.user.has_perm('polls.can_vote'):449 if not request.user.is_authenticated() or not request.user.has_perm('polls.can_vote'): 443 450 return HttpResponse("You can't vote in this poll.") 444 451 # ... 445 452 … … 605 612 The currently logged-in user, either a ``User`` instance or an``AnonymousUser`` 606 613 instance, is stored in the template variable ``{{ user }}``:: 607 614 608 {% if user.is_anonymous %} 615 {% if user.is_authenticated %} 616 <p>Welcome, {{ user.username }}. Thanks for logging in.</p> 617 {% else %} 609 618 <p>Welcome, new user. Please log in.</p> 610 {% else %}611 <p>Welcome, {{ user.username }}. Thanks for logging in.</p>612 619 {% endif %} 613 620 614 621 Permissions