2017-02-16 4 views
1

Так у меня есть модель места проведения со следующей rellationship:Ограничить которые HTTP методы на отношения петлевой модели

relations": { 
    "events": { 
    "type": "hasMany", 
    "model": "event" 
    }, 
}, 

В случаях, у меня есть отношения как:

"relations": { 
    "venue": { 
     "type": "belongsTo", 
     "model": "venue", 
     "foreignKey": "venueId", 
     "options": { 
     "validate": true, 
     "forceId": false 
     } 
    } 
    }, 

В проводнике она показывает, что я могу получить, поместить, опубликовать, запланировать, обновить и удалить до venue/:id/events

Где и как я могу сказать: Независимо от того, кто вы, этот конкретный r elationship может ТОЛЬКО иметь доступ GET и ничего больше?

ответ

2

Для hasMany Loopback добавляет следующие методы:

__findById__events 
__destroyById__events 
__updateById__events 
__get__events 
__create__events 
__delete__events 
__count__events 

Поскольку вы только хотите получить доступ мы держим findById, get и count, и отключить все остальное.

Предполагая, что вы используете Loopback 3, вы можете сделать это в вашей модели:

Message.disableRemoteMethodByName('prototype.__destroyById__events'); 
Message.disableRemoteMethodByName('prototype.__updateById__events'); 
Message.disableRemoteMethodByName('prototype.__create__events'); 
Message.disableRemoteMethodByName('prototype.__delete__events'); 

Посмотрите the documentation для получения дополнительной информации.

Если вы используете Loopback 2 вы должны сделать это вместо (Initally написана Kiley Hykawy):

Message.disableRemoteMethodByName('__destroyById__events', false); 
Message.disableRemoteMethodByName('__updateById__events', false); 
Message.disableRemoteMethodByName('__create__events', false); 
Message.disableRemoteMethodByName('__delete__events', false); 

false необходимо, чтобы указать, что он не является статическим методом, как прототип для LoopBack 3.

+0

Для LoopBack 2 вы можете сделать это в своей модели: Message.disableRemoteMethodByName ('__ destroyById__events', false); Message.disableRemoteMethodByName ('__ updateById__events', false); Message.disableRemoteMethodByName ('__ create__events', false); Message.disableRemoteMethodByName ('__ delete__events', false); Message.disableRemoteMethodByName ('__ count__events', false); false, чтобы указать, что это нестатический метод, например, прототип для LoopBack 3. –

+0

@KileyHykawy Я добавил это к ответу с вашего разрешения. –

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