Example #1
0
 def formfield_for_dbfield(self, db_field, **kwargs):
     """
     Filter permissions according context permissions available
     """
     if db_field.name == "permission":
         already = [c[0] for c in db_field.choices]
         choices = [(k, _(k)) for k in permissions.keys()]
         new = [item for item in choices if item[0] in self.permission_filters and item[0] not in already]
         db_field.choices.extend(new)
     return super(RuleInline, self).formfield_for_dbfield(db_field, **kwargs)
Example #2
0
 def __init__(self, *args, **kwargs):
     user = kwargs.pop('user', None)
     super(RuleForm, self).__init__(*args, **kwargs)
     journals_with_manage_permissions = user.journals.all()
     self.fields['journal'].queryset = journals_with_manage_permissions
     us = [j.members.all() for j in journals_with_manage_permissions]
     chain = itertools.chain(*us)
     users = [u.id for u in list(chain)]
     self.fields['user'].queryset = User.objects.filter(id__in=users)
     declared_rules = [(perm, _(perm)) for perm in permissions.keys()
                       if perm in self.get_permission_filters()]
     self.fields['permission'].choices = declared_rules
Example #3
0
 def __init__(self, *args, **kwargs):
     super(RuleForm, self).__init__(*args, **kwargs)
     permission_rules = [(perm, _(perm)) for perm in permissions.keys()]
     self.fields['permission'].choices = permission_rules