1

I'm not Django developer, but I think that Django has an easy way to assign permissions for my project. I would be very grateful for any help.

url.py

urlpatterns = patterns('',
# Kad
url(r'^$', table),
url(r'^table/$', table),
url(r'^select_region/(\d{1,5})/$', select_region),

view.py

@login_required
def table(request, knt='rateless' , pn=1):
    context = {}
    context['knt'] = knt
    ...

admin.py

class ManagerInline(admin.StackedInline):
    model = Manager
    can_delete = False
    verbose_name_plural = u'Staff'

class UserAdmin(UserAdmin):
    inlines = (ManagerInline, )

models.py

class Manager(models.Model):
    user = models.OneToOneField(User)
    phone = models.CharField(max_length=20, verbose_name=u'Phone', blank=True, null=True)
    email = models.EmailField(max_length=50, verbose_name=u'E-mail', blank=True, null=True)
    skype = models.CharField(max_length=50, verbose_name=u'Skype', blank=True, null=True)
    social_name = models.CharField(max_length=10, verbose_name=u'Social name', blank=True, null=True)
    social_url = models.URLField(verbose_name=u'Url for social name', blank=True, null=True)
    position = models.CharField(max_length=1, verbose_name=u'Position', choices=Position_choices, default='M')
    region = models.ManyToManyField(Region, verbose_name=u'Region', blank=True, null=True)

    def __unicode__(self):
        return self.user.username

any html

                {% if request.user.manager.position != 'E' %}
                <th>Name</th>
                {% endif %}

settings.py

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'dajaxice',
    'dajax',
    'south',
    'webodt',
    'djrill',
    'datetimewidget',
    'kad',
    'djcelery',
    'calls',
    'proj',
)

I can't understand how to:

  1. Create group and add to this group user, example user.manager.position = 'E' add to group 'E'.
  2. Add permissions for groups depending urls, example if somebody from group = 'E' denied to url(r'^table/$', table) return to home page.
  3. Set for each group main url (home page) after authorization, example for group = 'E' set home page url(r'^proj/list/$').

0 Answers0