SharePoint Online 站点模板中权限的设置
SharePoint Online可以使用PnP引擎部署站点模板。这个模板的功能非常强大,除了可以定制主题,外观以外,还可以生成list并导入数据,生成文档库,导入文档等等。
今天重点说一下其中的站点权限部分。目前最新的Schema版本是202002,完整版可以参考 https://github.com/pnp/PnP-Provisioning-Schema/blob/master/OfficeDevPnP.ProvisioningSchema/ProvisioningSchema-2020-02.xsd。另外还有一个非常详细的样例文件,链接是:https://github.com/pnp/PnP-Provisioning-Schema/blob/master/Samples/ProvisioningSchema-2020-02-FullSample-01.xml。
1 <pnp:Security BreakRoleInheritance="true"
2 CopyRoleAssignments="false"
3 ClearSubscopes="true"
4 AssociatedGroups="Test Value"
5 AssociatedMemberGroup="{parameter:AssociatedMemberGroup}"
6 AssociatedOwnerGroup="{parameter:AssociatedOwnerGroup}"
7 AssociatedVisitorGroup="{parameter:AssociatedVisitorGroup}"
8 RemoveExistingUniqueRoleAssignments="true"
9 ResetRoleInheritance="true" >
10 <pnp:AdditionalAdministrators ClearExistingItems="false">
11 <pnp:User Name="user@contoso.com"/>
12 <pnp:User Name="U_SHAREPOINT_ADMINS"/>
13 </pnp:AdditionalAdministrators>
14 <pnp:AdditionalOwners ClearExistingItems="true">
15 <pnp:User Name="user@contoso.com"/>
16 <pnp:User Name="U_SHAREPOINT_ADMINS"/>
17 </pnp:AdditionalOwners>
18 <pnp:AdditionalMembers>
19 <pnp:User Name="user@contoso.com"/>
20 <pnp:User Name="U_SHAREPOINT_ADMINS"/>
21 </pnp:AdditionalMembers>
22 <pnp:AdditionalVisitors>
23 <pnp:User Name="user@contoso.com"/>
24 <pnp:User Name="U_SHAREPOINT_ADMINS"/>
25 </pnp:AdditionalVisitors>
26 <pnp:SiteGroups>
27 <pnp:SiteGroup
28 Title="Power Users"
29 Description="Group of Power Users"
30 Owner="admin@contoso.com">
31 <pnp:Members ClearExistingItems="true">
32 <pnp:User Name="user1@contoso.com" />
33 <pnp:User Name="user2@contoso.com" />
34 <pnp:User Name="user3@contoso.com" />
35 </pnp:Members>
36 </pnp:SiteGroup>
37 </pnp:SiteGroups>
38 <pnp:Permissions>
39 <pnp:RoleDefinitions>
40 <pnp:RoleDefinition Name="Manage List Items" Description="Allows a user to manage list items">
41 <pnp:Permissions>
42 <pnp:Permission>ViewListItems</pnp:Permission>
43 <pnp:Permission>AddListItems</pnp:Permission>
44 <pnp:Permission>EditListItems</pnp:Permission>
45 <pnp:Permission>DeleteListItems</pnp:Permission>
46 </pnp:Permissions>
47 </pnp:RoleDefinition>
48 </pnp:RoleDefinitions>
49 <pnp:RoleAssignments>
50 <pnp:RoleAssignment Principal="Power Users" RoleDefinition="Manage List Items"/>
51 <pnp:RoleAssignment Principal="user1@contoso.com" RoleDefinition="Manage List Items"/>
52 <pnp:RoleAssignment Principal="user2@contoso.com" RoleDefinition="Full Control"/>
53 <pnp:RoleAssignment Principal="user3@contoso.com" RoleDefinition="Full Control" Remove="true"/>
54 </pnp:RoleAssignments>
55 </pnp:Permissions>
56 </pnp:Security>
我们从中截取<pnp:Security>部分来看看如何自定义站点权限。
代码第10行到第13行,可以指定site collection的管理员。
14行到17行,指定站点的管理员,要注意的是这个和site collection管理员是不一样的。
18-25行,指定站点的成员和访问者。
26-37行创建一个新的SharePoint Group,并且添加用户和其他组到这个新组之中。
39-48行创建的新的permission level.
49-54行指定权限到user或group。指定Group的时候,要使用“c:0t.c|tenant|{groupID}”作为Principal的参数,另外特别需要注意的是,Full Control,Edit,Read权限像样例填写是不能正确应用的,需要分别改成Administrator,Editor和Reader。
另外可以针对列表和文档库单独设置权限。在<pnp:ListInstance>下面,可以找到如下单独的权限设置部分。
1 <pnp:Security>
2 <pnp:BreakRoleInheritance CopyRoleAssignments="true" ClearSubscopes="true">
3 <pnp:RoleAssignment Principal="user1@contoso.com" RoleDefinition="Full Control"/>
4 <pnp:RoleAssignment Principal="user2@contoso.com" RoleDefinition="Edit"/>
5 <pnp:RoleAssignment Principal="user3@contoso.com" RoleDefinition="View Only"/>
6 </pnp:BreakRoleInheritance>
7 </pnp:Security>
在设置好模板文件后,可以使用powershell 进行测试
Apply-PnPProvisioningTemplate -Path template.xml #部署全部模板 or Apply-PnPProvisioningTemplate -Path template.xml -Handlers SiteSecurity #只部署<pnp:Security>部分
SharePoint Online 站点模板中权限的设置的更多相关文章
- 浅谈SharePoint 2013 站点模板开发 转载自http://www.cnblogs.com/jianyus/p/3511550.html
一直以来所接触的SharePoint开发,都是Designer配合Visual Studio,前者设计页面,后者开发功能,相互合作,完成SharePoint网站开发.直到SharePoint 2013 ...
- 浅谈SharePoint 2013 站点模板开发
一直以来所接触的SharePoint开发,都是Designer配合Visual Studio,前者设计页面,后者开发功能,相互合作,完成SharePoint网站开发.直到SharePoint 2013 ...
- SharePoint 2013 图文开发系列之定义站点模板
SharePoint站点模板是一个非常好的功能,方便我们开发一类网站,然后在此基础上做二次开发,对于SharePoint的使用,有着举足轻重的作用. 因为篇幅比较长,所以加上目录,方便大家查看: 一. ...
- pageadmin CMS网站制作教程:模板中的站点数据调用
pageadmin CMS网站建设教程:模板中的站点数据调用 1.获取当前站点Id,返回int数字 Html.CurrentSiteId() 2.获取当前站点url地址,返回string字符串 Htm ...
- 在C#开发中如何使用Client Object Model客户端代码获得SharePoint 网站、列表的权限情况
自从人类学会了使用火,烤制的方式替代了人类的消化系统部分功能,从此人类的消化系统更加简单,加速了人脑的进化:自从SharePoint 2010开始有了Client Side Object Model ...
- 为 Azure Resource Manager 中的虚拟机设置 WinRM 访问权限
Azure 服务管理中的 WinRM 与 Azure Resource Manager Note Azure 具有用于创建和处理资源的两个不同的部署模型:Resource Manager 和经典. 本 ...
- eclipse 设置文本模板中 insert variable... 函数 详解
设置文本模板简要图: 设置文本模板详细过程:http://www.cnblogs.com/lsy131479/p/8478711.html 此处引出设置文本模板中 insert variable... ...
- 编写Java程序,实现对兵营类的封装,将兵营类中的所有属性设置为私有访问权限,方法设置为公有访问权限
返回本章节 返回作业目录 需求说明: 实现对兵营类的封装 将兵营类中的所有属性设置为私有访问权限. 将兵营类中所有属性的赋值方法设置为公有访问权限. 要求兵营名称的长度在4-8位之间. 要求兵营士兵的 ...
- O365(世纪互联)SharePoint 之站点个性化
前言 上一篇文章中,我们简单介绍了如何使用O365中SharePoint Online文档库,SharePoint Online的优点就是提供给我们很多非常方便开箱即用的功能,让我们快速的搭建站点,方 ...
随机推荐
- C# 数组 ArrayList List<T>区别
System.Collenctions和System.Collenctions.Generic 中提供了很多列表.集合和数组.例如:List<T>集合,数组Int[],String[] . ...
- Core3.0使用Swagger接口文档
前言 此方法为百度搜索结果,原文链接找不到了 步骤 1.引用Nuget Swashbuckle.AspNetCore 2.Startup.cs配置 //注册swagger服务,定义1个或者多个swag ...
- Autofac官方文档翻译--一、注册组件--1注册概念
官方文档:http://docs.autofac.org/en/latest/register/registration.html 一.注册概念 使用Autofac 注册组件,通过创建一个Contai ...
- 文本单词one-hot编码
单词->字母->向量 神经网络是建立在数学的基础上进行计算的,因此对数字更敏感,不管是什么样的特征数据都需要以向量的形式喂入神经网络,无论是图片.文本.音频.视频都是一样. one-hot ...
- TurtleBot3 Waffle (tx2版华夫)(6)
重要提示:请在配网通信成功后进行操作,配网后再次开机需要重新验证通信: 重要提示:[Remote PC]代表PC端.[TurtelBot]代表树莓派端: 操作步骤如下: 1)[Remote PC] 启 ...
- golang unsafe.Pointer与uintptr
原文地址:https://blog.fanscore.cn/p/33/ 先说结论 uintptr 是一个地址数值,它不是指针,与地址上的对象没有引用关系,垃圾回收器不会因为有一个uintptr类型的值 ...
- 日常入坑1-Calendar类
1.当前时间是一号的时候,通过计算上一天的日期的时候,需要注意了 Calendar calendar = Calendar.getInstance();calendar.set(2019,10,1); ...
- livy提交spark应用
spark-submit的使用shell时时灵活性较低,livy作为spark提交的一种工具,是使用接口或者java客户端的方式提交,可以集成到web应用中 1.客户端提交的方式 http://l ...
- java的多线程:java安全问题产生的原因与JMM的关系
一.多线程产生安全问题 1.Java内存模型 共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见. 从抽象的角度来看,JMM定义了线程和主内存 ...
- 【函数分享】每日PHP函数分享(2021-1-11)
str_shuffle() 随机打乱一个字符串. string str_shuffle ( string $str ) 参数描述 str 输入字符串.返回值:返回打乱后的字符串.实例: < ...