2010-04-21 3 views
1

을 문서화하는 그룹의 권한을 할당하면 내가 네 그룹이 시나리오 ..여기 라이브러리

===== scanario 1 개 ===== 1. 문서 라이브러리 "Gatorate 클래식" 2입니다. 그룹 알파 - 역할 - 역할 - - 그룹 베타 읽기 그룹 Epselon 편집 - 역할 - 그룹 감마 편집 - 역할 -

을 편집 ===== scanario 2 ===== 1. 문서 라이브러리 " Gatorate G2 " 2. 네 그룹이 있습니다. 그룹 알파 - 역할 - 역할 - - 역할 - - 그룹 감마을 편집 역할 - - 그룹 Epselon 읽기 그룹 베타를 편집


을 읽고 나는이 링크하지만 http://www.csharpest.net/?p=74를 따라하려하지만 난이 생각 해달라고 내 해결책. 누구나 이런 시나리오가 있었나요? 동일한 그룹이지만 다른 레벨 액세스.

답변

1

나는 문서 라이브러리 (페이지 포함) 의 권한 수준을 변경하지만 페이지에 대한 권한을 갖기 위해 다른 필요성이 있습니다.

  string groupname = "Group Alpha"; 
      SPWeb web = getSPWeb(); 
      web.AllowUnsafeUpdates = true; 
      SPGroup grupo = web.Groups[groupname]; 
      SPFile arq = null; 
      SPFolder pasta = web.GetFolder("pages"); 
      arq = pasta.Files["page1.aspx"]; 

      if (arq.InDocumentLibrary) 
      { 
       SPListItem item = arq.Item; 
       if (!item.HasUniqueRoleAssignments) 
        item.BreakRoleInheritance(false); 
       SPRoleAssignmentCollection roles = item.RoleAssignments; 
       while (roles.Count > 0) 
        roles.Remove(0); 

       SPRoleAssignment atrib1 = new SPRoleAssignment(web.Groups[groupname] as SPPrincipal); 
       atrib1.RoleDefinitionBindings.Add(web.RoleDefinitions.GetByType(SPRoleType.Administrator)); 
       roles.Add(atrib1); 

      } 
      web.AllowUnsafeUpdates = false; 

희망이 도움이 될 것입니다.

+0

감사합니다. 가브리엘, 분명히 당신의 코드입니다. 감사합니다. – Axiom

+0

나는 계속해서 오류를 겪고 있습니다. 권한을 상속 한 개체에는이 작업을 수행 할 수 없습니다. 이 줄을 추가 했으므로 오류가 없어지고 내가 추가 한 역할을 가진 문서 라이브러리에 대한 그룹이 추가되었습니다. webSite.BreakRoleInheritance (true); Thanks Gabi ... – Axiom

+0

필요한 라이브러리의 역할 상속을 중단해야하며 HasUniqueRoleAssignments 부울 속성을 확인하여 역할 상속이 이미 손상되었는지 확인할 수 있습니다. true를 전달하는 역할 상속을 깨뜨린 경우 복사 된 객체에 대한 권한이 없으면 false를 전달해야하는 경우 이미있는 권한을 복사합니다. –