permissions.py 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from .template import Template
  2. class Permissions(models.Model):
  3. """
  4. Разрешения - (проверки/экзамены).
  5. По смыслу это что-то вроде “документа на право что-то делать” - на данном этапе это ограничено метасервисом/платформой,
  6. при этом он может быть полностью цифровым (выданным платформой/сервисом).
  7. """
  8. id = models.IntegerField(
  9. primary_key=True
  10. )
  11. # ID METASERVICE
  12. id_metaservice = Template.id_metaservice
  13. # DATA
  14. permission_type = models.BigIntegerField(
  15. help_text="уникальный идентификатор определяющий наличие разрешения из множества в словаре - выданных пользователю/клиенту/аккаунту"
  16. )
  17. check_level = models.CharField(
  18. max_length=10,
  19. help_text="(check-level из классификатора платформы) - информация об уровне проверки. Проверка может быть проведена как платформой, так и мета-сервисом, так и партнером мета-сервиса, а может быть и никем (просто загружен). Указывается, так как достоверность проверки разная. Экзамен, проверенный только на низком уровне, не принимается во внимание как имеющийся до прохождения более высокоуровневой проверки."
  20. )
  21. status = models.CharField(
  22. max_length=150,
  23. help_text="статус обработки заявки в системе заявок"
  24. )
  25. check_date = models.DateTimeField(
  26. null=True,
  27. help_text="timestamp проверки"
  28. )
  29. expire_date = models.DateField(
  30. help_text="Срок окончания действия разрешения"
  31. )
  32. # OTHER
  33. is_global = Template.is_global
  34. is_visible = Template.is_visible
  35. # FK
  36. ticket_status = models.ForeignKey(
  37. Ticket,
  38. on_delete=models.DO_NOTHING,
  39. null=True,
  40. help_text="id заявки, по которой происходит проверка статуса relationship. State меняется только в результате изменений в заявке."
  41. )
  42. user_id = models.ForeignKey(
  43. get_user_model(),
  44. related_name="user_id_perm",
  45. on_delete=models.DO_NOTHING,
  46. null=True,
  47. help_text="уникальный идентификатор пользователя/клиента/аккаунта, которым была пройдена проверка и получено разрешение"
  48. )
  49. checked_by = models.ForeignKey(
  50. get_user_model(),
  51. related_name="checked_by_perm",
  52. on_delete=models.DO_NOTHING,
  53. null=True,
  54. help_text="userid проверившего"
  55. )