Как настроить 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.

Это вообще возможно? Если да, то как мне настроить списки управления доступом?


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
Пример распознавателя ролей вводит в заблуждение и действительно работает только тогда, когда запрашивается одна запись. При выполнении поиска (.) по нескольким записям преобразователь роли менее полезен, а 401, возвращаемый при отклонении, бесполезен, когда вам просто нужен отфильтрованный список проектов, к которым пользователь может получить доступ. - person stevejpurves; 04.11.2015