Exemplo n.º 1
0
        internal static void RemovevDir(string applicationPoolName, string vDirName, string vDirPath)
        {
            using (new SPMonitoredScope("Remove Virtual Directory"))
            {
                try
                {
                    foreach (Site site in manager.Sites)
                    {
                        Microsoft.Web.Administration.Application siteServices = site.Applications.SingleOrDefault(app => app.ApplicationPoolName == applicationPoolName);

                        if (siteServices != null && siteServices.ApplicationPoolName == applicationPoolName)
                        {
                            try
                            {
                                VirtualDirectory login = siteServices.VirtualDirectories[vDirName];
                                if (login != null)
                                {
                                    siteServices.VirtualDirectories.Remove(login);
                                }
                            }
                            catch { }
                        }
                    }

                    manager.CommitChanges();
                }
                catch (Exception ex)
                {
                    ProviderLogging.LogError(ex);
                }
            }
            return;
        }
Exemplo n.º 2
0
        internal static void AppendSectionGroupZimbra(ref XmlDocument webConfig, string[] properties = null)
        {
            using (new SPMonitoredScope("Append Group Zimbra"))
            {
                try
                {
                    string fullname = Assembly.GetExecutingAssembly().FullName;
                    fullname = fullname.Replace("ClubCloud.Provider", "ClubCloud.Zimbra");
                    XmlNode configuration = webConfig.SelectSingleNode("/configuration");

                    bool section = ContainsNode("name", "Zimbra", "/configuration/configSections", ref webConfig);

                    //Section
                    XmlNode configSections = webConfig.SelectSingleNode("/configuration/configSections");
                    if (configSections != null && !section)
                    {
                        XmlNode      sectionGroup  = webConfig.CreateNode(XmlNodeType.Element, "sectionGroup", "");
                        XmlAttribute nameAttribute = webConfig.CreateAttribute("name");
                        nameAttribute.Value = "Zimbra";
                        sectionGroup.Attributes.Append(nameAttribute);
                        sectionGroup.InnerXml = string.Format("<section name=\"Configuration\" type=\"ClubCloud.Zimbra.Service.ZimbraConfigurationHandler, {0} \" />", fullname);
                        configSections.AppendChild(sectionGroup);
                    }

                    bool exists = false;

                    foreach (XmlNode node in webConfig.ChildNodes)
                    {
                        if (node.Name == "Zimbra")
                        {
                            exists = true;
                            break;
                        }
                    }
                    if (!exists)
                    {
                        XmlNode ZimbraSection = webConfig.CreateNode(XmlNodeType.Element, "Zimbra", "");
                        string  config        = "<Configuration><Server Name=\"{0}\" ServerName=\"{1}\" UserName=\"{2}\" Password=\"{3}\" IsAdmin=\"{4}\" Encoded=\"{5}\" /><Binding MaxReceivedMessageSize=\"{6}\" /></Configuration>";

                        ZimbraSection.InnerXml = config;

                        if (properties != null)
                        {
                            string innerXML = string.Format(config, properties);
                            ZimbraSection.InnerXml = innerXML;
                        }

                        //ZimbraSection.InnerXml = "<Configuration><Server Name=\"ClubCloud\" ServerName=\"mail.clubcloud.nl\" UserName=\"[email protected]\" Password=\"rjm557308453!\" IsAdmin=\"true\" Encoded=\"false\" /><Binding MaxReceivedMessageSize=\"2147483647\" /></Configuration>";
                        configuration.InsertAfter(ZimbraSection, configSections);
                    }
                }
                catch (Exception ex)
                {
                    ProviderLogging.LogError(ex);
                }
            }
        }
