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 № 1Ponieważ 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