예제 #1
0
        public void RenameFileManagerItem(string oldText, string newText, string href)
        {
            var hrefQueryString = System.Web.HttpUtility.ParseQueryString(href);

            var hrefFile     = hrefQueryString["file"];
            var hrefCurrPath = hrefQueryString["currpath"];

            if (!string.IsNullOrEmpty(hrefFile))
            {
                var oldFileInfo = new FileInfo(URIHelper.BasePath + hrefFile);

                var newHref = oldFileInfo.Directory.FullName + "\\" + newText;

                var newFileInfo = new FileInfo(newHref);

                if (oldFileInfo.Exists && !newFileInfo.Exists)
                {
                    File.Move(oldFileInfo.FullName, newFileInfo.FullName);
                }
            }
            else if (!string.IsNullOrEmpty(hrefCurrPath))
            {
                var absPath          = URIHelper.ConvertToAbsPath(hrefCurrPath);
                var oldDirectoryInfo = new DirectoryInfo(absPath);

                var newHref = oldDirectoryInfo.Parent.FullName + "\\" + newText;

                var newDirInfo = new DirectoryInfo(newHref);

                if (oldDirectoryInfo.Exists && !newDirInfo.Exists)
                {
                    Directory.Move(oldDirectoryInfo.FullName, newDirInfo.FullName);
                }
            }
        }
예제 #2
0
        private bool CanSetSelectedImage(string value)
        {
            if (value == null)
            {
                return(false);
            }

            value = URIHelper.ConvertAbsUrlToTilda(value.ToLower());

            if (value.EndsWith(".jpeg") || value.EndsWith(".jpg") || value.EndsWith(".png") || value.EndsWith(".gif") || value.EndsWith(".svg"))
            {
                if (File.Exists(URIHelper.ConvertToAbsPath(value)))
                {
                    SelectedImage.Visible = true;
                    return(true);
                }
                else
                {
                    SelectedImage.Visible = false;
                }
            }
            else
            {
                SelectedImage.Visible = false;
            }

            return(false);
        }
예제 #3
0
        protected void Page_PreInit(object sender, EventArgs e)
        {
            var currentUser = this.CurrentUser;

            if (currentUser == null)
            {
                FormsAuthentication.SignOut();
                FormsAuthentication.RedirectToLoginPage();
                CurrentUser = null;

                return;
            }

            if (!currentUser.HasPermission(PermissionsEnum.AccessCMS))
            {
                Response.Redirect("~/");
            }

            if (this.MasterPageFile != null)
            {
                var masterFilePath = GetMasterPageFilePath();

                if (File.Exists(URIHelper.ConvertToAbsPath(masterFilePath)))
                {
                    MasterPageFile = masterFilePath;
                }
            }
        }
예제 #4
0
        private void Application_BeginRequest(Object source, EventArgs e)
        {
            var installerPath    = "~/Installer/";
            var absInstallerUrl  = URIHelper.ConvertToAbsUrl(installerPath);
            var absInstallerPath = URIHelper.ConvertToAbsPath(installerPath);

            if (Request.CurrentExecutionFilePathExtension == "" && !Request.Url.AbsoluteUri.StartsWith(absInstallerUrl))
            {
                if (Directory.Exists(absInstallerPath) && AppSettings.EnableInstaller)
                {
                    Response.Redirect(installerPath);
                }
            }


            if (AppSettings.IsRunningOnProd && AppSettings.ForceWWWRedirect)
            {
                var isSubDomain = (Request.Url.AbsoluteUri.Split('.').Length > 2);
                var isLocalHost = Request.Url.Host.StartsWith("localhost");

                if (!Request.Url.Host.StartsWith("www.") && !isLocalHost && !isSubDomain)
                {
                    Response.RedirectPermanent(Request.Url.AbsoluteUri.Replace("://", "://www."));
                }
            }


            BaseService.AddResponseHeaders();

            var virtualPathRequest = HttpContext.Current.Request.Path.EndsWith("/");

            if (virtualPathRequest)
            {
                Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
                Response.Cache.SetNoStore();
            }

            if (isFirstApplicationRequest)
            {
                ContextHelper.ClearAllMemoryCache();
                FrameworkBaseMedia.InitConnectionSettings(AppSettings.GetConnectionSettings());
                isFirstApplicationRequest = false;
            }

            if (Request.Url.AbsolutePath.Contains("robots.txt"))
            {
                var absPath = URIHelper.ConvertToAbsPath(Request.Url.AbsolutePath);

                if (File.Exists(absPath))
                {
                    var fileContent = File.ReadAllText(absPath);

                    var parsedContent = ParserHelper.ParseData(fileContent, BasePage.GetDefaultTemplateVars(""));

                    BaseService.WriteText(parsedContent);
                }
            }
        }
        private void LoadFile()
        {
            var relPathToFile = FileSelector.GetValue().ToString();
            var absPathToFile = URIHelper.ConvertToAbsPath(relPathToFile);

            if (this.ValidatePath(relPathToFile))
            {
                var fileContent = File.ReadAllText(absPathToFile);
                Editor.Text = fileContent;

                DisplaySuccessMessage($@"Successfully loaded file ( {absPathToFile} )");
            }
        }
