Можете ли вы объединить разрешения? - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно знать, возможно ли объединить два разрешения в проекте Python django? Мой босс хочет, чтобы я объединил разрешения clock_in и clock_out в одно с именем clock_in_out. Я также хотел бы сделать одно разрешение, чтобы иметь возможность включать в себя добавление, изменение, просмотр и удаление проекта вместо того, чтобы иметь отдельные для назначения администраторам.

Я попытался добавить метаданные в классы модели и добавить @permission_required ('manager.manage_project') до применения соответствующих определений в файле views.py. Я новичок в Python, и поэтому дайте мне знать, если это возможно. Я запустил Python3 manage.py makemigrations и мигрировал, и он все еще не работал так, как должен.

models.py

class Entry(models.Model):

   #uses EntryManager for querysets
   objects = EntryManager()
   no_join = models.Manager()

   class Meta:
       db_table = 'timepiece_entry'  # Using legacy table name
       ordering = ('-start_time',)
       verbose_name_plural = 'entries'
       permissions = (
           ('can_clock_in_out', 'Can use Pendulum to clock in and out'),
       )

views.py

@permission_required('entries.can_clock_in_out')
@transaction.atomic
def clock_in(request):
    """For clocking the user into a project."""
    user = request.user
    # Lock the active entry for the duration of this transaction, to prevent
    # creating multiple active entries.
    active_entry = utils.get_active_entry(user, select_for_update=True)

    initial = dict([(k, v) for k, v in request.GET.items()])
    data = request.POST or None
    form = ClockInForm(data, initial=initial, user=user, active=active_entry)
    if form.is_valid():
        entry = form.save()
        message = 'You have clocked into {0}.'.format(
             entry.project)
        messages.info(request, message)
        return HttpResponseRedirect(reverse('dashboard'))

    return render(request, 'timepiece/entry/clock_in.html', {
        'form': form,
        'active': active_entry,
    })

Я хочу иметь возможность просто назначить этому пользователю can_clock_in_out и заставить его работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...