Я думаю, что название в значительной степени говорит все это ... Совершенно новый для Deployd, поэтому любые указатели о том, как лучше всего это делать, оцениваются.Deployd: Самый безопасный, самый элегантный способ получить все объекты в определенной коллекции, созданные зарегистрированным пользователем?
ответ
Чтобы получить объекты в коллекции, созданные пользователем (я предполагаю, что вы используете библиотеку JavaScript dpd.js):
// Get the current user:
var currentUser;
dpd.users.me(function(result, error) {
currentUser = result;
});
// query your collection with your currentUser id as parameter
dpd.yourcollection.get({creator:currentUser.id}, function(result) {
// Do something with the result
console.log(result);
});
Ваша коллекция должна иметь свойство «творца», который содержит идентификатор пользователя, создавшего объект (*). Затем, чтобы обеспечить безопасность бэкенда, перейдите в панель управления, на вкладке ON_GET вашей коллекции и закрепить его с помощью этого кода:
cancelUnless(isMe(this.creator), "You have to be the creator to view this item", 401);
Более подробной информации о cancellUnless() и Isme() здесь: http://docs.deployd.com/docs/collections/reference/event-api.md#s-cancelIf%28%29,%20cancelUnless%28%29-764
хорошая практика, чтобы обеспечить свои коллекции, чтобы позволить запросы, только если пользователь вошел в систему:
cancelUnless(me,"You have to be connected to view this item", 401);
коллекции Пользователи должны быть особенно хорошо обеспеченных (позволяют ON_PUT только админом или что-то в этом роде).
*: автоматически сохранять currentUserId в собственности создателя, вы также можете добавить это в том случае, ON_POST в приборной панели:
this.creator = me.id;
Подробнее здесь: http://docs.deployd.com/docs/collections/reference/event-api.md#s-me-764
В версии 0.8. 9, событие ONBEFOREREQUEST существует, и вы можете просто поместить этот код там:
cancelUnless(me);
query.creator = me.id;
Это означает, что для каждого запроса, отправленного на эту конечную точку, ключ разработчика будет запрошен, чтобы иметь текущий идентификатор пользователя. Если пользователь в настоящее время не зарегистрирован, запрос отменяется.