예제 #6
0
        private void LoadFile()
        {
            var relPathToFile = FileSelector.GetValue().ToString();
            var absPathToFile = URIHelper.ConvertToAbsPath(relPathToFile);

            if (File.Exists(absPathToFile))
            {
                var fileContent = File.ReadAllText(absPathToFile);
                Editor.Text = fileContent;

                DisplaySuccessMessage($@"Successfully loaded file ( {absPathToFile} ) ");
            }
            else
            {
                DisplayErrorMessage($"File does not exist ( {absPathToFile} ) ");
            }
        }
예제 #7
0
        protected void Save_Click(object sender, EventArgs e)
        {
            var relPathToFile = FileSelector.GetValue().ToString();
            var absPathToFile = URIHelper.ConvertToAbsPath(relPathToFile);

            try
            {
                File.WriteAllText(absPathToFile, Editor.Text);

                DisplaySuccessMessage($@"Successfully saved ( {absPathToFile} )");
            }
            catch (Exception ex)
            {
                ErrorHelper.LogException(ex);

                DisplayErrorMessage("Error saving", ErrorHelper.CreateError(ex));
            }
        }
예제 #8
0
        public bool ValidatePath(string relPathToFile)
        {
            var absPathToFile     = URIHelper.ConvertToAbsPath(relPathToFile);
            var fileManagerConfig = BasePage.GetFileManagerConfig();

            var extention = BasePage.GetExtentionFromString(relPathToFile);

            if (absPathToFile.Contains(".."))
            {
                DisplayErrorMessage($@"You cannot use '..'");
                return(false);
            }
            else if (!absPathToFile.Contains(fileManagerConfig.strDocRoot))
            {
                DisplayErrorMessage($@"You cannot load files from outside the web root directory ( {absPathToFile} ) ");
                return(false);
            }
            else if (!fileManagerConfig.arrAllowedFileExtensions.Contains(extention))
            {
                DisplayErrorMessage($@"You cannot load files with the extention ( {extention} ) ");
                return(false);
            }
            else if (!File.Exists(absPathToFile))
            {
                DisplayErrorMessage($@"The file does not exist ( {absPathToFile} ) ");
                return(false);
            }
            else if (File.Exists(absPathToFile))
            {
                return(true);
            }
            else
            {
                DisplayErrorMessage($"Error Loading the file ( {absPathToFile} ) ");
                return(false);
            }
        }