Exemplo n.º 3
0
        internal static void RemoveSectionGroupZimbra(ref XmlDocument webConfig)
        {
            using (new SPMonitoredScope("Remove Group Zimbra"))
            {
                try
                {
                    XmlNode configSections = webConfig.SelectSingleNode("/configuration/configSections");
                    XmlNode sectionGroup   = null;
                    if (configSections != null)
                    {
                        foreach (XmlNode node in configSections.ChildNodes)
                        {
                            if (node.Attributes["name"].Value == "Zimbra")
                            {
                                sectionGroup = node;
                                break;
                            }
                        }

                        if (sectionGroup != null)
                        {
                            configSections.RemoveChild(sectionGroup);
                        }
                    }


                    XmlNode configuration = webConfig.SelectSingleNode("/configuration");
                    XmlNode zimbraNode    = null;
                    if (configuration != null)
                    {
                        foreach (XmlNode node in webConfig.ChildNodes)
                        {
                            if (node.Name == "Zimbra")
                            {
                                zimbraNode = node;
                                break;
                            }
                        }

                        if (zimbraNode != null)
                        {
                            webConfig.RemoveChild(zimbraNode);
                        }
                    }
                }
                catch (Exception ex)
                {
                    ProviderLogging.LogError(ex);
                }
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// Loads web.config into reference XMLDocument from the given path.
 /// </summary>
 /// <param name="configFilePath"></param>
 /// <param name="webConfig"></param>
 internal static void GetWebConfig(string configFilePath, ref XmlDocument webConfig)
 {
     using (new SPMonitoredScope("Load WebConfig"))
     {
         try
         {
             webConfig.Load(configFilePath);
         }
         catch (Exception ex)
         {
             ProviderLogging.LogError(ex);
         }
     }
 }
Exemplo n.º 5
0
        internal static void RemoveModuleZimbra(ref XmlDocument webConfig)
        {
            using (new SPMonitoredScope("Remove Module Zimbra"))
            {
                try
                {
                    XmlNode httpModulesZimbranode = null;
                    XmlNode httpModules           = webConfig.SelectSingleNode("/configuration/system.web/httpModules");
                    if (httpModules != null)
                    {
                        foreach (XmlNode node in httpModules.ChildNodes)
                        {
                            if (node.Attributes["name"].Value == "ZimbraModule")
                            {
                                httpModulesZimbranode = node;
                            }
                        }
                    }

                    if (httpModulesZimbranode != null)
                    {
                        httpModules.RemoveChild(httpModulesZimbranode);
                    }

                    XmlNode modulesZimbranode = null;
                    XmlNode modules           = webConfig.SelectSingleNode("/configuration/system.webServer/modules");
                    if (modules != null)
                    {
                        foreach (XmlNode node in modules.ChildNodes)
                        {
                            if (node.Attributes["name"].Value == "ZimbraModule")
                            {
                                modulesZimbranode = node;
                            }
                        }

                        if (modulesZimbranode != null)
                        {
                            modules.RemoveChild(modulesZimbranode);
                        }
                    }
                }
                catch (Exception ex)
                {
                    ProviderLogging.LogError(ex);
                }
            }
        }
Exemplo n.º 6
0
 /// <summary>
 /// Creates a backup and saves the referenced XMLDocument to the given path
 /// </summary>
 /// <param name="configFilePath"></param>
 /// <param name="webConfig"></param>
 internal static void SetWebConfig(string configFilePath, ref XmlDocument webConfig)
 {
     using (new SPMonitoredScope("Save WebConfig"))
     {
         try
         {
             XmlDocument currentConfig = new XmlDocument();
             currentConfig.Load(configFilePath);
             currentConfig.Save(configFilePath.ToLower().Replace("web.config", "web_" + DateTime.Now.ToString("yyyy-MM-dd-hh-mm") + "_Zimbra.config"));
             webConfig.Save(configFilePath);
         }
         catch (Exception ex)
         {
             ProviderLogging.LogError(ex);
         }
     }
 }
Exemplo n.º 7
0
        internal static void AppendModuleZimbra(ref XmlDocument webConfig)
        {
            using (new SPMonitoredScope("Append Module Zimbra"))
            {
                try
                {
                    string  fullname      = Assembly.GetExecutingAssembly().FullName;
                    XmlNode configuration = webConfig.SelectSingleNode("/configuration");

                    bool module = ContainsNode("name", "ZimbraModule", "/configuration/system.web/httpModules", ref webConfig);
                    //<add name="ZimbraModule" type="ClubCloud.Provider.ZimbraModule, ClubCloud.Provider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=144fd205e283172e" />
                    XmlNode httpModules = webConfig.SelectSingleNode("/configuration/system.web/httpModules");
                    if (httpModules != null && !module)
                    {
                        XmlNode      httpModulesZimbranode    = webConfig.CreateNode(XmlNodeType.Element, "add", "");
                        XmlAttribute httpModulesNameAttribute = webConfig.CreateAttribute("name");
                        httpModulesNameAttribute.Value = "ZimbraModule";
                        httpModulesZimbranode.Attributes.Append(httpModulesNameAttribute);
                        XmlAttribute httpModulesTypeAttribute = webConfig.CreateAttribute("type");
                        httpModulesTypeAttribute.Value = string.Format("ClubCloud.Provider.ZimbraModule, {0} ", fullname);;
                        httpModulesZimbranode.Attributes.Append(httpModulesTypeAttribute);
                        httpModules.AppendChild(httpModulesZimbranode);
                    }

                    module = ContainsNode("name", "ZimbraModule", "/configuration/system.webServer/modules", ref webConfig);
                    //<add name="ZimbraModule" type="ClubCloud.Provider.ZimbraModule, ClubCloud.Provider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=144fd205e283172e" />
                    XmlNode modules = webConfig.SelectSingleNode("/configuration/system.webServer/modules");
                    if (modules != null && !module)
                    {
                        XmlNode      modulesZimbranode    = webConfig.CreateNode(XmlNodeType.Element, "add", "");
                        XmlAttribute modulesNameAttribute = webConfig.CreateAttribute("name");
                        modulesNameAttribute.Value = "ZimbraModule";
                        modulesZimbranode.Attributes.Append(modulesNameAttribute);
                        XmlAttribute modulesTypeAttribute = webConfig.CreateAttribute("type");
                        modulesTypeAttribute.Value = string.Format("ClubCloud.Provider.ZimbraModule, {0} ", fullname);;
                        modulesZimbranode.Attributes.Append(modulesTypeAttribute);
                        modules.AppendChild(modulesZimbranode);
                    }
                }
                catch (Exception ex)
                {
                    ProviderLogging.LogError(ex);
                }
            }
        }
Exemplo n.º 8
0
        internal static void RemoveProviderZimbra(ref XmlDocument webConfig)
        {
            using (new SPMonitoredScope("Remove Provider Zimbra"))
            {
                try
                {
                    XmlNode PeoplePickerWildcards = webConfig.SelectSingleNode("/configuration/SharePoint/PeoplePickerWildcards");
                    XmlNode peopleRolenode        = null;
                    XmlNode peopleMembernode      = null;
                    if (PeoplePickerWildcards != null)
                    {
                        foreach (XmlNode node in PeoplePickerWildcards.ChildNodes)
                        {
                            if (node.Attributes["key"].Value == "ZimbraMembershipProvider")
                            {
                                peopleMembernode = node;
                            }

                            if (node.Attributes["key"].Value == "ZimbraRoleProvider")
                            {
                                peopleRolenode = node;
                            }
                        }
                    }

                    if (peopleMembernode != null)
                    {
                        PeoplePickerWildcards.RemoveChild(peopleMembernode);
                    }

                    if (peopleRolenode != null)
                    {
                        PeoplePickerWildcards.RemoveChild(peopleRolenode);
                    }

                    XmlNode rolenode    = null;
                    XmlNode roleManager = webConfig.SelectSingleNode("/configuration/system.web/roleManager/providers");
                    if (roleManager != null)
                    {
                        foreach (XmlNode node in PeoplePickerWildcards.ChildNodes)
                        {
                            if (node.Attributes["name"].Value == "ZimbraRoleProvider")
                            {
                                rolenode = node;
                            }
                        }
                    }

                    if (rolenode != null)
                    {
                        roleManager.RemoveChild(rolenode);
                    }

                    XmlNode membernode = null;
                    XmlNode membership = webConfig.SelectSingleNode("/configuration/system.web/membership/providers");
                    if (membership != null)
                    {
                        foreach (XmlNode node in PeoplePickerWildcards.ChildNodes)
                        {
                            if (node.Attributes["name"].Value == "ZimbraMembershipProvider")
                            {
                                membernode = node;
                            }
                        }
                    }

                    if (membernode != null)
                    {
                        membership.RemoveChild(membernode);
                    }
                }
                catch (Exception ex)
                {
                    ProviderLogging.LogError(ex);
                }
            }
        }
Exemplo n.º 9
0
        internal static void AppendProviderZimbra(ref XmlDocument webConfig)
        {
            using (new SPMonitoredScope("Append Provider Zimbra"))
            {
                try
                {
                    string fullname = Assembly.GetExecutingAssembly().FullName;

                    bool role   = ContainsNode("key", "ZimbraRoleProvider", "/configuration/SharePoint/PeoplePickerWildcards", ref webConfig);
                    bool member = ContainsNode("key", "ZimbraMembershipProvider", "/configuration/SharePoint/PeoplePickerWildcards", ref webConfig);

                    XmlNode PeoplePickerWildcards = webConfig.SelectSingleNode("/configuration/SharePoint/PeoplePickerWildcards");

                    if (PeoplePickerWildcards != null)
                    {
                        if (!role)
                        {
                            //<add key="ZimbraMembershipProvider" value="%" />
                            XmlNode      peopleRolenode         = webConfig.CreateNode(XmlNodeType.Element, "add", "");
                            XmlAttribute peopleRolekeyAttribute = webConfig.CreateAttribute("key");
                            peopleRolekeyAttribute.Value = "ZimbraRoleProvider";
                            peopleRolenode.Attributes.Append(peopleRolekeyAttribute);
                            XmlAttribute peopleRoleValueAttribute = webConfig.CreateAttribute("value");
                            peopleRoleValueAttribute.Value = "";
                            peopleRolenode.Attributes.Append(peopleRoleValueAttribute);
                            PeoplePickerWildcards.AppendChild(peopleRolenode);
                        }
                        if (!member)
                        {
                            //<add key="ZimbraRoleProvider" value="%" />
                            XmlNode      peopleMembernode         = webConfig.CreateNode(XmlNodeType.Element, "add", "");
                            XmlAttribute peopleMemberkeyAttribute = webConfig.CreateAttribute("key");
                            peopleMemberkeyAttribute.Value = "ZimbraMembershipProvider";
                            peopleMembernode.Attributes.Append(peopleMemberkeyAttribute);
                            XmlAttribute peopleMemberValueAttribute = webConfig.CreateAttribute("value");
                            peopleMemberValueAttribute.Value = "";
                            peopleMembernode.Attributes.Append(peopleMemberValueAttribute);
                            PeoplePickerWildcards.AppendChild(peopleMembernode);
                        }
                    }

                    role = ContainsNode("name", "ZimbraRoleProvider", "/configuration/system.web/roleManager/providers", ref webConfig);

                    //<add name="ZimbraRoleProvider" type="ClubCloud.Provider.ZimbraRoleProvider, ClubCloud.Provider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=144fd205e283172e" />
                    XmlNode roleManager = webConfig.SelectSingleNode("/configuration/system.web/roleManager/providers");

                    if (roleManager != null && !role)
                    {
                        XmlNode      rolenode          = webConfig.CreateNode(XmlNodeType.Element, "add", "");
                        XmlAttribute roleNameAttribute = webConfig.CreateAttribute("name");
                        roleNameAttribute.Value = "ZimbraRoleProvider";
                        rolenode.Attributes.Append(roleNameAttribute);
                        XmlAttribute roleTypeAttribute = webConfig.CreateAttribute("type");
                        roleTypeAttribute.Value = string.Format("ClubCloud.Provider.ZimbraRoleProvider, {0} ", fullname);
                        rolenode.Attributes.Append(roleTypeAttribute);
                        roleManager.AppendChild(rolenode);
                    }

                    member = ContainsNode("name", "ZimbraMembershipProvider", "/configuration/system.web/membership/providers", ref webConfig);

                    //<add name="ZimbraMembershipProvider" type="ClubCloud.Provider.ZimbraMembershipProvider, ClubCloud.Provider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=144fd205e283172e" />
                    XmlNode membership = webConfig.SelectSingleNode("/configuration/system.web/membership/providers");
                    if (membership != null && !member)
                    {
                        XmlNode      membernode          = webConfig.CreateNode(XmlNodeType.Element, "add", "");
                        XmlAttribute memberNameAttribute = webConfig.CreateAttribute("name");
                        memberNameAttribute.Value = "ZimbraMembershipProvider";
                        membernode.Attributes.Append(memberNameAttribute);
                        XmlAttribute memberTypeAttribute = webConfig.CreateAttribute("type");
                        memberTypeAttribute.Value = string.Format("ClubCloud.Provider.ZimbraMembershipProvider, {0} ", fullname);
                        membernode.Attributes.Append(memberTypeAttribute);
                        membership.AppendChild(membernode);
                    }
                }
                catch (Exception ex)
                {
                    ProviderLogging.LogError(ex);
                }
            }
        }