2011-10-12 84 views
1

我已在sharepoint 2007中創建了啓用電子郵件的文檔庫。我們的客戶在本文檔中使用了Crystal報表並存儲了報表。圖書館。我現在在該庫中有大約900個文檔,並且客戶端要求我提供明智的權限。他們使用員工ID命名文件。他們希望這些文件對適當的員工和他/她的祕書是可見的。sharepoint文檔庫中的明智權限

任何人都可以幫助我如何實現這個編程?有沒有適當的方式來做到這一點?

感謝,

回答

0

您可以創建一個event handler將打破文件權限繼承和改變你需要的權限。

另一種選擇是將文件移動到預先配置了您想要的權限的文件夾(甚至單獨的文檔庫)。

第一個選項更容易實現,但是安全管理可能變得......凌亂。

Here是讓你開始打破和設置文檔權限的一些代碼。

public string ItemPermission(string SitePath) 
    { 
     string ReturnVal = ""; 

     try 
     { 
      SPSite WebApp = new SPSite(SitePath); 
      SPWeb Site = WebApp.OpenWeb(); 
      SPList list = Site.Lists["TestDocLib"]; 
      SPListItem item = list.Items[0]; 
      SPRoleDefinition RoleDefinition = Site.RoleDefinitions.GetByType(SPRoleType.Contributor); 
      SPRoleAssignment RoleAssignment = new SPRoleAssignment("<domain>\\<user>", "email", "name", "notes"); 

      RoleAssignment.RoleDefinitionBindings.Add(RoleDefinition); 

      if(!item.HasUniqueRoleAssignments) 
      { 
       item.BreakRoleInheritance(true);     
      } 

      item.RoleAssignments.Add(RoleAssignment); 
      item.Update(); 
     } 
     catch (Exception ex) 
     { 
      ReturnVal += "Permission not set, reason: " + ex.Message; 
     } 
     return ReturnVal; 
    } 
+0

如果我利用這段代碼,我如何給大約900人提供唯一的權限? – user346514

+0

我會將詳細信息放在數據庫中以管理所涉及的排列,並通過調用獲取我想要迭代的數據。 – Nat

+0

但是如果我自己做了整件事情,我會將用戶設置爲針對這些組的常見訪問要求和權限文件夾組。 – Nat

0

無需編寫代碼,您可以創建爲每個員工一個文件夾和文件夾權限設置爲僅由該員工和管理人員訪問。

對於經理,您仍然可以製作視圖,以顯示所有沒有文件夾的列表項目。