Как реализовать пользовательские роли и уровень разрешения для каждой службы на фляге с аутентификацией JWT?

Я хотел бы, чтобы вы дали мне некоторые идеи для реализации системы ролей и разрешений в колбе с JWT, как я объясню ниже:

Я реализовал нормальную систему ролей, как это:

ROLES = {
     'user': 1,
     'moderator': 2,
     'admin': 3
}

Но я хочу добиться чего-то подобного для следующего, например

В моем проекте у меня есть следующие функции: - сообщения - комментарии - чат

и пользователи:

pepe: is administrator 3
Luis: is moderator 2

Mario: is a normal user 1
Tony: is a normal user 1
timy: is a normal user 1
jose: is a normal user 1

Я хочу иметь контроль над разрешениями каждой функции.

pepe:  "can create/modify/delete Posts and Comments and use chat"

Luis:  "can create/modify Posts and Comments and use chat"

Mario: "can create/modify/delete your own Posts, but don't can use chat"

Tony: "can 'only see' all Posts and Comments, but can use chat"

timy: "can see posts but can't see or create comments, and don't can use chat"

jose: "can't see posts or comments, but can use chat"

Дайте мне ваши идеи о том, как я могу достичь чего-то подобного ... спасибо!

Всего 1 ответ


У вас может быть функция проверки прав доступа для модели (например, «Сообщения», «Комментарии» и т. Д.), В которую вы передаете пользователя и какое разрешение вы проверяете, имеют ли они доступ. Затем функция может определить, запрашивают ли они разрешение или нет, не только на основании роли пользователя (администратор, обычный пользователь и т. Д.), Но и на основании того, написал ли пользователь комментарий, имеет ли право читать сообщение или что-то еще еще вам нужно.


Есть идеи?

10000