Django能够根据用户/和/或/组<表> 授予访问权限。
这里是一个示例:
我想要更详细的粒度:除了表的行,我想要这个原理。
背后的想法是:用户可以创建某些内容(无论表是什么),并希望与其他用户共享该内容(只读/或/读写)。
我想到了这样的模型,但是它无法正常工作,因为它将迅速变得太大。我该如何实施?
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)