/// -----------------------------------------------------------------------------
        /// <summary>
        /// AddPortal manages the Installation of a new DotNetNuke Portal
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// [cnurse]	11/06/2004	created
        /// </history>
        /// -----------------------------------------------------------------------------
        public static int AddPortal(XmlNode node, bool status, int indent)
        {
            try
            {
                int intPortalId = 0;
                string strHostPath = Common.Globals.HostMapPath;
                string strChildPath = "";
                string strDomain = "";

                if ((HttpContext.Current != null))
                {
                    strDomain = Globals.GetDomainName(HttpContext.Current.Request, true).ToLowerInvariant().Replace("/install", "");
                }

                string strPortalName = XmlUtils.GetNodeValue(node.CreateNavigator(), "portalname");
                if (status)
                {
                    HtmlUtils.WriteFeedback(HttpContext.Current.Response, indent, "Creating Portal: " + strPortalName + "<br>");
                }

                PortalController objPortalController = new PortalController();
                XmlNode adminNode = node.SelectSingleNode("administrator");
                string strFirstName = XmlUtils.GetNodeValue(adminNode.CreateNavigator(), "firstname");
                string strLastName = XmlUtils.GetNodeValue(adminNode.CreateNavigator(), "lastname");
                string strUserName = XmlUtils.GetNodeValue(adminNode.CreateNavigator(), "username");
                string strPassword = XmlUtils.GetNodeValue(adminNode.CreateNavigator(), "password");
                string strEmail = XmlUtils.GetNodeValue(adminNode.CreateNavigator(), "email");
                string strDescription = XmlUtils.GetNodeValue(node.CreateNavigator(), "description");
                string strKeyWords = XmlUtils.GetNodeValue(node.CreateNavigator(), "keywords");
                string strTemplate = XmlUtils.GetNodeValue(node.CreateNavigator(), "templatefile");
                string strServerPath = Globals.ApplicationMapPath + "\\";
                bool isChild = bool.Parse(XmlUtils.GetNodeValue(node.CreateNavigator(), "ischild"));
                string strHomeDirectory = XmlUtils.GetNodeValue(node.CreateNavigator(), "homedirectory");

                //Get the Portal Alias
                XmlNodeList portalAliases = node.SelectNodes("portalaliases/portalalias");
                string strPortalAlias = strDomain;
                if (portalAliases.Count > 0)
                {
                    if (!string.IsNullOrEmpty(portalAliases[0].InnerText))
                    {
                        strPortalAlias = portalAliases[0].InnerText;
                    }
                }

                //Create default email
                if (string.IsNullOrEmpty(strEmail))
                {
                    strEmail = "admin@" + strDomain.Replace("www.", "");
                    //Remove any domain subfolder information ( if it exists )
                    if (strEmail.IndexOf("/") != -1)
                    {
                        strEmail = strEmail.Substring(0, strEmail.IndexOf("/"));
                    }
                }

                if (isChild)
                {
                    strChildPath = strPortalAlias.Substring(strPortalAlias.LastIndexOf("/") + 1);
                }

                //Create Portal
                intPortalId = objPortalController.CreatePortal(strPortalName, strFirstName, strLastName, strUserName, strPassword, strEmail, strDescription, strKeyWords, strHostPath, strTemplate,
                strHomeDirectory, strPortalAlias, strServerPath, strServerPath + strChildPath, isChild);

                if (intPortalId > -1)
                {
                    //Add Extra Aliases
                    foreach (XmlNode portalAlias in portalAliases)
                    {
                        if (!string.IsNullOrEmpty(portalAlias.InnerText))
                        {
                            if (status)
                            {
                                HtmlUtils.WriteFeedback(HttpContext.Current.Response, indent, "Creating Portal Alias: " + portalAlias.InnerText + "<br>");
                            }
                            objPortalController.AddPortalAlias(intPortalId, portalAlias.InnerText);
                        }
                    }

                    //Force Administrator to Update Password on first log in
                    PortalInfo objPortal = objPortalController.GetPortal(intPortalId);
                    UserInfo objAdminUser = UserController.GetUserById(intPortalId, objPortal.AdministratorId);
                    objAdminUser.Membership.UpdatePassword = true;
                    UserController.UpdateUser(intPortalId, objAdminUser);
                }


                return intPortalId;
            }
            catch (Exception ex)
            {
                HtmlUtils.WriteFeedback(HttpContext.Current.Response, indent, "<font color='red'>Error: " + ex.Message + "</font><br>");
                // failure
                return -1;
            }
        }
 protected override void OnLoad(EventArgs e)
 {
     base.OnLoad(e);
     #region Bind Handles
     optHost.CheckedChanged += new EventHandler(optHost_CheckedChanged);
     optSite.CheckedChanged += new EventHandler(optSite_CheckedChanged);
     cmdPreview.Click += new EventHandler(cmdPreview_Click);
     #endregion
     try
     {
         PortalController objPortals = new PortalController();
         if (Request.QueryString["pid"] != null && (PortalSettings.ActiveTab.ParentId == PortalSettings.SuperTabId || UserController.GetCurrentUserInfo().IsSuperUser))
         {
             _objPortal = objPortals.GetPortal(Int32.Parse(Request.QueryString["pid"]));
         }
         else
         {
             _objPortal = objPortals.GetPortal(PortalSettings.PortalId);
         }
         if (!Page.IsPostBack)
         {
             ViewState["SkinControlWidth"] = _Width;
             ViewState["SkinRoot"] = _SkinRoot;
             ViewState["SkinSrc"] = _SkinSrc;
             if (!String.IsNullOrEmpty(_Width))
             {
                 cboSkin.Width = System.Web.UI.WebControls.Unit.Parse(_Width);
             }
             if (!String.IsNullOrEmpty(_SkinSrc))
             {
                 switch (_SkinSrc.Substring(0, 3))
                 {
                     case "[L]":
                         optHost.Checked = false;
                         optSite.Checked = true;
                         break;
                     case "[G]":
                         optSite.Checked = false;
                         optHost.Checked = true;
                         break;
                 }
             }
             else
             {
                 string strRoot = _objPortal.HomeDirectoryMapPath + SkinRoot;
                 if (Directory.Exists(strRoot) && Directory.GetDirectories(strRoot).Length > 0)
                 {
                     optHost.Checked = false;
                     optSite.Checked = true;
                 }
             }
             LoadSkins();
         }
     }
     catch (Exception exc)
     {
         Exceptions.ProcessModuleLoadException(this, exc);
     }
 }
 private static void GetModuleContent(XmlNode nodeModule, int ModuleId, int TabId, int PortalId)
 {
     ModuleController objModules = new ModuleController();
     ModuleInfo objModule = objModules.GetModule(ModuleId, TabId, true);
     string strVersion = nodeModule.SelectSingleNode("content").Attributes["version"].Value;
     string strType = nodeModule.SelectSingleNode("content").Attributes["type"].Value;
     string strcontent = nodeModule.SelectSingleNode("content").InnerXml;
     strcontent = strcontent.Substring(9, strcontent.Length - 12);
     if (!String.IsNullOrEmpty(objModule.DesktopModule.BusinessControllerClass) && !String.IsNullOrEmpty(strcontent))
     {
         PortalInfo objportal;
         PortalController objportals = new PortalController();
         objportal = objportals.GetPortal(PortalId);
         if (objModule.DesktopModule.SupportedFeatures == Null.NullInteger)
         {
             CreateEventQueueMessage(objModule, strcontent, strVersion, objportal.AdministratorId);
         }
         else
         {
             strcontent = HttpContext.Current.Server.HtmlDecode(strcontent);
             if (objModule.DesktopModule.IsPortable)
             {
                 try
                 {
                     object objObject = Framework.Reflection.CreateObject(objModule.DesktopModule.BusinessControllerClass, objModule.DesktopModule.BusinessControllerClass);
                     if (objObject is IPortable)
                     {
                         ((IPortable)objObject).ImportModule(objModule.ModuleID, strcontent, strVersion, objportal.AdministratorId);
                     }
                 }
                 catch
                 {
                     CreateEventQueueMessage(objModule, strcontent, strVersion, objportal.AdministratorId);
                 }
             }
         }
     }
 }
 public bool DeleteUserRole(int PortalId, int UserId, int RoleId)
 {
     UserInfo objUser = UserController.GetUserById(PortalId, UserId);
     UserRoleInfo objUserRole = GetUserRole(PortalId, UserId, RoleId);
     PortalController objPortals = new PortalController();
     bool blnDelete = true;
     PortalInfo objPortal = objPortals.GetPortal(PortalId);
     if (objPortal != null && objUserRole != null)
     {
         if (CanRemoveUserFromRole(objPortal, UserId, RoleId))
         {
             provider.RemoveUserFromRole(PortalId, objUser, objUserRole);
             Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController();
             objEventLog.AddLog(objUserRole, PortalController.GetCurrentPortalSettings(), UserController.GetCurrentUserInfo().UserID, "", Services.Log.EventLog.EventLogController.EventLogType.ROLE_UPDATED);
         }
         else
         {
             blnDelete = false;
         }
     }
     return blnDelete;
 }
 private static void DeserializeTabPermissions(XmlNodeList nodeTabPermissions, TabInfo objTab, bool IsAdminTemplate)
 {
     Security.Permissions.PermissionController objPermissionController = new Security.Permissions.PermissionController();
     Security.Permissions.PermissionInfo objPermission;
     Security.Permissions.TabPermissionInfo objTabPermission;
     RoleController objRoleController = new RoleController();
     RoleInfo objRole;
     int RoleID;
     int PermissionID = 0;
     string PermissionKey;
     string PermissionCode;
     string RoleName;
     bool AllowAccess;
     ArrayList arrPermissions;
     int i;
     foreach (XmlNode xmlTabPermission in nodeTabPermissions)
     {
         PermissionKey = XmlUtils.GetNodeValue(xmlTabPermission.CreateNavigator(), "permissionkey");
         PermissionCode = XmlUtils.GetNodeValue(xmlTabPermission.CreateNavigator(), "permissioncode");
         RoleName = XmlUtils.GetNodeValue(xmlTabPermission.CreateNavigator(), "rolename");
         AllowAccess = XmlUtils.GetNodeValueBoolean(xmlTabPermission, "allowaccess");
         arrPermissions = objPermissionController.GetPermissionByCodeAndKey(PermissionCode, PermissionKey);
         for (i = 0; i <= arrPermissions.Count - 1; i++)
         {
             objPermission = (Security.Permissions.PermissionInfo)arrPermissions[i];
             PermissionID = objPermission.PermissionID;
         }
         RoleID = int.MinValue;
         switch (RoleName)
         {
             case Globals.glbRoleAllUsersName:
                 RoleID = Convert.ToInt32(Globals.glbRoleAllUsers);
                 break;
             case Common.Globals.glbRoleUnauthUserName:
                 RoleID = Convert.ToInt32(Globals.glbRoleUnauthUser);
                 break;
             default:
                 PortalController objPortals = new PortalController();
                 PortalInfo objPortal = objPortals.GetPortal(objTab.PortalID);
                 objRole = objRoleController.GetRoleByName(objPortal.PortalID, RoleName);
                 if (objRole != null)
                 {
                     RoleID = objRole.RoleID;
                 }
                 else
                 {
                     if (IsAdminTemplate && RoleName.ToLower() == "administrators")
                     {
                         RoleID = objPortal.AdministratorRoleId;
                     }
                 }
                 break;
         }
         if (RoleID != int.MinValue)
         {
             objTabPermission = new Security.Permissions.TabPermissionInfo();
             objTabPermission.TabID = objTab.TabID;
             objTabPermission.PermissionID = PermissionID;
             objTabPermission.RoleID = RoleID;
             objTabPermission.AllowAccess = AllowAccess;
             objTab.TabPermissions.Add(objTabPermission);
         }
     }
 }
 public static string GetSubFolderPath(string strFileNamePath, int portalId)
 {
     string ParentFolderName;
     if (portalId == Null.NullInteger)
     {
         ParentFolderName = Globals.HostMapPath.Replace("/", "\\");
     }
     else
     {
         PortalController objPortals = new PortalController();
         PortalInfo objPortal = objPortals.GetPortal(portalId);
         ParentFolderName = objPortal.HomeDirectoryMapPath.Replace("/", "\\");
     }
     string strFolderpath = strFileNamePath.Substring(0, strFileNamePath.LastIndexOf("\\") + 1);
     return strFolderpath.Substring(ParentFolderName.Length).Replace("\\", "/");
 }
 public static ArrayList GetFileList(int PortalId, string strExtensions, bool NoneSpecified, string Folder, bool includeHidden)
 {
     ArrayList arrFileList = new ArrayList();
     if (NoneSpecified)
     {
         arrFileList.Add(new FileItem("", "<" + Localization.GetString("None_Specified") + ">"));
     }
     string portalRoot;
     if (PortalId == Null.NullInteger)
     {
         portalRoot = HostMapPath;
     }
     else
     {
         PortalController objPortals = new PortalController();
         PortalInfo objPortal = objPortals.GetPortal(PortalId);
         portalRoot = objPortal.HomeDirectoryMapPath;
     }
     FolderInfo objFolder = FileSystemUtils.GetFolder(PortalId, Folder);
     if (objFolder != null)
     {
         FileController objFiles = new FileController();
         IDataReader dr = null;
         try
         {
             dr = objFiles.GetFiles(PortalId, objFolder.FolderID);
             while (dr.Read())
             {
                 if (FilenameMatchesExtensions(dr["FileName"].ToString(), strExtensions))
                 {
                     string filePath = (portalRoot + dr["Folder"].ToString() + dr["fileName"].ToString()).Replace("/", "\\");
                     int StorageLocation = 0;
                     if (dr["StorageLocation"] != null)
                     {
                         StorageLocation = Convert.ToInt32(dr["StorageLocation"]);
                         switch (StorageLocation)
                         {
                             case 1:
                                 filePath = filePath + glbProtectedExtension;
                                 break;
                             case 2:
                                 break;
                             default:
                                 break;
                         }
                     }
                     if (StorageLocation != 2)
                     {
                         if (File.Exists(filePath))
                         {
                             if (includeHidden)
                             {
                                 arrFileList.Add(new FileItem(dr["FileID"].ToString(), dr["FileName"].ToString()));
                             }
                             else
                             {
                                 System.IO.FileAttributes attributes = File.GetAttributes(filePath);
                                 if ((attributes & FileAttributes.Hidden) != FileAttributes.Hidden)
                                 {
                                     arrFileList.Add(new FileItem(dr["FileID"].ToString(), dr["FileName"].ToString()));
                                 }
                             }
                         }
                     }
                     else
                     {
                         arrFileList.Add(new FileItem(dr["FileID"].ToString(), dr["FileName"].ToString()));
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             Exceptions.LogException(ex);
         }
         finally
         {
             CBO.CloseDataReader(dr, true);
         }
     }
     return arrFileList;
 }
 public PortalSettings(int tabID, PortalAliasInfo objPortalAliasInfo)
 {
     _ActiveTab = new TabInfo();
     PortalId = objPortalAliasInfo.PortalID;
     PortalAlias = objPortalAliasInfo;
     PortalController controller = new PortalController();
     PortalInfo portal = controller.GetPortal(PortalId);
     if (portal != null)
     {
         GetPortalSettings(tabID, portal);
     }
 }
 public PortalSettings(int tabID, int portalID)
 {
     PortalController controller = new PortalController();
     PortalInfo portal = controller.GetPortal(portalID);
     GetPortalSettings(tabID, portal);
 }