예제 #9
0
        public string GetMasterPageFilePath()
        {
            string masterFilePath = HttpContext.Current.Request["masterFilePath"];

            if (masterFilePath == null)
            {
                masterFilePath = "";
            }

            var useMobile = ((!GetType().BaseType.Namespace.Contains(".Admin") && (IsMobile)));

            if (GetType().BaseType.Namespace.Contains(".Admin"))
            {
                if (File.Exists(URIHelper.ConvertToAbsPath(masterFilePath)))
                {
                    return(masterFilePath);
                }

                return(Page.MasterPageFile);
            }

            if (string.IsNullOrEmpty(masterFilePath) && FrameworkSettings.Current?.CurrentMediaDetail != null)
            {
                var masterPage = ((MediaDetail)FrameworkSettings.Current.CurrentMediaDetail).GetMasterPage();

                if (masterPage != null)
                {
                    masterFilePath = masterPage.PathToFile;

                    if (useMobile)
                    {
                        masterFilePath = masterPage.GetMobileTemplate();
                    }

                    if (masterPage.UseLayout)
                    {
                        masterFilePath = "";
                    }
                }
                else
                {
                    if ((FrameworkSettings.Current.CurrentMediaDetail.Handler == null) || (FrameworkSettings.Current.CurrentMediaDetail.Handler == ""))
                    {
                        var mediaType = FrameworkSettings.Current.CurrentMediaDetail.MediaType;

                        if (mediaType.MasterPage == null)
                        {
                            var defaultMaster = MasterPagesMapper.GetDefaultMasterPage();

                            if (defaultMaster != null)
                            {
                                masterFilePath = defaultMaster.PathToFile;

                                if (useMobile)
                                {
                                    masterFilePath = defaultMaster.GetMobileTemplate();
                                }
                            }
                        }
                        else
                        {
                            masterFilePath = mediaType.MasterPage.PathToFile;

                            if (useMobile)
                            {
                                masterFilePath = mediaType.MasterPage.GetMobileTemplate();
                            }
                        }
                    }
                    else
                    {
                        masterPage = MasterPagesMapper.GetByPathToFile(Page.MasterPageFile);

                        if (useMobile)
                        {
                            masterFilePath = masterPage?.MobileTemplate;
                        }
                        else
                        {
                            masterFilePath = masterPage?.PathToFile;
                        }
                    }
                }
            }

            return(masterFilePath);
        }
예제 #10
0
        public void Page_PreInit(object sender, EventArgs e)
        {
            var httpRuntimeSection = new System.Web.Configuration.HttpRuntimeSection();
            var settings           = GetSettings();

            if (settings.MaxRequestLength > 0)
            {
                httpRuntimeSection.MaxRequestLength = settings.MaxRequestLength;
            }

            WebFormHelper.ClearIncludesList();
            PreloadHelper.PreloadList.Clear();

            if (AppSettings.UseLoadFileServiceUrl)
            {
                WebFormHelper.LoadFileServiceUrl = AppSettings.FileServiceHandlerUrl + AppSettings.LoadFileUriSegment;
            }
            else
            {
                WebFormHelper.LoadFileServiceUrl = "";
            }

            WebFormHelper.CombineCssAndJsIncludes = AppSettings.CombineCssAndJsIncludes;

            if (Request["action"] != null)
            {
                switch (Request["action"].ToLower())
                {
                case "clearcache":
                    ContextHelper.ClearAllMemoryCache();
                    break;

                case "logout":
                    FormsAuthentication.SignOut();
                    break;
                }
            }

            if (this.MasterPageFile != null)
            {
                var masterFilePath = GetMasterPageFilePath();

                if (File.Exists(URIHelper.ConvertToAbsPath(masterFilePath)))
                {
                    MasterPageFile = masterFilePath;
                }
                else
                {
                    MasterPageFile = "";
                }
            }

            if (currentPageVirtualPath == "")
            {
                currentPageVirtualPath = URIHelper.GetCurrentVirtualPath();
            }

            if (FrameworkSettings.Current?.CurrentMediaDetail == null)
            {
                return;
            }

            if (currentPageVirtualPath == "")
            {
                currentPageVirtualPath = URIHelper.GetCurrentVirtualPath();
            }

            if (!CanAccessSection())
            {
                FormsAuthentication.RedirectToLoginPage();
                return;
            }
        }
예제 #11
0
 private DirectoryInfo GetAbsolutePathToMoveDirectory()
 {
     return(new DirectoryInfo(URIHelper.ConvertToAbsPath("~/App_Data/Installer/")));
 }