我在sharepoint中有一个事件列表,需要禁止用户在新事件表单中创建会议工作区。羞于自定义新的事件表单(打破附件支持),如何做到这一点?
答案 0 :(得分:2)
默认情况下,为了让用户创建会议工作区,他们需要是管理员或站点所有者(特别是他们需要“创建站点”权限)。如果您未授予他们此权限,他们将无法创建会议工作区。
这将禁止用户在设置了这些权限的站点下创建任何站点。我不知道如何限制对特定网站定义的访问,但仍然允许用户创建不同的网站定义。
答案 1 :(得分:0)
我认为没有一种支持的方式来做到这一点。一种选择是在C:\ Program Files \ Common Files \ Microsoft Shared \ web server extensions \ 12 \ TEMPLATE \ 1033 \ XML \ WEBTEMP.XML中编辑WEBTEMP.XML文件(当然首先进行备份)。将这些行注释如下:
<!-- <Template Name="MPS" ID="2">
...
</Template> -->
编辑此文件并在服务器场中的每台服务器上执行IISRESET后,您将无法再创建会议工作区。
答案 2 :(得分:0)
如果你可以在主页面上获得一些javascript,我想出了这个小小的黑客。
它确实有一些缺点,MS可能会释放一个修补程序或服务包:
更改“使用会议工作区来组织此事件的与会者,议程,文档,会议记录和其他详细信息”复选框,以便字符串“CrossProjectLinkField”不再出现在名称中,或者。 ..
他们可以在其他一些OOTB标记的某个其他输入元素的名称中使用相同的字符串
在梯形图中(我现在并不完全确定它是假的),如果它们运行的是运行此脚本的母版页,这些输入将被禁用。
但这是我可以处理的风险。您可以在依赖客户ID和其他人控制的名称时随时运行这些风险。
<script type="text/javascript">
var anchors = document.getElementsByTagName('input');
for(var i=0;i<anchors.length;i++)
{
var anchorName = anchors[i].name.match('CrossProjectLinkField');
if(anchorName != null)
{
anchors[i].disabled = true;
break;
}
}
</script>
这样做是找到允许用户创建会议工作区并禁用它的复选框,以便他们无法检查它。问题解决了!
答案 3 :(得分:0)
使用功能接收器创建一个Web范围功能,该功能接收器删除激活该功能的当前Web,并使其抛出一个SPException,指出该模板无法使用。然后创建Web应用程序或服务器场范围功能订书机,将先前功能固定到要阻止的网站定义。在Web应用程序或服务器场上激活该功能。然后当有人从其中一个网站定义创建一个网站时,该网站将被删除,并向用户显示一个错误页面,显示抛出的SPException文本。