permissions.py 3.0 KB

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