* Added functionality to enable 2FA for users..
* Do not use the obsolete ctor in tests
* cleanup
* Cleanup
* Convert User view from overlay to infinite editor
* Add support for having additional editors on top of the user (2fa) which overlay does not support
* Add controllerAs syntax in the template
* Remove unused dependencies
* Adjustments to 2fa login view
* organize elements
* add translations
* add a11y helpers
* add autocompletion = one-time-code
* change to controllerAs syntax
* add callback to cancel 2fa and fix error where submit button was not reset when all other validations were
* add a cancel/go back button to the 2fa view
* replace header with something less obstrusive
* move logout button to the footer in the new editor view
* change 'edit profile' to an umb-box and move ng-if for password fields out to reduce amount of checks
* Add umb-box to external login provider section
* add umb-box to user history section
* bug: fix bug where notificationsService would not allow new notifications if removeAll had been called
* add styling and a11y to configureTwoFactor view
- also ensure that the view reloads when changes happen in the custom user view to enable 2fa
- ensure that view updates when disabling 2fa
- add extra button to show options (disable) for each 2fa provider
* add notification when 2fa is disabled
* add data-element to support the intro tour
also changed a minor selector in the cypress test
* correct usage of umb-box with umb-box-content
* do not use the .form class twice to prevent double box-shadow
* make tranlastion for 2fa placeholder shorter
* ensure that field with 2fa provider is always visible when more than 1 provider
* move error state of 2fa field to token field
* update translation of multiple 2fa providers
* move CTA buttons to right side to follow general UI practices
* rename options to disable
* add disabled state
* add helper folders to gitignore so you can work with plugins and custom code without committing it accidentally
* move the disable functionality to its own infinite editor view
* use properties from umb-control-group correctly
* add 'track by' to repeater
* make use of umb-control-group
* remove unused functions
* clean up translations
* add Danish translations
* copy translations to english
* Only return enabled 2fa providers as expected
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Added configuration and checks for creation of default Umbraco data.
* Fixed configuration binding issues.
* Updated comments.
* Added DefaultDataCreationSettings to the JSON schema.
* Removed option to not install default relation types as Umbraco relies on (and will recreate) them if they aren't there.
* Renamed configuration class used for install of default data and converted to named optios.
* Fix to failing unit tests.
* Fixes for integration tests.
* Apply suggestions from code review
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Further fix from code review.
* Updated naming as per PR review suggestions.
* Update src/Umbraco.Infrastructure/Migrations/Install/DatabaseDataCreator.cs
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Further enhancements for legacy password support.
For users - try new style passwords first and fallback on failure seeing
as a valid modern password is the norm, rehash is only one time.
For both users and members also deals with the fact that for
useLegacyEncoding we could store any old thing in passwordConfig
e.g. it's possible to get Umbraco8 to store "HMACSHA384" alongside
the hash even though it's really HMACSHA1 with password used as key
(try it out by tweaking machine key settings and setting
useLegacyEncoding=true).
Has behavioral breaking changes in LegacyPasswordSecurity as the
code now expects consumers to to respect IsSupportedHashAlgorithm
rather than ignoring it.
* Less rushed removals
* Fix relation type tests
* Fix saving content not updating the UI
We have to map to display after we've saved content or we'll be missing information generated when saving content such as ID
* Dont map to display to get isBlueprint
* Adding TrackedReferencesController
* Adding/changing views
* Adding/Editing js files
* RelationService changes
* RelationRepository changes
* Adding missing translations
* Adding/Modifying tests
* Beginning of #9125 migration
* Introducing a new component + refactoring based on that
* Abstracting + refactoring
* Work on content unpublishing
* Work on media.delete
* Various small changes
* Beginning of #9119 migration
* Changes on content.delete
* Various fixes
* Adding new keys used in the listview bulk actions
* Adding methods to get the items used in relations from array of ids
* Adding the checkLinkedItems function to the trackedReferencesResource
* Passing the selected items from a listview to unpublish and delete
* Adding umb-tracked-references-listview
* Adding umb-tracked-references-listview-table with language column
* Fixes for tracked references
* Changes in listview unpublish dialog
* Changes in listview delete dialog
* Removing Variants logic as it is not currently supported
* Visual fixes
* Closing dialogs on click
* Fix wording
* Fix breaking changes
* Change to a single title "Items in use" instead of 2 different for Content and Media
* No need for obsoleting because we can change new controllers
* Return ActionResult from actions
* V9: Prevent delete or unpublish of items that have references (#12047)
* Introducing config settings that prevent delete or unpublish of items referenced by other items
* Disable deletion of content items and show a new warning
* Disable deletion of media items and show a new warning
* Disable deletion of list view items
* Disable unpublish and bulk unpublish
* Add a new warning
* V9: Displaying descendants in use as part of item tracking (#12039)
* Replace HasReferencesInDescendants with GetPagedDescendantsInReferences
* Display descendants in use on parent's info tab
* Add getPagedDescendantsInReferences to trackedReferencesResource
* Add lang keys for Descendants in use
* Refactoring controller actions
* Don't call check descendants usage when it is a new item
* rename busfy to busy
* always show references
* rearrange for scrollbar to appear at the edge of the dialog
* use the word referenced instead of used
* change fallback texts
* Added "IsDependency" to relation types
* refactor of umb-tracked-references
* rename checkLinkedItems to getPagedReferencedItems
* rename check to load, to be consistent with the rest.
* Refactored backend . Needs frontend fixes
* Cleanup
* Use filters
* Front-end refactor to match refactored end-points
* Fixed bug + warning
* Fixed query (more then 2100 descensdants) and optimized it (using nested select instead of inner join).
* remove comment
* hideNoneDependencies including varying text for the configuration
* Hack for SqlCE :(
* some final adjustments for item tracking ui
* Unbreak change
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add SiteIdentifierService
* Use SiteIdentifierService in TelemetryService
* Use SiteIdentifierService when installing
* Remove timeout
* Use TryGetOrCreateSiteIdentifier in TelemetryService
* Add site identifier to dashboard url
* Fix and add tests
* Don't accept empty guid as valid site identifier
* Fix dashboard controller
* Fix site id query parameter
* Use Optionsmonitor onchange
Co-authored-by: nikolajlauridsen <nel@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Extract MainDomKey generation to its own class to ease customization.
Also add discriminator config value to GlobalSettings for advanced users.
Prevents a mandatory custom implementation, should be good enough for
the vast majority of use cases.
* Prevent duplicate runs of ScheduledPublishing during slot swap.
* Add filesystem based MainDomLock
* 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
* Added 2fa for members
* Change notification handler to be on deleted
* Update src/Umbraco.Infrastructure/Security/MemberUserStore.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* updated snippets
* 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.
* Updated 2fa for members + publish notification when 2fa is requested.
* Changed so only Members out of box supports 2fa
* Cleanup
* rollback of csproj file, that should not have been changed
* Removed confirmed flag from db. It was not used.
Handle case where a user is signed up for 2fa, but the provider do not exist anymore. Then it is just ignored until it shows up again
Reintroduced ProviderName on interface, to ensure the class can be renamed safely
* Bugfix
* Registering DeleteTwoFactorLoginsOnMemberDeletedHandler
* Rollback nuget packages added by mistake
* Update src/Umbraco.Infrastructure/Services/Implement/TwoFactorLoginService.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Update src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TwoFactorLoginRepository.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Added providername to snippet
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* 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>
* Add failing test to demo issue with handlers + scoped dependencies.
* Make using scoped services in notification handlers less painful.
* Update comments for accuracy.
* 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>
By adding a new configuration and mapping the old CharCollection to that, we can get around having to return null the first time, by obsoleting the old one and redirecting to the new GetCharReplacements method
* 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>
Since this is the way it's been previously, we cannot change the behaviour of this. Unfortunately due to how the config binding works, we have to make sure it returns null the very first time it's called by the framework to ensure that overrides actually gets registered.
* Add TelemetryService
Currently it only allows you to get a list of the name of all the installed packages
* Create model class for package telemetry
And move the telemetry report data out of ReportSiteTask
* Add version as an option in package manifest
* Use TelemetryService to generate telemetry data
Instead of doing it directly in the ReportSiteTask
* Seal TelemetryService
This should not be overwritten
* Add option for package creators to opt out
* Add global setting to restrict package telemetry
* Add TelemetryService unit tests
* Add ManifestParser tests for new properties
* Clean
* Update src/Umbraco.Core/Telemetry/TelemetryService.cs
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Create interface for telemetry service
* Use IOptionsMonitor instead of IOptions
However I chose to use CurrentValue since according to microsoft: "Some file systems, such as Docker containers and network shares, may not reliably send change notifications.", additionally TelemetryService only runs once pr. day, so it shouldn't be too much of an issue that it doesn't cache the result.
* Use is false instead of negation
It's a bit more readable
* Track restrict package telemetry value
* Save RestrictPackageTelemetry in report data
Not packages, since it'll be the same for all packages
* Fix TelemetryService unit tests
* Clean
* Update src/Umbraco.Core/Telemetry/ITelemetryService.cs
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Remove RestrictPackageTelemetry
Co-authored-by: Bjarke Berg <mail@bergmania.dk>