2010-07-13 81 views
0

我最近開始爲SharePoint開發。我剛剛爲任務列表編寫了一個事件接收器,以便將該項目的編輯權限授予在分配給字段中輸入的用戶。Sharepoint 2007:授予任務列表中「已分配給」用戶的編輯權限

不幸的是我的代碼不起作用,我想我也找到了原因。

列表授予默認權限作出貢獻的所有用戶,讓每一個身體可以添加任務。 在高級下,設置了項目級權限,以便所有用戶都可以讀取所有項目,但他們只能編輯自己的項目。

當我創建一個項目並現在檢查它的權限時,每個用戶已經列出了貢獻權限。他們也可以轉到編輯表單,但在提交更新的項目時會顯示權限錯誤。

這就是我堅持的觀點。如果用戶已被列爲貢獻者,但仍然無法更改該項目,我可以做些什麼來允許它?

我知道如何添加權利和制動角色繼承程序,但作爲貢獻者不準更新國外項目,它是無用的。

我目前的想法是:在高級下,設置對「所有項目」和事件接收器的編輯訪問權限,在ItemAdded事件中,打破角色繼承,向創建者和「分配給」用戶添加貢獻權限,休息與讀取權限。

但是,隨着角色繼承被打破,新用戶會發生什麼?我想,無法看到在他們加入任務列表之前創建的任務。此外,我不確定它會導致哪些性能問題。

Andy建議?

回答

1

老實說,這似乎是每個列表項矯枉過正管理權限的一點點,但如果這是你的要求... :)根據我的經驗,只是因爲人們有權修改所有這並不意味着項目他們將要編輯某人的其他物品(榮譽系統)。

我會創建兩個SharePoint組:

  • 貨品訪客 - 的人誰可以讀取所有列表項
  • 列表項成員 - 誰可以編輯所有列表項的人

然後,在列表設置中禁用「僅編輯您的項目」選項。

最後,在你的事件接收器,代碼將添加貨品遊客讀取,列出項目成員使用Contribute,並與貢獻受讓人。

這樣,如果新用戶以及需要讀取所有項目來了:它們添加到Visitors組。如果有一個需要管理所有項目的「管理員」類型的人:將其添加到成員組。更改受讓人將刪除舊受讓人並向CONTRIBUTE添加新受託人。

+0

嗨,謝謝你的回答:) 但不幸的是,要求嚴格要求,該項目只能由創建者和受讓人編輯。 與此同時,我得到了這個想法,爲所有人設置可編輯選項,並且檢查事件接收者(更新),如果當前登錄用戶是創建者或項目的受讓人。 這也會導致較低的性能影響。 我只怕缺乏安全因素,如果事件接收器被禁用,突然大家可以編輯任何東西。 (即使有榮譽制度,總會有黑羊;)) – 2010-07-14 07:22:42