public UploadedFilesResizer(IFileSystem files, ImageResizer resizer, EditSection config) { this.files = files; this.resizer = resizer; this.images = config.Images; sizeNames = config.Images.Sizes.AllElements.Select(s => s.Name).ToArray(); }
public override void SetUp() { base.SetUp(); root = CreateOneItem <RootNode>(1, "root", null); start = CreateOneItem <RootNode>(2, "start", root); host = new Host(new ThreadContext(), root.ID, start.ID); fs = new FakeMappedFileSystem(); fs.BasePath = AppDomain.CurrentDomain.BaseDirectory + @"\FileSystem\"; vnf = new VirtualNodeFactory(); config = new EditSection(); injector = new FakeDependencyInjector(); injector.injectors.Add(new EntityDependencySetter <IFileSystem>(fs)); injector.injectors.Add(new EntityDependencySetter <IDependencyInjector>(injector)); var sizeCache = new ImageSizeCache(new ConfigurationManagerWrapper { Sections = new ConfigurationManagerWrapper.ContentSectionTable(null, null, null, config) }); injector.injectors.Add(new EntityDependencySetter <ImageSizeCache>(sizeCache)); //nodeProvider = new FolderNodeProvider(fs, persister, injector); //initializer = new VirtualFolderInitializer(host, persister, fs, vnf, new Plugin.ConnectionMonitor().SetConnected(SystemStatusLevel.UpAndRunning), config, new ImageSizeCache(new ConfigurationManagerWrapper { Sections = new ConfigurationManagerWrapper.ContentSectionTable(null, null, null, config) }), nodeProvider); //nodeProvider = new FolderNodeProvider(fs, persister, injector); //nodeProvider = new FolderNodeProvider(fs, persister, injector); nodeProvider = new FolderNodeProvider(fs, persister.Repository, injector); initializer = new VirtualFolderInitializer(host, persister, fs, vnf, monitor = new Plugin.ConnectionMonitor().SetConnected(SystemStatusLevel.UpAndRunning), new UploadFolderSource(host, config), nodeProvider); }
public DefaultDirectorySelector(IHost host, EditSection config) { this.host = host; mode = config.DefaultDirectory.Mode; defaultFolderPath = config.DefaultDirectory.RootPath; uploadFolders = new List <string>(config.UploadFolders.Folders); }
private Slug CreateCustomReplacementSlug() { PatternValueCollection patterns = new PatternValueCollection(); patterns.Clear(); // to remove all those added by constructor patterns.Add(new PatternValueElement("c1", "[@]", "at", true)); NameEditorElement nameEditorElement = new NameEditorElement { // WhitespaceReplacement = '-', Replacements = patterns //, // ToLower = true }; EditSection editSection = new EditSection { NameEditor = nameEditorElement }; ConfigurationManagerWrapper cmw = new ConfigurationManagerWrapper { Sections = new ConfigurationManagerWrapper.ContentSectionTable(null, null, null, editSection) }; return(new Slug(cmw)); }
public UpdateFilePrefixMigration(EditSection config, IContentItemRepository repository, Tracker tracker) { this.config = config; this.repository = repository; this.tracker = tracker; Title = "Updates links to files with prefix"; Description = "Updates links to files within an upload folder prepending the configured prefix (if any)"; }
public override void SetUp() { base.SetUp(); var edit = new EditSection();// { Editors = new PermissionElement(), Administrators }; finder = new PluginFinder(typeFinder, new SecurityManager(new ThreadContext(), edit), TestSupport.SetupEngineSection()); }
public UploadFolderSource(IHost host, EditSection config) { this.host = host; this.globalFolders = config.UploadFolders .AllElements.Select(u => new FileSystemRoot(u, host.DefaultSite) { IsGlobal = true }).ToArray(); }
public EditUrlManager(EditSection config) { ManagementInterfaceUrl = config.Paths.ManagementInterfaceUrl.TrimEnd('/'); EditTreeUrl = config.Paths.EditTreeUrl; EditItemUrl = config.Paths.EditItemUrl; EditInterfaceUrl = config.Paths.EditInterfaceUrl; NewItemUrl = config.Paths.NewItemUrl; DeleteItemUrl = config.Paths.DeleteItemUrl; }
public override void SetUp() { base.SetUp(); //new[] { typeof(SeveralPlugins), typeof(PermittablePlugins) } var edit = new EditSection(); // { Editors = new PermissionElement(), Administrators }; finder = new PluginFinder(typeFinder, new SecurityManager(new ThreadContext(), edit), new EngineSection()); }
public ErrorHandler(IWebContext context, ISecurityManager security, InstallationManager installer, EngineSection config, EditSection editConfig) : this(context, security, installer) { this.editConfig = editConfig; action = config.Errors.Action; mailTo = config.Errors.MailTo; mailFrom = config.Errors.MailFrom; maxErrorReportsPerHour = config.Errors.MaxErrorReportsPerHour; handleWrongClassException = config.Errors.HandleWrongClassException; mailSender = new SmtpMailSender(); }
public EditUrlManager(IUrlParser parser, EditSection config) { this.parser = parser; ManagementInterfaceUrl = config.Paths.ManagementInterfaceUrl.TrimEnd('/'); EditTreeUrl = config.Paths.EditTreeUrl; EditItemUrl = config.Paths.EditItemUrl; EditInterfaceUrl = config.Paths.EditInterfaceUrl; NewItemUrl = config.Paths.NewItemUrl; DeleteItemUrl = config.Paths.DeleteItemUrl; defaultViewPreference = config.Versions.DefaultViewMode; }
public override void SetUp() { base.SetUp(); host = new Host(new Fakes.FakeWebContextWrapper(), 1, 1); config = new EditSection(); config.DefaultDirectory = new DefaultDirectoryElement(); config.UploadFolders = new FileSystemFolderCollection(); root = CreateOneItem <Items.NormalPage>(1, "root", null); item1 = CreateOneItem <Items.NormalPage>(2, "item1", root); item2 = CreateOneItem <Items.NormalPage>(3, "item2", item1); }
public override void SetUp() { base.SetUp(); CreatePersister(); parser = mocks.StrictMock <N2.Web.IUrlParser>(); context = CreateWebContext(false); EditSection editSection = new EditSection(); security = new SecurityManager(context, editSection); enforcer = new SecurityEnforcer(persister, security, new ContentActivator(null, null, null), parser, context); enforcer.Start(); }
private Slug CreateDefaultSlug() { NameEditorElement nameEditorElement = new NameEditorElement(); EditSection editSection = new EditSection { NameEditor = nameEditorElement }; ConfigurationManagerWrapper cmw = new ConfigurationManagerWrapper { Sections = new ConfigurationManagerWrapper.ContentSectionTable(null, null, null, editSection) }; return(new Slug(cmw)); }
/// <summary>Creates a new instance of the RequestLifeCycleHandler class.</summary> /// <param name="webContext">The web context wrapper.</param> /// <param name="broker"></param> /// <param name="installer"></param> /// <param name="dispatcher"></param> /// <param name="adapters"></param> /// <param name="errors"></param> /// <param name="editConfig"></param> /// <param name="hostConfig"></param> /// <param name="managementUrls"></param> public RequestLifeCycleHandler(IWebContext webContext, EventBroker broker, InstallationManager installer, RequestPathProvider dispatcher, IContentAdapterProvider adapters, IErrorHandler errors, IEditUrlManager editUrlManager, EditSection editConfig, HostSection hostConfig) { checkInstallation = editConfig.Installer.CheckInstallationStatus; welcomeUrl = editConfig.Installer.WelcomeUrl; managementUrl = editConfig.ManagementInterfaceUrl; rewriteMethod = hostConfig.Web.Rewrite; this.webContext = webContext; this.broker = broker; this.adapters = adapters; this.errors = errors; this.editUrlManager = editUrlManager; this.installer = installer; this.dispatcher = dispatcher; }
protected void btnRestart_Click(object sender, EventArgs e) { try { System.Configuration.Configuration cfg = WebConfigurationManager.OpenWebConfiguration("~"); EditSection edit = (EditSection)cfg.GetSection("n2/edit"); edit.Installer.AllowInstallation = false; cfg.Save(); Response.Redirect(Engine.ManagementPaths.GetManagementInterfaceUrl()); } catch { ltDisableFailed.Text = "Failed writing to web.config, please change this manually in web.config:"; } }
private static NameEditorElement LoadConfiguration() { EditSection editSection = ConfigurationManager.GetSection("n2/edit") as EditSection; if (editSection != null) { return(editSection.NameEditor); } NameEditorElement config = new NameEditorElement(); config.WhitespaceReplacement = '-'; config.ShowKeepUpdated = true; config.ToLower = true; return(config); }
public override void SetUp() { base.SetUp(); root = CreateOneItem <RootNode>(1, "root", null); start = CreateOneItem <RootNode>(2, "start", root); host = new Host(new ThreadContext(), root.ID, start.ID); fs = new FakeFileSystem(); fs.PathProvider = new FakePathProvider(fs.BasePath); vnf = new VirtualNodeFactory(); config = new EditSection(); initializer = new VirtualFolderInitializer(host, persister, fs, vnf, new FakeStatus(), config); }
protected override void OnInit(EventArgs e) { EditSection config = Engine.Resolve <EditSection>(); if (config == null) { throw new ConfigurationErrorsException("Cannot find configuration n2/edit"); } foreach (SettingsEditorElement element in config.SettingsEditors) { Control editor = LoadControl(Url.ResolveTokens(element.Path)); phSettings.Controls.Add(editor); } base.OnInit(e); }
public EditUrlManager(IUrlParser parser, EditSection config) { this.parser = parser; ManagementInterfaceUrl = config.Paths.ManagementInterfaceUrl.TrimEnd('/'); EditTreeUrl = config.Paths.EditTreeUrl; EditItemUrl = config.Paths.EditItemUrl; EditInterfaceUrl = config.Paths.EditInterfaceUrl; if (config.Legacy) { EditInterfaceUrl += "Content/"; } NewItemUrl = config.Paths.NewItemUrl; DeleteItemUrl = config.Paths.DeleteItemUrl; defaultViewPreference = config.Versions.DefaultViewMode; ensureLocalhostPreviewUrls = config.Paths.EnsureLocalhostPreviewUrls; }
private Slug CreateLowercaseSlug() { NameEditorElement nameEditorElement = new NameEditorElement { WhitespaceReplacement = '-', Replacements = new PatternValueCollection(), ToLower = true }; EditSection editSection = new EditSection { NameEditor = nameEditorElement }; ConfigurationManagerWrapper cmw = new ConfigurationManagerWrapper { Sections = new ConfigurationManagerWrapper.ContentSectionTable(null, null, null, editSection) }; return(new Slug(cmw)); }
protected override ListItem[] GetListItems() { EditSection config = ConfigurationManager.GetSection("n2/edit") as EditSection; if (config == null) { return new ListItem[] { new ListItem("~/Upload") } } ; else { ListItem[] items = new ListItem[config.UploadFolders.Count]; for (int i = 0; i < items.Length; i++) { string path = config.UploadFolders[i].Path; items[i] = new ListItem(path.Trim('/', '~', '.')); } return(items); } }
Permission[] GetAvailablePermissions() { List <Permission> permissions = new List <Permission>(); permissions.Add(Permission.Read); EditSection config = Engine.Resolve <EditSection>(); if (config.Editors.Dynamic) { permissions.Add(Permission.Write); } if (config.Writers.Dynamic) { permissions.Add(Permission.Publish); } if (config.Administrators.Dynamic) { permissions.Add(Permission.Administer); } return(permissions.ToArray()); }
public FakeEngine(params Type[] types) { AddComponentInstance <ITypeFinder>(new FakeTypeFinder(types)); var definitionManager = TestSupport.SetupDefinitions(types.Where(t => typeof(ContentItem).IsAssignableFrom(t)).ToArray()); AddComponentInstance <IDefinitionManager>(definitionManager); var adapterProvider = new ContentAdapterProvider(this, Resolve <ITypeFinder>()); AddComponentInstance <IContentAdapterProvider>(adapterProvider); var itemRepository = new FakeContentItemRepository(); AddComponentInstance <IRepository <ContentItem> >(itemRepository); AddComponentInstance <IContentItemRepository>(itemRepository); var webContext = new ThreadContext(); AddComponentInstance <IWebContext>(webContext); var host = new Host(webContext, 1, 1); AddComponentInstance <IHost>(host); var security = new FakeSecurityManager(); AddComponentInstance <ISecurityManager>(security); var source = new ContentSource(security, new [] { new DatabaseSource(host, itemRepository) }); AddComponentInstance(source); AddComponentInstance <IPersister>(new ContentPersister(source, itemRepository)); AddComponentInstance <IWebContext>(webContext); var proxyFactory = new InterceptingProxyFactory(); AddComponentInstance <IProxyFactory>(proxyFactory); var activator = new ContentActivator(new N2.Edit.Workflow.StateChanger(), new ItemNotifier(), proxyFactory); AddComponentInstance <ContentActivator>(activator); activator.Initialize(definitionManager.GetDefinitions()); var editSection = new EditSection(); AddComponentInstance <EditSection>(editSection); }
public LinksTracker(IPersister persister, IUrlParser urlParser, ConnectionMonitor connections, IErrorNotifier errorHandler, EditSection config) : base(persister, urlParser, connections, errorHandler, config) { }
protected override void OnInit(EventArgs e) { FS = Engine.Resolve <IFileSystem>(); Config = Engine.Resolve <ConfigurationManagerWrapper>().Sections.Management; var selected = Selection.SelectedItem; var host = Engine.Resolve <IHost>(); var rootItem = Engine.Persister.Get(host.DefaultSite.RootItemID); var root = new HierarchyNode <ContentItem>(rootItem); var selectionTrail = new List <ContentItem>(); var ckEditor = Request["ckEditor"]; var ckEditorFuncNum = Request["ckEditorFuncNum"]; var mediaCtrl = Request["mediaControl"]; var preferredSize = Request["preferredSize"]; var selectableExtensions = Request["selectableExtensions"]; var selectedUrl = Request["selectedUrl"]; var defaultDirectoryPath = Request["defaultDirectoryPath"]; var mediaBrowserHandler = new MediaBrowserHandler(); mediaBrowserModel = new MediaBrowserModel { CkEditor = ckEditor, CkEditorFuncNum = ckEditorFuncNum, MediaControl = mediaCtrl, HandlerUrl = AjaxMediaBrowserRetriever, PreferredSize = preferredSize, Breadcrumb = new string[] { }, Path = "", RootIsSelectable = false, DefaultDirectoryPath = defaultDirectoryPath }; if (selected is AbstractNode) { selectionTrail = new List <ContentItem>(Find.EnumerateParents(selected, null, true)); } else { mediaBrowserHandler.TrySelectingPrevious(ref selected, ref selectionTrail); } var uploadDirectories = MediaBrowserUtils.GetAvailableUploadFoldersForAllSites(Context, root, selectionTrail, Engine, FS); if (uploadDirectories.Count > 0) { var imageSizes = Engine.Resolve <Management.Files.FileSystem.Pages.ImageSizeCache>(); if (uploadDirectories.Count == 1 || selectionTrail.Count > 1) { var directory = FS.GetDirectory(mediaBrowserModel.Path); var fsRootPath = directory != null && !string.IsNullOrWhiteSpace(directory.RootPath) ? directory.RootPath : ""; var dir = (selectionTrail.Count > 0 ? selectionTrail.ElementAt(0) : uploadDirectories[0].Current) as Directory; //Find and/or create default upload directory for templated content. if (!string.IsNullOrWhiteSpace(mediaBrowserModel.DefaultDirectoryPath)) { var segments = (mediaBrowserModel.DefaultDirectoryPath.Split(new[] { '/' }, 3, StringSplitOptions.RemoveEmptyEntries)); if (segments.Length == 3) { var siteName = segments[0]; var uploadSiteFolder = dir.GetDirectories().FirstOrDefault(d => d.Name == siteName.ToLower()); if (uploadSiteFolder == null) { var newDir = VirtualPathUtility.AppendTrailingSlash(Request.ApplicationPath + dir.LocalUrl) + siteName.ToLower(); FS.CreateDirectory(newDir); uploadSiteFolder = dir.GetDirectories().FirstOrDefault(d => d.Name == siteName.ToLower()); } var contentName = segments[1]; var uploadSiteContentFolder = uploadSiteFolder.GetDirectories().FirstOrDefault(d => d.Name == contentName.ToLower()); if (uploadSiteContentFolder == null) { var newDir = VirtualPathUtility.AppendTrailingSlash(Request.ApplicationPath + uploadSiteFolder.LocalUrl) + contentName.ToLower(); FS.CreateDirectory(newDir); uploadSiteContentFolder = uploadSiteFolder.GetDirectories().FirstOrDefault(d => d.Name == contentName.ToLower()); } var templateName = segments[2]; var uploadSiteContentTemplateFolder = uploadSiteContentFolder.GetDirectories().FirstOrDefault(d => d.Name == templateName.ToLower()); if (uploadSiteContentTemplateFolder == null) { var newDir = VirtualPathUtility.AppendTrailingSlash(Request.ApplicationPath + uploadSiteContentFolder.LocalUrl) + templateName.ToLower(); FS.CreateDirectory(newDir); uploadSiteContentTemplateFolder = uploadSiteContentFolder.GetDirectories().FirstOrDefault(d => d.Name == templateName.ToLower()); dir = uploadSiteContentTemplateFolder; } else { dir = uploadSiteContentTemplateFolder; } } } var files = dir.GetFiles().ToList(); mediaBrowserModel.Dirs = dir.GetDirectories(); mediaBrowserModel.Files = MediaBrowserHandler.GetFileReducedList(files, imageSizes, selectableExtensions, fsRootPath); mediaBrowserModel.Path = System.Web.VirtualPathUtility.ToAppRelative(dir.LocalUrl).Trim('~'); } else { mediaBrowserModel.Path = System.Web.VirtualPathUtility.ToAppRelative("/").Trim('~'); mediaBrowserModel.RootIsSelectable = true; mediaBrowserModel.Dirs = new List <Directory>(); foreach (var updDir in uploadDirectories) { mediaBrowserModel.Dirs.Add(updDir.Current as Directory); } } var breadcrumb = mediaBrowserModel.Path.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries).ToList(); breadcrumb.Insert(0, "[root]"); mediaBrowserModel.Breadcrumb = breadcrumb.ToArray(); } }
public ViewOptionProvider(IEditUrlManager editUrlManager, IWebContext webContext, EditSection config) { this.editUrlManager = editUrlManager; this.webContext = webContext; this.defaultViewPreference = config.Versions.DefaultViewMode; }
public ExternalContentRepository(ContainerRepository <ExternalItem> containerRepository, IPersister persister, EditSection config) { this.containerRepository = containerRepository; this.persister = persister; externalItemType = Type.GetType(config.Externals.ExternalItemType) ?? typeof(ExternalItem); }
public VersionManager(IRepository <int, ContentItem> itemRepository, IItemFinder finder, StateChanger stateChanger, EditSection config) { this.itemRepository = itemRepository; this.finder = finder; this.stateChanger = stateChanger; maximumVersionsPerItem = config.Versions.MaximumPerItem; }
public ItemBridge(ContentActivator activator, IItemFinder finder, IPersister persister, ISecurityManager security, IHost host, EditSection config) { this.security = security; this.activator = activator; this.finder = finder; this.persister = persister; this.host = host; this.editorUsernames = ToArray(config.Editors.Users); this.administratorUsernames = ToArray(config.Administrators.Users); Type configuredUserType = Type.GetType(config.Membership.UserType); if (configuredUserType == null) { throw new ArgumentException("Couldn't create configured membership user type: " + config.Membership.UserType); } if (!typeof(User).IsAssignableFrom(configuredUserType)) { throw new ArgumentException("Configured membership user type '" + config.Membership.UserType + "' doesn't derive from '" + typeof(User).AssemblyQualifiedName + "'"); } this.userType = configuredUserType; }