2013-01-11 30 views
1

我擁有所有者,管理員和用戶角色。 只有一個所有者,那就是我。 如何拒絕管理員編輯或刪除我? 所有者有ID 1,所以如果我要檢查isAuthorized(),如果管理員不是所有者,我這樣做:$user['id'] != 1。 現在我要如何檢查被編輯或刪除的用戶是否是所有者。我知道如何獲得用戶ID:$this->request->params['pass'][0]但不是用戶角色。如何查看正在編輯角色的用戶?

回答

1

我不認爲我會有「所有者」作爲角色。允許某人成爲普通角色類型會更容易,然後在項目表中保留owner_id字段。

這樣的話,你可以離開角色應付上級的授權,並在個別項目動作/方法,您可以檢查所有權(經常使用自定義功能isOwner()做,以保持你的代碼DRY)。

在你PostsController->edit($id)功能爲例,你可以做上發表find(),然後比較這對owner_id$this->Auth->user('id'),以確保如果他們的所有者,他們只能編輯。

如果您想檢索角色並使其可用,您可以在AppController的beforeFilter中根據Auth-> user的role_id字段在roles表上找到正常的查找。

相關問題