2011-04-21 101 views
0

我有一个场景,我想让用户初始只能够在列表中创建项目并明确地给它们没有查看项目的权限。我将向他们提供他们自己的添加按钮(在列表之外),并且仅在使用工作流程创建之后为他们提供读取权限。SharePoint 2010使用API​​添加但没有查看权限创建权限级别

因此,我基本上需要的是具有additems权限的权限级别,但不包含viewitems。使用用户界面不能创建此权限级别。有没有人尝试使用API​​来做这件事? (我敢肯定,这是在SharePoint的早期版本可能)

回答

0

是的,这是一个使用枚举的SPBasePermissions位掩码。而且这个代码在2007年或2010年完美地工作。

E.g.通过ORing所有位来设置您的位掩码。

SPBasePermissions perms = SPBasePermissions.AddListItems | 
      SPBasePermissions.EditListItems | 
      SPBasePermissions.ViewListItems | 
      SPBasePermissions.OpenItems | 
... 

,然后创建一个新的角色:

 SPRoleDefinition roleDefinition = new SPRoleDefinition(); 

     roleDefinition.Name = "New Role Name"; 
     roleDefinition.Description = "Description"; 

     roleDefinition.BasePermissions = perms; 

     web.AllowUnsafeUpdates = true; 
     web.RoleDefinitions.Add(roleDefinition); 
     web.AllowUnsafeUpdates = false;