具有自定义权限的预定义django组

时间:2018-02-26 19:33:13

标签: django python-3.x permissions

我事先知道会有哪些用户群。在开发过程中,我们经常重置明显的db。但是我想知道放置这些信息的最佳位置在哪里以及何时将它放到数据库中因为我不希望每次都通过django admin手动执行此操作。

我想出这样的事情:

我有简单的perms地图,我可以通过函数将所需信息输入数据库。

GROUP_PERMISSION_MAP = {
    user_constants.GROUPS.ADMINISTRATORS: {
        Bet: ['add', 'change', 'delete'],
        Transaction: [],
        User: ['add', 'change'],
        Category: ['add', 'change', 'delete'],
        BetInfo: ['add', 'change', 'delete'],
    },
    user_constants.GROUPS.REGULAR_USERS: {
        Bet: ['add'],
        Transaction: [],
        User: ['change'],
        Category: [],
        BetInfo: ['add', 'change', 'delete'],
    }
}


def assign_perms_to_group(group: Group, model: Model, permissions: List[str]):
    permission_codenames = ['{}_{}'.format(permission, model.__name__.lower()) for permission in permissions]
    group.permissions.add(*Permission.objects.filter(codename__in=permission_codenames))

最佳做法是什么?应该如何做?

特别是我的问题是:

  1. 哪些具有权限的预定义组应该存在(可能存在更好的方式)?
  2. 将数据库放入数据库的最佳方式和时间是什么?

0 个答案:

没有答案