2015-07-10 18 views
10

Varsayılan davranış, yeni kullanıcıların izinleri yok ve hiç grup yok gibi görünüyor. Ancak, her yeni kullanıcıya temel izinleri manuel olarak vermek zorunda kalmak istemem ve bunu yapmamı beklemek zorunda kalmak istemediklerini varsayardım.Yeni kullanıcılara varsayılan izinler veya varsayılan bir grup verilmesi

Yeni kullanıcılar için varsayılan izinleri nasıl atamalıyım?

Bazı benzer sorular

istendi fakat genel durum için net bir cevap:

Ben 'ı don yani python-social-auth kullanıyorum Herkesin varsayılan izinleri belirlediği tahmin edilen kendi kullanıcı-kullanıcı formum ve görünümü var. Kullanıcıya göre bir çeşit kancaya ihtiyacım var, ama en temiz yaklaşımın ne olduğundan emin değilim.

Bu Sen Kullanıcı modeline post_save sinyali abone olabilir, başvuru için her ne kadar, kullanıcılara verilebilir varsayılan olası izinleri oluşturmak ilgisi yoktur

cevap

9

ve yeni oluşturulmuş kullanıcıyı istenen gruba koyup izinler ekleyin.

from django.contrib.auth.models import User, Group 

def add_to_default_group(sender, **kwargs): 
    user = kwargs["instance"] 
    if kwargs["created"]: 
     group = Group.objects.get(name='groupname') 
     user.groups.add(group) 

Ve django üzerinde sizin AppConfig.ready()

post_save.connect(add_to_default_group, sender=User) 
+3

teşekkür aşağıdaki kodu koymak 1.8+! Benim durumumda da ['sender = settings.AUTH_USER_MODEL'] 'a ihtiyacım olacağını düşünüyorum (https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#referencing-the-user-model). Ayrıca, group_created = Group.objects.get_or_create (name = 'Default') 'grubunu da kullandım. – jozxyqk

+0

Django'ya yeni geliyorum, bu satırları hangi satırlara ekliyorum? – enchance

+0

'' apps.py'', yukarıdaki satırların bulunduğu dosyadır (bu nedenle '' AppConfig''') – polarise

İlgili konular