Текущий зарегистрированный пользователь в стеке
Я пытаюсь получить список контактов для пользователя, который вошел в систему, но я не могу понять, как найти текущего пользователя. Я знаю, что из Parse.com вы используете Parse.User.current(), есть ли в Stackmob что-то подобное?
Код ниже, чтобы продемонстрировать, что я ищу.
$(window).load(function () {
var user = StackMob.User;
var Contacts = StackMob.Model.extend({ schemaName: 'contacts' });
var myContacts = new Contacts();
var q = new StackMob.Collection.Query();
q.equals('sm_owner', user);
q.orderAsc('FirstName'); //sort by title in ascending order
q.setRange(0, 9); //get the first 10. second 10 would be setRange(10,19)
myContacts.query(q, {
success: function (model) {
console.debug(model.toJSON()); //JSON array of matching Todo objects
},
error: function (model, response) {
console.debug(response);
}
});
});
Я получил то, что искал, используя приведенный ниже код, но наличие ('sm_owner', 'user/thomas') является бесполезным.
$(window).load(function () {
var Contacts = StackMob.Model.extend({ schemaName: 'contacts' });
var myContacts = new Contacts();
var q = new StackMob.Collection.Query();
q.equals('sm_owner', 'user/thomas');
q.orderAsc('FirstName'); //sort by title in ascending order
q.setRange(0, 9); //get the first 10. second 10 would be setRange(10,19)
myContacts.query(q, {
success: function (model) {
console.debug(model.toJSON()); //JSON array of matching Todo objects
},
error: function (model, response) {
console.debug(response);
}
});
});
1 ответ
Похоже, вы хотите сделать это, используя разрешения схемы StackMob.
Например, вы можете настроить разрешения так, чтобы ваши пользователи могли только читать contact
объекты, которые они сами создали.
Когда пользователь создает объект, sm_owner
поле автоматически устанавливается для текущего вошедшего в систему пользователя. Чтобы воспользоваться этим, вы можете настроить contacts
схема, позволяющая пользователю читать только свои контакты. Таким образом, фильтрация по текущему пользователю выполняется на стороне сервера, и вам не нужно специально запрашивать его на клиенте.
Как это настроить:
Перейти иди Конфигурация схемы и Изменить выберите вашу схему. В разделе Разрешения схемы выберите Logged In Permissions -> Allow to sm_owner
за Read
, Update
, а также Delete
,
Теперь, когда вы запрашиваете contacts
только схема contact
объекты где (sm_owner
== текущий пользователь) будет возвращен. Тогда вы можете просто удалить эту строку:
q.equals('sm_owner', 'user/thomas');