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

Я хотел бы, чтобы вы дали мне несколько идей по реализации системы ролей и разрешений в flask с 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 Ответ

0 голосов
/ 15 января 2020

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

...