2016-11-15 48 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" 
    } 
] 

現在,訪問用戶的房屋工作正常,但用戶不會因爲屬於他們而被列出傢俱使用(房子是業主)。我如何解決這個問題最簡單的方法?最好的辦法是以某種方式定義用戶擁有家中的傢俱?但傢俱必須屬於家庭(因爲多個用戶可以擁有一間房子)。

回答

1

所以我通過另一個叫做「loopback-component-access-groups」的模塊來讓它定義組。在這種特殊情況下,我將家庭模型作爲用戶和傢俱可以訪問的組。用戶可以有不同的角色,因此我只是設置用戶(具有「成員」角色)可以訪問同一組(家庭)中的傢俱。這種解決方案適用於我,但我並不完全確定,如果更多的對象繼承他們屬於一個房子,如果他們與傢俱有關。

+0

此外,該模塊我不得不做出針對用戶的「通過」關係。所以我創建了另一個名爲「團隊」的模型,它告訴用戶和房子之間的關係。這需要存在,因此可以定義角色(Team模型包含用戶對每個房屋的角色)。 – Undrium