2013-11-17 1 views
2

Я думаю, что название в значительной степени говорит все это ... Совершенно новый для Deployd, поэтому любые указатели о том, как лучше всего это делать, оцениваются.Deployd: Самый безопасный, самый элегантный способ получить все объекты в определенной коллекции, созданные зарегистрированным пользователем?

ответ

4

Чтобы получить объекты в коллекции, созданные пользователем (я предполагаю, что вы используете библиотеку 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

В версии 0.8. 9, событие ONBEFOREREQUEST существует, и вы можете просто поместить этот код там:

cancelUnless(me); 
query.creator = me.id; 

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

 Смежные вопросы

  • Нет связанных вопросов^_^