Django: правила авторизации для строки (не для таблицы) - PullRequest
0 голосов
/ 07 июня 2019

Django имеет возможность давать права доступа на основе пользователей / и / или / групп на таблицу .

Вот пример:

give access permissions based on users / and / or / groups

Мне бы хотелось иметь более детальную детализацию: я хотел бы, чтобы этот принцип использовался, но для строк таблиц.

Идея заключается в следующем: пользователь может создать что-то (независимо от таблицы) и хотел бы поделиться этим (только для чтения / / / чтения-записи) с другими пользователями.

Я думал о такой модели, но она не работает, потому что она станет слишком большой. Как я могу это реализовать?

class AccessRight(models.Model):
    A_R = 1
    A_W = 2
    A_RW = A_R | A_W
    ACCESS_RIGHTS = {A_R: {'long': 'Read', 'short': 'R'},
                     A_W: {'long': 'Write', 'short': 'W'},
                     A_RW: {'long': 'Read/Write', 'short': 'RW'}, }
    table_name = models.CharField(max_length=50, default=None, blank=True,
                                  db_index=True)
    row_id = models.PositiveIntegerField(default=None, blank=True, )
    user = models.ForeignKey(User, blank=False, on_delete=models.CASCADE)
    right = models.IntegerField(
        choices=[(idx, '{} ({})'.format(desc['long'], desc['short']))
                 for idx, desc in ACCESS_RIGHTS.items()],
        default=A_R)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...