Search code examples
pythondjangodjango-admindjango-authentication

django - set user permissions when user is automatically created using get_or_create


Django 1.5, python 2.6

The model automatically creates a user under certain conditions:

User.objects.get_or_create(username=new_user_name, is_staff=True) 
u = User.objects.get(username=new_user_name)
u.set_password('temporary')

In addition to setting the username, password, and is_staff status, I would like to set the user's permissions - something like:

u.user_permissions('Can view poll')

or

u.set_permissions('Can change poll')

Is this possible? Thank you!


Solution

  • Use add and remove methods:

     from django.contrib.auth.models import Permission
     permission = Permission.objects.get(name='Can view poll')
     u.user_permissions.add(permission)