Принудительная авторизация:
project/middleware.pyfrom django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
class ValidLogin(object):
def process_request(request):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('signin'))
return None
project/settings.pyMIDDLEWARE_CLASSES = (
'project.middleware.ValidLogin',
)
А раздача прав уже или на уровне url`ов или на уровне вьюх.
В урлах можно так
from django.conf.urls import patterns, url
from django.contrib.auth.decorators import user_passes_test
urlpatterns = patterns('crm.views',
url(r'^$',
user_passes_test(lambda u: u.is_superuser or u.is_moderator)(HomeCRM.as_view()),
name='home'),
)
Если просто авторизацию через урлы, то так:
from django.contrib.auth.decorators import login_required
urlpatterns = patterns('crm.views',
url(r'^$',
login_required(HomeCRM.as_view()),
name='home'),
)
Но это каждую строку урла проверять на авторизацию... А потом ещё думать как реализовать права по грппам. Проще как выше, через middleware авторизацию проверять и слать на форму входа.