Можно ли установить пользовательский ACL в beforeSave? - PullRequest
0 голосов
/ 07 мая 2020

В этом случае только сам пользователь должен иметь доступ к собственному объекту User. В настоящее время ACL устанавливается в триггере Cloud Code afterSave сразу после создания пользователя:

Parse.Cloud.afterSave("_User", async (request) => {

    const user = request.object;

    if (!user.existed()) {
        user.setACL(new Parse.ACL(user));
        await user.save();
    }
});

Можно ли сделать это в триггере beforeSave (для сохранения записи в БД)?

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Я взглянул на код Parse Server, и это должно быть возможно. Я боялся, что ACL по умолчанию может переопределить то, что вы установили в триггере beforeSave, но это не так. Как вы можете видеть здесь , он поддерживает то, что было установлено заранее, и вы можете фактически отправить этот параметр даже с клиента.

Установка пустого ACL в beforeSave гарантирует, что только пользователь будет предоставлен доступ, поскольку пользователю по умолчанию предоставляется доступ к собственному объекту _User:

request.object.setACL(new Parse.ACL());
0 голосов
/ 08 мая 2020

Ага, только не звоните user.save() в beforeSave

...