Как да настроите ACL, за да позволите на потребителите да имат достъп само до конкретни записи?

Планирам да използвам Loopback, за да създам приложение, където потребителите ще имат достъп само до конкретни записи.

Да кажем, че имаме модел Projects с 2 записа:

{
    "projects": [
        {
            "project_name": "foo",
            "project_start_date": "2012-10-29T18:25:43.511Z"
        },
        {
            "project_name": "bar",
            "project_start_date": "2012-10-30T18:25:43.511Z"
        }
    ]
}

и че имам 2 потребители, joe и katie.

Искам joe да има достъп само до проект foo, а katie да има достъп само до проект bar.

Възможно ли е това изобщо? Ако е така, как трябва да продължа да настройвам ACL?


person kYuZz    schedule 30.10.2014    source източник
comment
Аз също преминавам през същия проблем. какво е окончателното решение за това?   -  person PPB    schedule 23.07.2015


Отговори (2)


В момента декларативният ACL не поддържа вашия случай на употреба. Трябва да създадете кука afterRemote, за да проверите допълнително отговора. Вижте http://docs.strongloop.com/display/LB/Remote+hooks.

person Raymond Feng    schedule 31.10.2014
comment
Възможно ли е да се получи ролята, която съответства в куката afterRemote? - person Dylan; 08.02.2016

Можете също да играете с динамични роли. Вижте http://docs.strongloop.com/display/public/LB/Defining+and+using+roles#Definingandusingroles-Dynamicroles и подобен пример за обратна връзка: https://github.com/strongloop/loopback-example-access-control/blob/master/common/models/project.json

person Alex V    schedule 22.11.2014
comment
Примерът за разпознаване на роли е подвеждащ и наистина работи само когато е заявен един запис. Когато правите find(.) върху множество записи, преобразувателят на роли е по-малко полезен и 401, върнат при отхвърляне, не е полезен, когато просто искате филтриран списък с проекти, до които потребителят има достъп. - person stevejpurves; 04.11.2015