/ / Uprawnienia drobnoziarniste w Loopback - express, loopbackjs

Drobne uprawnienia w Loopback - express, loopbackjs

Używam Loopback dla interfejsu API REST i próbuję skonfigurować bardziej szczegółowe uprawnienia niż tylko przypisywanie użytkowników do grup aplikacji. Po stronie klienta mam na myśli coś takiego:

UŻYTKOWNIK: Bob ID: 123

MODEL    |   READ | WRITE | EXECUTE
-----------------------------------
Projects |    Y   |   Y    |   N
Changes  |    N   |   N    |   N
Companies|    Y   |   Y    |   Y
ThingOne |    Y   |   N    |   N
ThingTwo |    Y   |   Y    |   N

Gdzie administrator może przełączać uprawnienia dla jednego użytkownika dla pojedynczych modeli.

Jednym z pomysłów, które wypróbowałem, jest dodanie indywidualnych grup ACL dla każdego modelu, tj. Dla modelu Projects

"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY",
"property": "find"
},
{
"accessType": "READ",
"principalType": "ROLE",
"principalId": "projects-read-access",
"permission": "ALLOW",
"property": "find"
},
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "projects-write-access",
"permission": "ALLOW",
"property": "find"
},
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "projects-execute-access",
"permission": "ALLOW",
"property": "find"
}
],

a następnie dopasowanie ról do mapowania ról, ale wydaje się to niewłaściwe i kłopotliwe. Doceniamy wszelkie porady dotyczące tego, jak najlepiej to zrobić, Dzięki

Odpowiedzi:

0 dla odpowiedzi № 1

Ponieważ administrator może przełączać uprawnienia dlapojedynczy użytkownik dla pojedynczych modeli, potrzebujesz tabeli bazy danych do przechowywania uprawnień dla użytkowników. Następnie możesz utworzyć rolę dynamiczną, która sprawdza odpowiednie uprawnienia: http://loopback.io/doc/en/lb3/Defining-and-using-roles.html#dynamic-roles