2016-05-03 9 views
0

ユーザーモデル - 顧客に基づくモデルがあります。
このモデルに直接問い合わせると、エラー"Authorization Required"が返されます。 これが望ましい。「ユーザー」ベースのモデルがリレーショナルクエリに含まれている場合に電子メールを返信しない

しかし、私は、製品(のような{"include":["customer"]})のクエリでお客様を含め
私は、ユーザーのメールでほぼ全顧客モデルインスタンスを取得します。

私はプロダクトを照会している誰かからの電子メールを隠し、ユーザーのユーザー名とIDのみを与えたいと思います。

操作フックまたはリモートフックでクライアントに送信されたデータを削除できます。

model.jsonからのデータアクセスを制限する方法はありますか?それとも、フックはメソッドなのですか?

+0

Product.jsonに 'hidden'小道具を追加しようとしましたか? https://docs.strongloop.com/display/public/LB/Model+definition+JSON+file#ModeldefinitionJSONfile-Hiddenproperties – amuramoto

+0

@amuramoto:私は '保護された'プロパティがこのシナリオに適していると信じています(私の答えを参照)。 _ "Authorization Required" _は、CustomerモデルにいくつかのACLがあることを示しています(所有者がアクセス可能かどうか)。あなたのアプローチは、誰にとっても影響を受けるプロパティを隠すでしょう。多分OPが手がかりになるかもしれない。 –

答えて

0

特定のプロパティを非表示にするには、オブジェクトが関連するモデルのHTTP応答にネストされている場合、model definitionファイルのprotectedプロパティを使用します。ループバックのドキュメントから

例:

共通/モデル/ customer.json

... 
    "properties": { 
    ... 
    "email": { 
     "type": "string", 
     "required": true 
    }, 
... 
    "protected": ["email"], 
... 

あなたは、関連するモデルにACLを適用したい場合、あなたはそれらを個別に指定する必要があります。 LoopBackのマニュアルのAccessing related modelsセクションを参照してください。

関連する問題