Как сделать вход на сайт Django только после авторизации?
Принудительная авторизация: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 Noneproject/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 авторизацию проверять и слать на форму входа.
Ну так покройте все url паттерны включая корневой @login_requireq