2016-11-15 8 views
0

私は家を所有するユーザーがおり(ユーザーのうちのいくつかは自宅を所有できます)、家にはいくつかの家具があります。直接モデルの所有者

CustomUser.json関係:

"houses": { 
    "type": "hasAndBelongsToMany", 
    "model": "House", 
    "foreignKey": "houseId" 
} 

House.json関係:

"furnitures": { 
    "type": "hasAndBelongsToMany", 
    "model": "Furniture", 
    "foreignKey": "" 
}, 
"customUsers": { 
    "type": "hasAndBelongsToMany", 
    "model": "CustomUser", 
    "foreignKey": "" 
} 

私のACLが簡単で、ハウスと家具の両方のために次のようになります。

"acls": [ 
    { 
     "accessType": "*", 
     "principalType": "ROLE", 
     "principalId": "$everyone", 
     "permission": "DENY" 
    }, 
    { 
     "accessType": "*", 
     "principalType": "ROLE", 
     "principalId": "admin", 
     "permission": "ALLOW" 
    }, 
    { 
     "accessType": "*", 
     "principalType": "ROLE", 
     "principalId": "$owner", 
     "permission": "ALLOW" 
    } 
] 

、ユーザーのためのアクセスハウスはうまく動作しますが、ユーザーはhoに属しているので、リストされている家具を取得しません使用(家は所有者)。これを最も簡単な方法で解決するにはどうすればよいですか?ベストは何とかユーザーが家を所有している家具を定義することでしょうか?しかし家具は家に属していなければなりません(複数のユーザーが家を持つことができるので)。

答えて

0

ロールレゾルバを作成することで、ロールレゾルバでは元の親を見つけても、(まだLBがカスケードをサポートしていないので)デッドリレーションシップがないことを確認する必要がありました。

私が軌道に乗るために、この始まるお勧めします:

https://loopback.io/doc/en/lb3/Defining-and-using-roles.html

1

私はグループを定義するための "loopback-component-access-groups"という別のモジュールを使いました。この特定のケースでは、私はハウスモデルをユーザーと家具がアクセスできるグループにしました。ユーザーは異なる役割を持つことができるので、同じメンバー(家)内にある家具にアクセスできるユーザー(役割 "メンバー"を持つ)を設定するだけです。この解決法は私には役立ちますが、家具に関連している場合は、家に属しているオブジェクトを継承するかどうかは完全にはわかりません。

+0

また、このモジュールで、私は、ユーザーのために、「スルー」関係をしなければなりませんでした。そこで私は、ユーザーと家の関係を示す別のモデル「Team」を作成しました。これは、役割が定義できるように存在する必要があります(チームモデルには、各家の役割が含まれています)。 – Undrium

関連する問題