Всем привет.
Подскажите, как лучше сделать.
Имеем таблицу некоторых объектов:
class SameObject(models.Model):
value = models.IntegerField(choices=VALUE_CHOICES, default=VALUE_DEFAULT)
method = models.IntegerField(choices=METHOD_CHOICES, default=METHOD_DEFAULT)
status = models.IntegerField(choices=STATUS_CHOICES, default=STATUS_ACTIVE)
# Другие поля...
Есть таблица, в которой пользователь определяет, кто и к каким его объектам может иметь доступ,
с указанием прав доступа:
class SharedObjects(models.Model):
FLAGS = (
('read', _('Чтение')),
('write', _('Запись')),
)
owner = models.ForeignKey(
User, on_delete=models.CASCADE, verbose_name=_('Владелец объекта'), db_index=True,
related_name='owner', db_column='owner'
)
guest = models.ForeignKey(
User, on_delete=models.CASCADE, verbose_name=_('Для кого объект'), db_index=True,
related_name='guest', db_column='guest'
)
obj = models.ForeignKey(SameObject, on_delete=models.CASCADE, verbose_name=_('Объект'), db_index=True)
permissions = BitField(flags=[k for k, v in FLAGS])
Необходимо вывести список объектов, к каждому надо приложить список тех, кому дан доступ к этому объекту,
с указанием прав (если такие есть в таблице SharedObjects), при этом в список должны попасть не только
объекты, владельцем котороых является текущий пользователь, но и чужие объекты, к которым он имеет доступ.
И как все это красиво сериализовать?