* Use lowercase lang folder name for packages lang files
Use lowercase lang folder name for packages lang files to be consistent with Umbraco's casing
* Case insensitive `lang` folder lookup
* Comment grammar
* Setup lower case appl_plugin icons folder path
* Update Constants-SystemDirectories.cs
* Check both casings for the AppPluginIcons path
* Fixed spelling mistake + avoid multiple Exists checks
* Add IsCaseSensitiveFileSystem to IHostingEnvironment
* Add IsCaseSensitiveFileSystem to AspNetCoreHostingEnvironment
* Undo last changes
* Undo last changed
* Add FileSystemUtility
* Only perform second iconPath if OS is case sensitive
* Undo changes
* Undo changes
* Remove filesystem utils file
* Added HostingEnvironmentExtensions.cs
* Use IsCaseSensitiveFileSystem extension method
* Use the Umbraco.Extensions namespace
* Simplify IsCaseSensitiveFileSystem
* Better naming
* Use PluginIcons
* Remove unused using statement
* Delete HostingEnvironmentExtensions.cs
* Update IconService.cs
* Comment clarity
* Update src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs
Co-authored-by: Paul Johnson <pmj+github@ologn.co.uk>
Co-authored-by: Paul Johnson <pmj+github@ologn.co.uk>
Co-authored-by: Michael Latouche <michael@crossingpaths.be>
* Bugfix - Take ufprt from form data if the request has form content type, otherwise fallback to use the query
* External linking for members
* Changed migration to reuse old table
* removed unnecessary web.config files
* Cleanup
* Extracted class to own file
* Clean up
* Rollback changes to Umbraco.Web.UI.csproj
* Fixed migration for SqlCE
* Change notification handler to be on deleted
* Update src/Umbraco.Infrastructure/Security/MemberUserStore.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Fixed issue with errors not shown on member linking
* fixed issue with errors
* clean up
* Fix issue where external logins could not be used to upgrade Umbraco, because the externalLogin table was expected to look different. (Like after the migration)
* Fixed issue in Ignore legacy column now using result column.
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Allow changing UmbracoMediaPath to an absolute path. Also ensure Imagesharp are handing requests outside of the wwwroot folder.
* Let UmbracoMediaUrl fallback to UmbracoMediaPath when empty
* Add FileSystemFileProvider to expose an IFileSystem as IFileProvider
* Replace IUmbracoMediaFileProvider with IFileProviderFactory implementation
* Fix issue resolving relative paths when media URL has changed
* Remove FileSystemFileProvider and require explicitly implementing IFileProviderFactory
* Update tests (UnauthorizedAccessException isn't thrown anymore for rooted files)
* Update test to use UmbracoMediaUrl
* Add UmbracoMediaPhysicalRootPath global setting
* Remove MediaFileManagerImageProvider and use composited file providers
* Move CreateFileProvider to IFileSystem extension method
* Add rooted path tests
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Move package to database
* Added migration and implemented new repository
* Updated migrations to use proper xml convert
* Fixed save function and renamed createDate to update date
* Updated dependencyInjection
* Updated UmbracoPlan.cs
* Apply suggestions from code review
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Added File check
* Tried using same context as create table
* Fix DTO
* Fix GetById and local package saving
* Fix images when migrating
* Implement deletion of all local files
* Only delete local repo file, not file snapshots
* Remove static package path and use the one we save
* Update package repo to export package and remove check for ids when exporting
* Minor fixes
* Fix so that you can download package after creating
* Update savePackage method to export package afterwards
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Adding ILogLevelLoader to get Serilog level values (global one and umbraco) and the corresponding dependencies
* Obsoleting old methods
* Fix tests
* Front-end changes
* Changes requested in a review
The issue was discovered when testing Umbraco Id. If you have an existing install and there is a pending Umbraco migration (upgrade), but you clear out the connection string to force a new install screen, fill out the existing connection string details, it all works and redirects to the back office. This will throw exceptions because the runtime state is in an upgrade state (which is fixed in #11064) but if you then logout and try to log in with an active OAuth provider, it means there is a redirect outside of Umbraco and back again and you'll end up back on the installer screen - but it will not show you the upgrade screen, instead it shows you the normal install screen. This is because we are not using IOptionsMonitor for connection string settings which means it's already read the original empty connection string setting fom the very beginning and isn't reading the current/updated value.
We need to review all IOptions usages. Most of them should be IOptionsMonitor unless its impossible to change the app behavior at runtime with a particular config option.
Now it is possible to change the location of backoffice.
{
"Umbraco": {
"CMS": {
"Global": {
"UmbracoPath": "~/my-secret-loginpanel",
"IconsPath": "~/my-secret-loginpanel/assets/icons"
}
}
}
}
* Clean up and changes to backoffice for the nuget only packages
* temp commit of package logic removal
* Lots of package code cleanup and removal
* Removes old package data from the test package xml
* Updates packaging code to take in XDocument instead of a file since we'll not be dealing with files, starts creating expressions for the package migrations scripting.
* fixing tests
* Fixes runtime state and boot failed middleware so that it actually runs. Separates out unattended install/upgrade into notification handlers.
* Gets unattended package migrations working and running
* Gets embedded package.xml resources able to install from package migration.
* Implements automatic package migrations for package that just declare an xml data manifest.
* fix build
* small cleanups
* fix build
* adds some tests
* Fix export test
* Fix newlines in test for linux
* Typo
* removes old todos and updates AutomaticPackgeMigrationPlan to use getter with backing field.
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Init commit for examine 2.0 work, most old umb examine tests working, probably a lot that doesn't
* Gets Umbraco Examine tests passing and makes some sense out of them, fixes some underlying issues.
* Large refactor, remove TaskHelper, rename Notifications to be consistent, Gets all examine/lucene indexes building and startup ordered in the correct way, removes old files, creates new IUmbracoIndexingHandler for abstracting out all index operations for umbraco data, abstracts out IIndexRebuilder, Fixes Stack overflow with LiveModelsProvider and loading assemblies, ports some changes from v8 for startup handling with cold boots, refactors out LastSyncedFileManager
* fix up issues with rebuilding and management dashboard.
* removes old files, removes NetworkHelper, fixes LastSyncedFileManager implementation to ensure the machine name is used, fix up logging with cold boot state.
* Makes MainDom safer to use and makes PublishedSnapshotService lazily register with MainDom
* lazily acquire application id (fix unit tests)
* Fixes resource casing and missing test file
* Ensures caches when requiring internal services for PublishedSnapshotService, UseNuCache is a separate call, shouldn't be buried in AddWebComponents, was also causing issues in integration tests since nucache was being used for the Id2Key service.
* For UmbracoTestServerTestBase enable nucache services
* Fixing tests
* Fix another test
* Fixes tests, use TestHostingEnvironment, make Tests.Common use net5, remove old Lucene.Net.Contrib ref.
* Fixes up some review notes
* Fixes issue with doubly registering PublishedSnapshotService meanig there could be 2x instances of it
* Checks for parseexception when executing the query
* Use application root instead of duplicating functionality.
* Added Examine project to netcore only solution file
* Fixed casing issue with LazyLoad, that is not lowercase.
* uses cancellationToken instead of bool flag, fixes always reading lastId from the LastSyncedFileManager, fixes RecurringHostedServiceBase so that there isn't an overlapping thread for the same task type
* Fix tests
* remove legacy test project from solution file
* Fix test
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Gather all notifications in Umbraco.Cms.Core.Notifications
* Rename notifications to match convention
* Move and rename missed notifications
* Move the three remaining public notification into Umbraco.Cms.Core.Notifications
* Allow IMediaFileSystem to be replace in the DI, or registered with inner filesystem
* Remove GetFileSystem from Filesystems
It was only used by tests.
* Make MediaFileSystem inherit from PhysicalFileSystem directly
* Remove FileSystemWrapper
* Remove inner filesystem from MediaFileSystem
* Add MediaFileManager and bare minimum to make it testable
* Remove MediaFileSystem
* Fix unit tests using MediaFileManager
* Remove IFileSystem and rely only on FileSystem
* Hide dangerous methods in FileSystems and do some cleaning
* Apply stylecop warnings to MediaFileManager
* Add FilesystemsCreator to Tests.Common
This allows you to create an instance if FileSystems with your own specified IFileSystem for testing purposes outside our own test suite.
* Allow the stylesheet filesystem to be replaced.
* Fix tests
* Don't save stylesheetWrapper in a temporary var
* refactor(FileSystems): change how stylesheet filesystem is registered
* fix(FileSystems): unable to overwrite media filesystem
SetMediaFileSystem added the MediaManager as a Singleton instead of
replacing the existing instance.
* fix(FileSystems): calling AddFileSystems replaces MediaManager
When calling AddFileSystems after SetMediaFileSystem the MediaManager
gets replaced by the default PhysicalFileSystem, so instead of calling
SetMediaFileSystem in AddFileSystems we now call TrySetMediaFileSystem
instead. This method will not replace any existing instance of the
MediaManager if there's already a MediaManager registered.
* Use SetMediaFileSystem instead of TrySet, and rename AddFilesystems to ConfigureFileSystems
Also don't call AddFileSystems again in ConfigureFilesystems
* Don't wrap CSS filesystem twice
* Add CreateShadowWrapperInternal to avoid casting
* Throw UnauthorizedAccessException isntead of InvalidOperationException
* Remove ResetShadowId
Co-authored-by: Rasmus John Pedersen <mail@rjp.dk>
* Remove ScopeEntityRemove from ContentRepositoryBase and rely on "ing" notifications
* Remove old event handler from ContentEventsTests
* Remove ScopedVersionRemove from ContentRepositoryBase and rely on service notifications instead
* Remove unused ScopedVersionEventArgs from ContentRepositoryBase
* Migrate ScopeEntityRefresh to notification pattern
Unfortunately it's still published from the repository base
* Add simple content type notifications
* Publish Notifications instead of events in ContentTypeServiceBase for simple events
* Switch OnChanged to use Notifications for ContentTypeServices
* Publish notifications instead of raising ScopedRefreshedEntity on ContentTypeServiceBase
* Hook up to the new ContentType notifications
* Remove DistributedCacheBinderTests
There are no longer any events to really test on.
* Remove ContentTypeChange EventArgs
* Remove ContentService_Copied from DistributedCacheBinder
It's no longer used
* Cleanup
* Cleanup
* Removed uncommented code
* Fixed issue with unattented installs
* Re-add ContentTreeChangeNotification to DistributedCache
* Add new notification for ScopedEntityRemove
Marked as obsolete/hidden in editor, since this should only be used for nucache for now, and should really be changed in the future
* Mark Refresh notifications as obsolete/hidden
These should not be used anywhere outside Nucache, and should be changed to tree change at some point.
* Raise ScopedEntityRemoveNotification on repos and use in nucache
Co-authored-by: Bjarke Berg <mail@bergmania.dk>