1

我需要在 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 管理员显示所有网站模板?谢谢。

4

0 回答 0