我需要在 C#hide
中使用所有编程。default site templates from a custom user group except Blog and custom site templates
我有Level - 2 SharePoint Coordinator group
它应该允许用户从我的自定义站点模板和博客创建站点,所有其他站点模板都应该被隐藏。
我Level - 3 SharePoint Coordinator group
让它具有完全控制权限级别,因此该组用户应该拥有所有可用的站点模板。
我的代码:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWeb web = properties.Feature.Parent as SPWeb;
SPWebTemplateCollection templates = web.GetAvailableWebTemplates(1033, true);
foreach (SPWebTemplate template in templates)
{
if (template.Name != "Blog" && template.DisplayCategory =="CUSTOM")
{
//how to attach the user group to a site template or any other suggestions
}
}
}
我的问题是: 那么如何将用户组附加到站点模板或如何将自定义站点模板显示到 Level - 2 和 Level - 3 组的所有站点模板?
部分答案。
谢谢西加戴夫。我能够隐藏除博客和我的自定义站点模板之外的默认站点模板。下面是代码。
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
try
{
SPWeb web = properties.Feature.Parent as SPWeb;
SPWebTemplateCollection templates = web.GetAvailableWebTemplates((uint)1033);
Collection<SPWebTemplate> collection = new Collection<SPWebTemplate>();
foreach (SPWebTemplate template in templates)
{
if(template.Name == "BLOG#0" || template.DisplayCategory == "Custom")
collection.Add(template);
}
web.SetAvailableWebTemplates(collection, (uint)1033);
web.Update();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
}
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
try
{
SPWeb web = properties.Feature.Parent as SPWeb;
// Show all available web templates
web.AllowAllWebTemplates();
web.Update();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
}
此代码隐藏所有用户的模板,包括网站集管理员,如何启用或向 SC 管理员显示所有网站模板?谢谢。