2010-02-02 55 views
1

(關於MOSS 2007)確實的SharePoint有itemwise權限,就像它具有清單明智權限

我已經創建了其中一列被稱爲用戶分配一個SharePoint列表 - 這是類型的查找列 - 人和組。

我選擇從Active Directory用戶進入名單的這一領域。在此列表中

所以不同的項目有不同的用戶分配

我對這個列表中創建的權限讀取和寫入Active Directory中的用戶。

這樣當到SharePoint網站,他的證書特定用戶登錄。他已經讀取和寫入列表。

現在有沒有在SharePoint提供途徑,使用戶不會看到整個列表,當他們登錄到網站。他只看到用戶分配的列表中的項目是他的唯一項目。

回答

1

如果權限確實建立正確的,你只有去列表設置,高級設置,項目級權限和「讀訪問:指定用戶可以讀取哪些項目」來定義自己。

如果用戶不是這些項目的創建者,您需要轉到列表設置,視圖(在最底部),修改所有項目視圖(或者您擁有默認值),轉到器部和添加過濾器,如:「顯示項目只有當以下條件爲真」,「顯示項目時,列」 指派給等於[我]

+0

添加過濾器是很好..但隨後用戶可以隨時失禮的行爲,刪除/修改不屬於他的物品。 我們可以做些什麼呢? – silverkid 2010-02-02 13:19:34

+0

在上述兩個示例中,未經用戶許可的用戶都看不到它們。 – 2010-02-02 13:57:46

1

我已經實現了這樣的解決方案一段時間。這是可能的,但

  1. 如果長期使用和/或數據量很大,這會打擊性能

如果需要做

  • 許多工作沒有這些是你有問題,那麼你可以:

    • 創建代碼,在項目執行BreakRoleInheritance(),然後添加ViewListitems權限在「用戶分配」欄中的用戶。您可以在這裏找到示例代碼,例如:http://social.msdn.microsoft.com/Forums/en/sharepointecm/thread/581e456c-db3c-44f1-b958-a824d95a2536(或者在Google中搜索「SPPrincipal」和「SPRoleAssignment」以獲取更多信息)
    • 使此代碼在添加或更新項目時被調用(您必須等待「-ed」事件,因爲在這些事件的同步版本中,您還不能更改權限,例如在「ItemAdding」中沒有創建任何項目)。您可以通過向列表添加事件處理程序來實現此目的。