Package madrona :: Package common :: Module basic_auth
[hide private]

Module basic_auth

source code

Functions [hide private]
 
view_or_basicauth(view, request, test_func, realm="", *args, **kwargs)
This is a helper function used by both 'logged_in_or_basicauth' and 'has_perm_or_basicauth' that does the nitty of determining if they are already logged in or if they have provided proper http-authorization and returning the view if all goes well, otherwise responding with a 401.
source code
 
logged_in_or_basicauth(realm="")
A simple decorator that requires a user to be logged in.
source code
 
has_perm_or_basicauth(perm, realm="")
This is similar to the above decorator 'logged_in_or_basicauth' except that it requires the logged in user to have a specific permission.
source code
Function Details [hide private]

logged_in_or_basicauth(realm="")

source code 

A simple decorator that requires a user to be logged in. If they are not
logged in the request is examined for a 'authorization' header.

If the header is present it is tested for basic authentication and
the user is logged in with the provided credentials.

If the header is not present a http 401 is sent back to the
requestor to provide credentials.

The purpose of this is that in several django projects I have needed
several specific views that need to support basic authentication, yet the
web site as a whole used django's provided authentication.

The uses for this are for urls that are access programmatically such as
by rss feed readers, yet the view requires a user to be logged in. Many rss
readers support supplying the authentication credentials via http basic
auth (and they do NOT support a redirect to a form where they post a
username/password.)

Use is simple:

@logged_in_or_basicauth
def your_view:
    ...

You can provide the name of the realm to ask for authentication within.

has_perm_or_basicauth(perm, realm="")

source code 

This is similar to the above decorator 'logged_in_or_basicauth'
except that it requires the logged in user to have a specific
permission.

Use:

@logged_in_or_basicauth('asforums.view_forumcollection')
def your_view:
    ...