Example #1
0
    def save(self, commit=True):
        """Create user, assign him to staff users, and create permissions for 
        him if required. Also assigns creator to user.
        """
        Super = self._password_change and PageUserForm or UserCreationForm  
        user = super(Super, self).save(commit=False)
        
        user.is_staff = True
        created = not bool(user.pk)
        # assign creator to user
        if created:
            get_current_user()
            user.created_by = get_current_user()
        if commit:
            user.save()

        save_permissions(self.cleaned_data, user)

        if self.cleaned_data['notify_user']:
            mail_page_user_change(user, created, self.cleaned_data['password1'])
        
        return user
Example #2
0
    def save(self, commit=True):
        """Create user, assign him to staff users, and create permissions for 
        him if required. Also assigns creator to user.
        """
        Super = self._password_change and PageUserForm or UserCreationForm
        user = super(Super, self).save(commit=False)

        user.is_staff = True
        created = not bool(user.pk)
        # assign creator to user
        if created:
            get_current_user()
            user.created_by = get_current_user()
        if commit:
            user.save()

        save_permissions(self.cleaned_data, user)

        if self.cleaned_data['notify_user']:
            mail_page_user_change(user, created,
                                  self.cleaned_data['password1'])

        return user
Example #3
0
    def save(self, commit=True):
        """Create user, assign him to staff users, and create permissions for 
        him if required. Also assigns creator to user.
        """
        Super = self._password_change and PageUserForm or UserCreationForm  
        user = super(Super, self).save(commit=False)
        
        user.is_staff = True
        created = not bool(user.pk)
        # assign creator to user
        if created:
            user.created_by = get_current_user()

        if commit:
            user.save()

        models = ((Page, 'page'), (PageUser, 'pageuser'), (Group, 'pageuser'), (PagePermission, 'pagepermission'))
        for model, name in models:
            content_type = ContentType.objects.get_for_model(model)
            for t in ('add', 'change', 'delete'):
                if not user.pk:
                    # save user, otherwise we can't assign permissions to him
                    user.save()
                
                # add permission `t` to model `model`
                codename = getattr(model._meta, 'get_%s_permission' % t)()
                permission = Permission.objects.get(content_type=content_type, codename=codename)
                
                if self.cleaned_data.get('can_%s_%s' % (t, name), None):
                    user.user_permissions.add(permission)
                else:
                    user.user_permissions.remove(permission)

        if self.cleaned_data['notify_user']:
            mail_page_user_change(user, created, self.cleaned_data['password1'])
        
        return user
Example #4
0
 def test_01_mail_page_user_change(self):
     user = self.create_page_user("username", grant_all=True)
     mail_page_user_change(user)
     self.assertEqual(len(mail.outbox), 1)
Example #5
0
 def test_01_mail_page_user_change(self):
     user = self.create_page_user("username", grant_all=True)
     mail_page_user_change(user)
     self.assertEqual(len(mail.outbox), 1)