Определение способностей в CASL, проблема с вложенной проверкой - PullRequest
0 голосов
/ 30 января 2019

Моя проблема в том, что я пытаюсь установить условие удаления для сообщений, т.е. сообщение может быть удалено только тогда, когда оно было создано пользователем.

Классы сообщений / сообщений выглядят примерно так

Message { id: int, text: string, createdBy: int, belongsToPost: int (belongsToPost foreign key to post) }

Post { id: int, createdBy: int, content: string, (createdBy foreign key to users) }

Теперь я хочу добавить функциональность, что сообщение может быть удалено только тогда, когда оно было создано пользователем.

can('delete', 'Message', { belongsToPost : {createdBy: user.id}})

Это не работает, потому что belongsToPost - это тольковнешний ключ, и он выдает ошибку, что оператор {createdBy: user.id} не определен для этого типа.

Я мог бы решить эту проблему, добавив поле createdBy в сообщение, но есть ли способ достичьэто без повторяющихся данных?

Спасибо за вашу помощь!

...