2013-09-29 97 views
0

我的問題慘慘權限: 我有三個型號:特定資源

用戶< - >擴招< - >課程。

  1. 一個用戶可以是許多課程構件
  2. 教程有許多成員。

這沒問題,但現在我想擁有基於Enrollment的具體權限。

比如我有:

  1. 的用戶:userA
  2. 兩課:courseAcourseB

userA是:在courseA與角色

  • 成員student
  • 和構件上courseBtutor

一個普通學生的角色應該只看到課程內容,導師應該擴大權限(例如編輯數據,添加數據...)

我對搜索結果只有我可以分配一個用戶添加到課程只有一種角色......

是否有可能達到我的行爲?

回答

0

假設role被上Enrollment定義,下面應該工作:

can :read, Course, enrollment: { user_id: user.id } 
can :manage, Course, enrollment: { user_id: user.id, role: "tutor" } 

第一條規則捕獲其具有Enrollment符合用戶id,允許用戶觀看它任何Course。第二捕捉其具有Enrollment符合用戶id任何Course,並用一個"tutor"role。 (你也可以指定"student"第一法則的作用,但是這可能在這種情況下沒有必要的。)

我沒有測試過這一點,你可能要改變實際的權限比:read:manage以外的東西,但這應該讓你走上正軌。