SharePoint SPListItem 权限设置
namespace Microsoft.SharePoint
{
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.SharePoint; public static class PermissionManager
{ //SPGroup group = web.Groups[0];
//SPUser user = web.Users[0];
//SPUser user2 = web.EnsureUser("mangaldas.mano");
//SPUser user3 = web.EnsureUser("Domain Users");
//SPPrincipal[] principals = { group, user, user2, user3 }; #region Adding Permissions to an item /// <summary>
/// Set Permissions
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="user">SPUser</param>
/// <param name="roleType">SPRoleType</param>
public static void SetPermissions(SPListItem item, SPUser user, SPRoleType roleType)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
SetPermissions(item, (SPPrincipal)user, roleDefinition);
}
}
public static void SetPermissions(SPListItem item, SPUser user, string rolename)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[rolename];
if (roleDefinition != null)
SetPermissions(item, (SPPrincipal)user, roleDefinition);
}
}
public static void SetPermissions(SPListItem item, string groupName, string rolename)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[rolename];
SPGroup group = item.Web.Groups[groupName];
if (roleDefinition != null && group != null)
SetPermissions(item, (SPPrincipal)group, roleDefinition);
}
}
public static void SetPermissions(SPListItem item, string groupName, SPRoleType roleType)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
SPGroup group = item.Web.Groups[groupName];
if (group != null)
SetPermissions(item, (SPPrincipal)group, roleDefinition);
}
} /// <summary>
/// Set Permissions
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="principals">IEnumerable</param>
/// <param name="roleType">SPRoleType</param>
public static void SetPermissions(SPListItem item, IEnumerable<SPPrincipal> principals, SPRoleType roleType)
{
if (item != null)
{
foreach (SPPrincipal principal in principals)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
SetPermissions(item, principal, roleDefinition);
}
}
} /// <summary>
/// Set Permissions
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="principal">SPPrincipal</param>
/// <param name="roleType">SPRoleType</param>
public static void SetPermissions(SPListItem item, SPPrincipal principal, SPRoleType roleType)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
SetPermissions(item, principal, roleDefinition);
}
} /// <summary>
/// Set Permissions
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="user">SPUser</param>
/// <param name="roleDefinition">SPRoleDefinition</param>
public static void SetPermissions(SPListItem item, SPUser user, SPRoleDefinition roleDefinition)
{
if (item != null)
{
SetPermissions(item, (SPPrincipal)user, roleDefinition);
}
} /// <summary>
/// Set Permissions
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="principal">SPPrincipal</param>
/// <param name="roleDefinition">SPRoleDefinition</param>
public static void SetPermissions(SPListItem item, SPPrincipal principal, SPRoleDefinition roleDefinition)
{
if (item != null)
{
BreakRoleSPListItem(item);
SPRoleAssignment roleAssignment = new SPRoleAssignment(principal);
roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
item.RoleAssignments.Add(roleAssignment);
}
} #endregion #region Deleting all user Permissions from an item /// <summary>
/// remove permisions
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="user">SPUser</param>
public static void RemovePermissions(SPListItem item, SPUser user)
{
if (item != null)
{
RemovePermissions(item, user as SPPrincipal);
}
} public static void RemovePermissions(SPListItem item, string groupName)
{
if (item != null)
{
SPGroup group = item.Web.Groups[groupName];
if (group != null)
RemovePermissions(item, group as SPPrincipal);
}
} /// <summary>
/// remove permisions
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="principal">SPPrincipal</param>
public static void RemovePermissions(SPListItem item, SPPrincipal principal)
{
if (item != null)
{
BreakRoleSPListItem(item);
item.RoleAssignments.Remove(principal);
// item.SystemUpdate();
}
} #endregion #region Removing specific roles from an item /// <summary>
/// remove permission
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="principal">SPPrincipal</param>
/// <param name="roleDefinition">SPRoleDefinition</param>
public static void RemovePermissionsSpecificRole(SPListItem item, SPPrincipal principal, SPRoleDefinition roleDefinition)
{
if (item != null)
{
SPRoleAssignment roleAssignment = item.RoleAssignments.GetAssignmentByPrincipal(principal);
if (roleAssignment != null)
{
if (roleAssignment.RoleDefinitionBindings.Contains(roleDefinition))
{
roleAssignment.RoleDefinitionBindings.Remove(roleDefinition);
roleAssignment.Update();
}
}
}
} /// <summary>
/// remove permission
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="principal">SPPrincipal</param>
/// <param name="roleType">SPRoleType</param>
public static void RemovePermissionsSpecificRole(SPListItem item, SPPrincipal principal, SPRoleType roleType)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
RemovePermissionsSpecificRole(item, principal, roleDefinition);
}
}
public static void RemovePermissionsSpecificRole(SPListItem item, SPUser user, string roleName)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[roleName];
if (roleDefinition != null)
RemovePermissionsSpecificRole(item, user as SPPrincipal, roleDefinition);
}
}
public static void RemovePermissionsSpecificRole(SPListItem item, string groupName, string roleName)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[roleName];
SPGroup group = item.Web.Groups[groupName];
if (group != null && roleDefinition != null)
RemovePermissionsSpecificRole(item, group as SPPrincipal, roleDefinition);
}
}
#endregion #region Updating or Modifying Permissions on an item /// <summary>
/// modify Permissions
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="principal">SPPrincipal</param>
/// <param name="roleType">SPRoleType</param>
public static void ChangePermissions(SPListItem item, SPPrincipal principal, SPRoleType roleType)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
ChangePermissions(item, principal, roleDefinition);
}
}
public static void ChangePermissions(SPListItem item, SPUser user, string roleName)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[roleName];
if (roleDefinition != null)
ChangePermissions(item, user as SPPrincipal, roleDefinition);
}
} public static void ChangePermissions(SPListItem item, string groupName, string roleName)
{
if (item != null)
{
SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[roleName];
SPGroup group = item.Web.Groups[groupName];
if (roleDefinition != null)
ChangePermissions(item, group as SPPrincipal, roleDefinition);
}
}
/// <summary>
/// modify Permissions
/// </summary>
/// <param name="item">SPListItem</param>
/// <param name="principal">SPPrincipal</param>
/// <param name="roleDefinition">SPRoleDefinition</param>
public static void ChangePermissions(SPListItem item, SPPrincipal principal, SPRoleDefinition roleDefinition)
{
//SPRoleAssignment roleAssignment = item.RoleAssignments.GetAssignmentByPrincipal(principal); //if (roleAssignment != null)
//{
// roleAssignment.RoleDefinitionBindings.RemoveAll();
// roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
// roleAssignment.Update();
//}
RemovePermissions(item, principal);
SetPermissions(item, principal, roleDefinition);
} #endregion public static void BreakRoleSPListItem(SPListItem item)
{
if (item.HasUniqueRoleAssignments)
{
item.ResetRoleInheritance();
}
item.BreakRoleInheritance(false);
} public static SPUser GetSPUserFromSPListItemByFieldName(SPListItem spItem, string fieldName)
{
SPFieldUser field = spItem.Fields[fieldName] as SPFieldUser;
if (field != null && spItem[fieldName] != null)
{
SPFieldUserValue fieldValue = field.GetFieldValue(spItem[fieldName].ToString()) as SPFieldUserValue;
if (fieldValue != null)
{
return fieldValue.User;
}
}
return null;
}
class DisabledItemEventsScope : SPItemEventReceiver, IDisposable
{
public DisabledItemEventsScope()
{
this.EventFiringEnabled = false;
}
#region IDisposable Members
public void Dispose()
{
this.EventFiringEnabled = true;
}
#endregion
}
public static void SaveListItem(SPListItem item)
{
using (DisabledItemEventsScope scope = new DisabledItemEventsScope())
{
item.SystemUpdate();
}
}
}
}
http://blog.csdn.net/minglelui/article/details/6731824
SharePoint SPListItem 权限设置的更多相关文章
- sharepoint 调查问卷权限设置
参考网址:http://www.cnblogs.com/mybi/archive/2011/04/18/2019935.html 按文章设置后发现访问时提示没有权限. 于是把新权限(问卷回复)的权限组 ...
- SharePoint 列表权限控制
一提到sharepoint 我相信权限控制一定会是一个很重要的话题,尤其是对列表的权限控制,创建.修改.查看权限.其实网上这方面的资料已经很多了,尤其是以下2篇文章,后来索性把CodeArt_Perm ...
- Atitit godaddy 文件权限 root权限设置
Atitit godaddy 文件权限 root权限设置 1. ubuntu需要先登录,再su切换到root1 2. sudo 授权许可使用的su,也是受限制的su1 3. ubuntu默认吗roo ...
- Linux 权限设置chmod
Linux中设置权限,一般用chmod命令 1.介绍 权限设置chmod 功能:改变权限命令.常用参数: 1=x(执行权execute) 2=w(写权write) 4=r(读权Read) setuid ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(23)-设置角色遗留问题和为权限设置角色以及EasyUI Tabs的使用
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
- MAC OS X的ACL扩展权限设置
在WEB开发时,网站是以_www的用户运行的,而我在本地是以liuwencan的用户编辑的.这就带来一个问题:如果所有文件属于liuwencan,那么网站运行需要写文件时就因无权限而失败:如果所有文件 ...
- C#-WinForm-MDI窗体容器、权限设置
MDI窗体容器 - 放窗体的容器 窗体时顶级控件,是不允许放到其他的控件或窗体中的 (李献策lxc) 窗体属性中有一个属性:IsMdiContainer - 确定该窗体是否是MDI容器 在窗体中放一个 ...
- ACL权限设置命令setfacl和getfacl命令
ACL权限设置命令setfacl和getfacl命令 setfacl命令是用来在命令行里设置ACL(访问控制列表).在命令行里,一系列的命令跟随以一系列的文件名. [TOC] 选项 |参数|说明| ...
- MDI窗体容器、权限设置
一.MDI窗体容器: 1.功能: 它可以让其它窗体在它的内部打开,无法超出它的范围 将某个窗体的属性:IsMdiContainer设置为true - 窗口样式 2.问题: (1)如何将其它窗体在它的内 ...
随机推荐
- BZOJ.4571.[SCOI2016]美味(主席树 贪心)
题目链接 要求 \(b\ xor\ (a_j+x)\) 最大,应让 \(a_j+x\) 的最高位尽可能与b相反.带个减法Trie树好像很难做?反正我不会. 从最高位开始,如果这位b是0/1,判断是否存 ...
- Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息
Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息 本文目录: 获取手机信息 设置权限 申请权限 查询联系人 获取手机定位信息 调用高德地图,设置显示2个坐标点的位置,以及 ...
- 使用 IntraWeb (14) - 基本控件之 TIWHRule、TIWRectangle
TIWHRule //一条横线, 对应 Html 中的 <hr/> TIWRectangle //矩形; 中间可以有行文本, 文本可任意对齐 TIWHRule 所在单元及继承链: IWHT ...
- JTAG Simplified
JTAG Simplified So the other day, I explored the JTAG bus interface which is frequently found in CPL ...
- [Go] 第一个单词首字母变大写:Ucfirst(),第一个单词首字母变小写:Lcfirst()
import ( "unicode" ) func Ucfirst(str string) string { for i, v := range str { return stri ...
- Java-JVM-GC
http://www.cnblogs.com/zhguang/p/Java-JVM-GC.html
- MySQL是如何利用索引的
http://fordba.com/spend-10-min-to-understand-how-mysql-use-index.html
- MySQL查询报错 ERROR: No query specified
今天1网友,查询报错ERROR: No query specified,随后它发来截图. root case:查询语法错误 \G后面不能再加分号;,由于\G在功能上等同于;,假设加了分号,那么就是;; ...
- CentOS 安装 nexus (maven 私服)
原文:https://www.sunjianhua.cn/archives/centos-nexus.html 1.下载 wget http://download.sonatype.com/nexus ...
- java根据模板导出PDF详细教程
原文:https://blog.csdn.net/pengyufight/article/details/75305128 题记:由于业务的需要,需要根据模板定制pdf文档,经测试根据模板导出word ...