2010-05-07 59 views
2

我有一個列表,其中包含字段:標題,客戶端,項目,說明。如何限制SharePoint WSS3用戶僅編輯其專用視圖中的字段

對於分析師來說,有一個可見字段的視圖:標題,項目,描述。

就分析師的觀點而言,一切都沒有問題。但是,當他們需要修改點擊編輯的記錄時,他們看到並能夠修改「客戶」字段。

如何防止「客戶」字段可供組編輯?有沒有在WSS的方式或我需要尋找第三方列表組件?

回答

2

所有字段都有一組確定其在窗體中的可見性的屬性,例如「ShowInNewForm」,「ShowInEditForm」和「ShowInDisplayForm」。還有一些用於文件對話框,列表設置頁面以及其他一些地方,但是它已經越過了它。簡短的回答,是的,你可以讓這個字段不會在WSS的編輯表單中顯示出來,而不需要任何第三方組件。

如果您需要任何人都無法在編輯窗體中看到的字段(也就是說,沒有人應該能夠以他們的形式),那麼您需要修改「ShowInEditForm」爲true。這不能通過SharePoint UI直接修改,但使用對象模型非常簡單。

如果您需要某些人通過SharePoint用戶界面在某個時間點對其進行編輯,則您需要創建自定義編輯表單。這有點複雜,所以我會暫緩提供該指令,除非你聲明你需要沿着這條路線走下去(或者其他人通過這個答案並請求它)。不過,WSS 3.0完全有可能。

編輯

如果你知道已經知道如何插入內嵌C#代碼到一個ASPX頁面,您可以執行這個非常簡單地使用SharePoint Designer。首先,請按照this article中的說明操作,尤其要確保不要刪除默認的列表表單Web部件。現在,在您添加的自定義列表表單中,使其包含任何人都可以編輯的每個字段。最後一步是讓表單爲某些人隱藏這些字段。讓我們將它們默認爲Visible = false,並且如果用戶允許它們,則翻轉此開關。您可以通過檢查當前用戶是否爲指定組的一部分,或通過檢查用戶是否具有僅由這些組的人員擁有的特定權限級別來執行此操作。你將基本上寫下如下的代碼,我將使用檢查指定的組作爲例子。

using (SPWeb web = this.Web) 
{ 
    SPUser currUser = web.CurrentUser; 
    string[] listOfGroups = { "Group1Name", "Group2Name", "Group3Name" }; 
    foreach (string groupName in listOfGroups) 
    { 
     if (currUser.Groups.Contains(groupName)) 
     { 
    //Repeat this for each Control, refer to them by their ID. For example, this is for a control with the ID txtTitle. 
      txtTitle.Visible = true; 
     } 
    } 
} 

如果您不知道內聯代碼,則必須編寫一個帶有代碼隱藏的自定義ASPX頁面。將EditForm.aspx複製到一個新文件中 - 您應該在根據文章設置一個自定義列表表單後執行此操作。您也可以從頭開始構建新的ASPX頁面,但要確保包含SharePoint頁面的所有必需的內容佔位符。現在,該頁面當前繼承自Microsoft.SharePoint.WebPartPages.WebPartPage。我們需要創建從該類繼承的自定義代碼,並將頁面更改爲繼承該新的自定義代碼。在自定義代碼中,重寫OnLoad或OnInit方法之一,並在前面詳細介紹用戶的權限檢查。編譯代碼,將其部署到SharePoint服務器,它應該是功能性的。

+0

您好,感謝您的詳細答覆。 我的情況更接近您在迴應結束時描述的內容。我需要啓用一些用戶組來只編輯他們的字段,並防止他人編輯或(如果更容易)看到其他字段。 「ShowIn ...」屬性將無助於將這些應用於所有組。 我真的很感激,如果你能指導我的指示。 乾杯, V – val 2010-05-10 13:10:36

0

如果你想設置的字段隱藏或新的形式或列表的編輯表單頁面顯示它們...

轉到列表設置。 在高級設置中,啓用「允許管理內容類型」

通過這樣做,您將在列表設置頁面上獲得列表名稱鏈接。 打開鏈接並使用添加或刪除選項選擇要隱藏或隱藏的字段。

保存在此之後,再次禁用「允許內容類型的管理」,在高級設置...

完蛋了:)))

+1

嗨Umang,謝謝你的迴應。你的方式將完全隱藏每個人的領域,因此不允許任何用戶編輯該領域。 我的任務是隻讓一些用戶隱藏一個字段,比如說「讀者」,但「貢獻者」可以查看和編輯該字段。 謝謝, Val – val 2010-07-07 16:58:11

相關問題