2010-04-21 5 views
1

Вот сценарий ..Назначение группы разрешений на документ библиотеки

===== scanario 1 ===== 1. Библиотека документов "Gatorate Classic" 2. У меня есть четыре группы. группа Альфа - Роль - Читать Group Beta - Роль - Редактирование Group Epselon - Роль - Редактирование группы Gamma - Роль - Редактирование

===== scanario 2 ===== 1. Библиотека документов " Gatorate G2 " 2. У меня есть четыре группы. группа Альфа - Роль - Редактирование группы бета - Роль - Читать Group Epselon - Роль - Редактирование группы Gamma - Роль - Читать


Я пытался следовать этой ссылке, но 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); Спасибо Gabi ... – Axiom

+0

Возможно, вам нужно только разбить наследование роли в библиотеке, вы можете проверить, не было ли повреждено наследование роли, проверяя свойство булевского объекта HasUniqueRoleAssignments. И если вы нарушите передачу прав наследования наследования, она скопирует уже существующие привилегии, если вы не хотите, чтобы на скопированном объекте вы не получали никаких прав. –

 Смежные вопросы

  • Нет связанных вопросов^_^