2015-02-13 2 views
2

Я использую GroupRequiredMixin из braces.views, пытаясь ограничить доступ к некоторым представлениям определенной группе пользователей.Braces GroupRequiredMixin не имеет эффекта

мой взгляд выглядит следующим образом:

class InviteCompanyAdminView(LoginRequiredMixin, GroupRequiredMixin, CreateView): 
    model = CompanyAdminInvitation 
    group_required = u"staff" # For the GroupRequiredMixin 
    success_url = '/' 

    def form_valid(self, form): 
     # This method is called when valid form data has been POSTed. 
     # It should return an HttpResponse 
     form.instance.send_invite(self.request) 
     return super(InviteCompanyAdminView, self).form_valid(form) 

я доступ мнение с пользователем, который не принадлежит ни к какой группе и еще вид визуализируется. Любая идея почему?

Моя модель выглядит следующим образом:

class CompanyAdminInvitation(models.Model): 
    user_first_name = models.CharField(max_length=128) 
    user_last_name = models.CharField(max_length=128) 
    user_title = models.CharField(max_length=128) 
    user_email = models.EmailField() 

    company_name = models.CharField(max_length=128) 
    company_country = CountryField() 

    invitation_uid = models.CharField(max_length=100, null=True, blank=True, unique=True, editable=False) 
    has_been_used = models.BooleanField(default=False, editable=False) 
    invitation_date = models.DateTimeField(auto_now_add=True) 

    def __init__(self, *args, **kwargs): 
     super(CompanyAdminInvitation, self).__init__(*args, **kwargs) 
     self.invitation_uid = str(uuid4()) 

    def send_invite(self, request): 
     # TODO use a template instead of hardcoding the email 
     subject = "Get started with your account!" 
     message = "Hi, your link to start is %s" % \ 
        (request.build_absolute_uri(reverse("users:admin_signup", 
                 kwargs={"invite_id": str(self.invitation_uid)}))) 

     from_email = "[email protected]" 
     recipient_list = [self.user_email,] 
     send_mail(subject=subject, message=message, from_email=from_email, recipient_list=recipient_list) 

    def get_absolute_url(self): 
     return "/" 
+0

Как выглядит ваша модель пользователя? – rnevius

+0

@rnevius добавил к вопросу –

+0

@AviMeir У меня такая же проблема, как вы это решили? –

ответ

1

Я не уверен, если это является причиной исходной задачи плакатов, но это может быть вызвана, если тестирование с суперпользователем, который будет игнорировать разрешения группы в Скобки (см. issue #105 для django-braces)

Попробуйте протестировать с помощью не суперпользователя, чтобы устранить эту проблему.

Смежные вопросы