Просмотр потока и Django Guardian - PullRequest
0 голосов
/ 05 апреля 2020

Я относительно новичок в django -гарианском и django -потоке, все еще пытаюсь обернуться вокруг вещей. Недавно я пытался внедрить систему документооборота для получения разрешений на определенные документы. В качестве такового я выбрал просмотр потока рабочего процесса.

Рабочий процесс, который мне поручено разрабатывать, на самом деле довольно простой и линейный. Однако на каждом контрольном пункте должен присутствовать другой человек со специальной ролью для проверки документов. Есть 4 роли, 1 составитель, 2 проверяющий, 3 казначейство и 4 директор.

Поскольку я не могу, чтобы кто-то проверял самого Директора, существует необходимость в контроле пользователя на основе ролей. Таким образом, я принял django опекуна, чтобы сделать эту работу. Вот мой код, демонстрирующий, как я это сделал:

Flows.py

class Pipeline(Flow):
    process_class = PaymentVoucherProcess
    lock_impl = lock.select_for_update_lock
    #process starts here
    start = flow.Start(
        CreateProcessView,
        fields=["paymentVoucher"],
        task_title="Processing New Voucher"
    ).Permission("can_start_voucher", auto_create=True
    ).Next(this.documents)

    #preparer will upload supporting documents
    documents = flow.View(
        UploadView,
        task_title="Receiving Supporting Documents"
    ).Permission("preparer", auto_create=True
    ).Next(this.preparer)

    #i wont go in detail as it isn't relevant

Models.py

, где я определил свои разрешения в сам процесс.

class PaymentVoucherProcess(Process):
paymentVoucher = models.ForeignKey('PaymentVoucher',on_delete=models.CASCADE)
preparer = models.BooleanField(default=False)
verifier = models.BooleanField(default=False)
treasury = models.BooleanField(default=False)
director = models.BooleanField(default=False)
remarks = models.TextField(null=True)

class Meta:
    permissions = (
        ('can_start_voucher', 'Can start Voucher'),
        ('preparer', 'preparer'),
        ('verifier', 'verifier'),
        ('director', 'director'),
    )

Итак, каждому из моих пользователей будут назначены права доступа в зависимости от их роли. Например, подготовителю будет предоставлено разрешение «can_start_voucher» и «preparer». Пока эта система работает, однако, поскольку я незнаком с django -viewflow и django -guardian, я боюсь, что это неправильный способ ограничения потока для определенных пользователей.

Здесь обсуждается проблема с чем-то похожим на то, что я делаю: django -guardian и viewflow

, поэтому я хотел бы искать Из мнения старших здесь, я был бы очень признателен за любые комментарии! Спасибо

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