Commit Graph

210 Commits

Author SHA1 Message Date
Paul Johnson
ca5c85e656 v9 fix misc issues external member login (#12093)
* Add missing override for SetTokenAsync

* Fix mismatch between expected scheme prefix and exception message

* Store tokens on member update
2022-03-03 17:18:39 +00:00
Matt Brailsford
44e8808079 Check form and querystring when validating ufprt in ValidateUmbracoFormRouteStringAttribute (#11957)
* Check form and querystring when validating ufprt

Checks to see if the request has form data before validating the `ufprt` parameter, and if it doesn't assumes it must be on the querystring

* Create GetUfprt extension method

* Use GetUfprt extension

* Update UmbracoRouteValueTransformer to use GetUfrpt()

* Added missing using statement

* Check for StringValues.Empty
2022-03-03 10:42:14 +00:00
Bjarke Berg
3d28552a77 Add settings to bypass 2fa for external logins (#11959)
* Added settings for bypassing 2fa for external logins

* Fixed issue with saving roles using member ID before the member had an ID.

* Added missing extension method

* Removed test classes from git

* rollback csproj
2022-02-09 10:19:39 +01:00
Bjarke Berg
12abd883a9 Member 2FA (#11889)
* 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>
2022-01-21 13:10:34 +01:00
Bjarke Berg
029a261476 Improve functionality for external member logins (#11855)
* 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>
2022-01-19 09:21:50 +01:00
Bjarke Berg
baba7ffed9 Bugfix - Take ufprt from form data if the request has form content type, otherwise fallback to use the query (#11845) 2022-01-12 13:54:14 +01:00
Nikolaj Geisle
dd7805552f v9: Remove install endpoint as valid endpoint (#11710)
* Remove installer endpoint from valid candidates

* Removed unrelevant change
2021-12-02 10:01:23 +01:00
Shannon Deminick
5bfab13dc5 Fixes #11189 - protected content not working (#11193)
* Fixes #11189

* Fixes #11183

* Fix test Null_When_No_Content_On_PublishedRequest.

Believe this is reasonable.

* Update src/Umbraco.Web.Website/Routing/PublicAccessRequestHandler.cs

Co-authored-by: Paul Johnson <pmj@umbraco.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2021-09-26 12:42:27 +02:00
Shannon
c4fdf808d3 Fixes 10730 - Route hijacking with public access 2021-09-21 10:49:45 -06:00
Bjarke Berg
e95a759181 Updated nuget package dependencies 2021-09-20 12:59:14 +02:00
Shannon
9306861d76 Better candidate checking. 2021-09-17 13:49:12 -06:00
Shannon
57bbbfa7d3 better null checks 2021-09-17 13:35:43 -06:00
Shannon
d27dc05f32 Return null from UmbracoRouteValueTransformer when there is no matches, use a custom IEndpointSelectorPolicy to deal with 404s. 2021-09-17 12:02:04 -06:00
Shannon
494c9f1b42 UmbracoRouteValueTransformer fixes 2021-09-17 10:29:24 -06:00
Elitsa Marinovska
d8b3a1bbe5 Get rid of some more duplicate code 2021-08-17 13:09:25 +02:00
Zeegaan
6c545a29c7 Fixed missing null checks 2021-08-17 11:33:51 +02:00
Zeegaan
c5be9129bb Merge required 2 updates to use the new TryGetUmbracoContext 2021-08-16 10:42:26 +02:00
Zeegaan
33ab3a32ec Merged v9/dev into this branch 2021-08-16 10:41:36 +02:00
Bjarke Berg
2baa1abfc4 Merge remote-tracking branch 'origin/v8/8.16' into v9/feature/merge_v8_11082021
# Conflicts:
#	.github/CONTRIBUTING.md
#	build/NuSpecs/UmbracoCms.Core.nuspec
#	build/NuSpecs/UmbracoCms.Web.nuspec
#	build/NuSpecs/UmbracoCms.nuspec
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Cache/AppCaches.cs
#	src/Umbraco.Core/Cache/AppPolicedCacheDictionary.cs
#	src/Umbraco.Core/Cache/DeepCloneAppCache.cs
#	src/Umbraco.Core/Cache/WebCachingAppCache.cs
#	src/Umbraco.Core/CompositionExtensions.cs
#	src/Umbraco.Core/Models/Identity/BackOfficeIdentityUser.cs
#	src/Umbraco.Core/Models/PropertyGroupCollection.cs
#	src/Umbraco.Core/Models/PropertyTypeCollection.cs
#	src/Umbraco.Core/Persistence/Repositories/Implement/ExternalLoginRepository.cs
#	src/Umbraco.Core/ReadLock.cs
#	src/Umbraco.Core/Routing/SiteDomainMapper.cs
#	src/Umbraco.Core/UpgradeableReadLock.cs
#	src/Umbraco.Core/WriteLock.cs
#	src/Umbraco.Examine/ExamineExtensions.cs
#	src/Umbraco.Infrastructure/Examine/UmbracoFieldDefinitionCollection.cs
#	src/Umbraco.Infrastructure/Persistence/Dtos/ContentTypeDto.cs
#	src/Umbraco.Infrastructure/Persistence/Dtos/DictionaryDto.cs
#	src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberGroupRepository.cs
#	src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TemplateRepository.cs
#	src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserRepository.cs
#	src/Umbraco.Infrastructure/Services/IdKeyMap.cs
#	src/Umbraco.Infrastructure/Services/Implement/ContentService.cs
#	src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs
#	src/Umbraco.Tests/App.config
#	src/Umbraco.Web.BackOffice/Controllers/EntityController.cs
#	src/Umbraco.Web.UI.Client/package.json
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
#	src/Umbraco.Web.UI/Umbraco/config/lang/cy.xml
#	src/Umbraco.Web.UI/web.Template.config
#	src/Umbraco.Web/CacheHelperExtensions.cs
#	src/Umbraco.Web/Editors/RelationTypeController.cs
#	src/Umbraco.Web/Logging/WebProfilerProvider.cs
#	src/Umbraco.Web/Models/Mapping/MemberMapDefinition.cs
#	src/Umbraco.Web/PublishedCache/NuCache/MemberCache.cs
#	src/Umbraco.Web/Routing/ContentFinderByConfigured404.cs
#	src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs
#	src/Umbraco.Web/Security/BackOfficeUserManager.cs
#	src/Umbraco.Web/Umbraco.Web.csproj
2021-08-11 19:11:35 +02:00
Zeegaan
c07fe97edd Merge remote-tracking branch 'origin/v9/dev' into v9/bugfix/Refractor_UmbracoContextAccessor 2021-08-11 14:01:00 +02:00
Bjarke Berg
442310d0ea Fixed issue with CachedPartial that cached an unmaterialized value, that could not be used on cache hits. 2021-08-11 13:59:28 +02:00
Zeegaan
f299c6a93b Updated 15 classes to use the new TryGetUmbracoContext and implemented a Set() method in HybridUmbracoContextAccessor 2021-08-11 13:25:17 +02:00
Bjarke Berg
c2d54f508f Fixed missing TODO 2021-08-11 11:30:47 +02:00
Shannon
01dd9e6f2e Merge branch 'v9/dev' into v9/task/more-flexible-startup
# Conflicts:
#	src/Umbraco.Web.Common/Extensions/ApplicationBuilderExtensions.cs
2021-08-10 13:55:55 -06:00
Bjarke Berg
6e29645b83 Merge remote-tracking branch 'origin/v9/feature/basic_auth_middleware' into v9/feature/basic_auth_middleware 2021-08-06 12:29:35 +02:00
Bjarke Berg
641546d427 Skip for backoffice requests + Handle potential missing backoffice signin manager 2021-08-06 12:29:05 +02:00
Andy Butland
9732381933 Added unit test for TryGetBasicAuthCredentials extension method and minor code tidy. 2021-08-06 12:13:16 +02:00
Bjarke Berg
7859798e8b Move basic auth to website part 2021-08-06 11:37:10 +02:00
Bjarke Berg
f9b91cd272 Merge pull request #10661 from vsilvar/v9/feature/10648-umbracobuilder-extensions-chaining
Updated public IUmbracoBuilder extension methods to allow chaining
2021-08-04 12:45:33 +02:00
Shannon
ab66a9f33c Adds new method WithCustomDefaultMiddleware
To be able to fully customize the default middleware pipeline. Renames some interfaces and methods to be more consistent. Changes the startup builder interface types to be more type safe.
2021-07-16 16:04:14 -06:00
Vitor Rodrigues
4f9265240b #10648: Updated public IUmbracoBuilder extension methods to allow chaining 2021-07-13 01:47:26 +02:00
Shannon
bc84ffe260 Changes all collections from collection builders to resolve the concrete instances lazily.
This means we don't have to inject Lazy<T> all over the place when dealing with
colleciton builders and circular references since this will automatically just work OOTB.
This in theory should also allocate less instances during startup.
2021-07-12 15:28:46 -06:00
Bjarke Berg
28b0e108e4 Update src/Umbraco.Web.Website/DependencyInjection/UmbracoBuilderExtensions.cs 2021-07-07 14:51:05 +02:00
Warren Buckley
b177c1ba12 Further Simplification of IOptions 2021-07-07 13:07:01 +01:00
Warren Buckley
8d936c08da Change RenderController defautl type to be swapped out using the .NETCore options pattern 2021-07-07 12:52:02 +01:00
Mole
0835423e68 Replace surface with area name if surface controller has one 2021-06-30 14:36:34 +02:00
Bjarke Berg
6a35e0c62b Moves extension methods from HtmlHelper to IHtmlHelper 2021-06-17 11:04:16 +02:00
Elitsa Marinovska
0c3db013d5 Approve member when created with built-in macros (#10428)
* Allow members created with built-in macros to be approved

* Cleanup

* Newly created members are always approved like in v8.

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2021-06-15 13:51:39 +02:00
Bjarke Berg
10341a8d62 Fix ordering of views so the ordering is the same as v8 2021-05-07 10:34:39 +02:00
Warren Buckley
cb01e11586 Deterministic Builds for Sourcelink (#10237)
* Remove the properties from each .CSProj

* Move this into Directory.Build.props so all CSProj can get all these extra properties

* Add conditional to only add extra property to get the Deterministic green checkmark when running on Azure Pipleine
2021-05-06 19:56:43 +02:00
Warren Buckley
f43f37dc35 Umbraco V9 Adds SourceLink package from Microsoft for people to debug into the relevent build commit with GitHub source code (#10224)
We had this previously in Umbraco V8
2021-05-04 18:58:50 +02:00
Bjarke Berg
5157d67485 Fix for template 2021-04-27 15:01:13 +02:00
Mole
51a720b16c Add references to Umbraco.Code as PrivateAsset (#10148)
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2021-04-27 09:07:10 +02:00
Shannon Deminick
39aeec0f1f Implement password config storage for members (#10170)
* Getting new netcore PublicAccessChecker in place

* Adds full test coverage for PublicAccessChecker

* remove PublicAccessComposer

* adjust namespaces, ensure RoleManager works, separate public access controller, reduce content controller

* Implements the required methods on IMemberManager, removes old migrated code

* Updates routing to be able to re-route, Fixes middleware ordering ensuring endpoints are last, refactors pipeline options, adds public access middleware, ensures public access follows all hops

* adds note

* adds note

* Cleans up ext methods, ensures that members identity is added on both front-end and back ends. updates how UmbracoApplicationBuilder works in that it explicitly starts endpoints at the time of calling.

* Changes name to IUmbracoEndpointBuilder

* adds note

* Fixing tests, fixing error describers so there's 2x one for back office, one for members, fixes TryConvertTo, fixes login redirect

* fixing build

* Updates user manager to correctly validate password hashing and injects the IBackOfficeUserPasswordChecker

* Merges PR

* Fixes up build and notes

* Implements security stamp and email confirmed for members, cleans up a bunch of repo/service level member groups stuff, shares user store code between members and users and fixes the user identity object so we arent' tracking both groups and roles.

* Security stamp for members is now working

* Fixes keepalive, fixes PublicAccessMiddleware to not throw, updates startup code to be more clear and removes magic that registers middleware.

* adds note

* removes unused filter, fixes build

* fixes WebPath and tests

* Looks up entities in one query

* remove usings

* Fix test, remove stylesheet

* Set status code before we write to response to avoid error

* Ensures that users and members are validated when logging in. Shares more code between users and members.

* merge changes

* oops

* Reducing and removing published member cache

* Fixes RepositoryCacheKeys to ensure the keys are normalized

* oops didn't mean to commit this

* Fix casing issues with caching, stop boxing value types for all cache operations, stop re-creating string keys in DefaultRepositoryCachePolicy

* oops didn't mean to comit this

* bah, far out this keeps getting recommitted. sorry

* cannot inject IPublishedMemberCache and cannot have IPublishedMember

* splits out files, fixes build

* fix tests

* removes membership provider classes

* removes membership provider classes

* updates the identity map definition

* reverts commented out lines

* reverts commented out lines

* Implements members Password config in db, fixes members cookie auth to not interfere with the back office cookie auth, fixes Startup sequence, fixes startup pipeline

* commits change to Startup

* Rename migration from `MemberTableColumns2` to `AddPasswordConfigToMemberTable`

* Fix test

* Fix tests, but adding default passwordConfig to members

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2021-04-22 15:59:13 +02:00
Shannon Deminick
c991e83088 SiteDomainHelper cleanup (#10166)
* Fixes SiteDomainHelper = no more static weirdness and renames it.

* fix build
2021-04-22 12:25:25 +02:00
Shannon Deminick
a1624d26a3 Implements Public Access in netcore (#10137)
* Getting new netcore PublicAccessChecker in place

* Adds full test coverage for PublicAccessChecker

* remove PublicAccessComposer

* adjust namespaces, ensure RoleManager works, separate public access controller, reduce content controller

* Implements the required methods on IMemberManager, removes old migrated code

* Updates routing to be able to re-route, Fixes middleware ordering ensuring endpoints are last, refactors pipeline options, adds public access middleware, ensures public access follows all hops

* adds note

* adds note

* Cleans up ext methods, ensures that members identity is added on both front-end and back ends. updates how UmbracoApplicationBuilder works in that it explicitly starts endpoints at the time of calling.

* Changes name to IUmbracoEndpointBuilder

* adds note

* Fixing tests, fixing error describers so there's 2x one for back office, one for members, fixes TryConvertTo, fixes login redirect

* fixing build

* Fixes keepalive, fixes PublicAccessMiddleware to not throw, updates startup code to be more clear and removes magic that registers middleware.

* adds note

* removes unused filter, fixes build

* fixes WebPath and tests

* Looks up entities in one query

* remove usings

* Fix test, remove stylesheet

* Set status code before we write to response to avoid error

* Ensures that users and members are validated when logging in. Shares more code between users and members.

* Fixes RepositoryCacheKeys to ensure the keys are normalized

* oops didn't mean to commit this

* Fix casing issues with caching, stop boxing value types for all cache operations, stop re-creating string keys in DefaultRepositoryCachePolicy

* bah, far out this keeps getting recommitted. sorry

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2021-04-20 07:11:45 +02:00
Andy Butland
19a9caf47b Removed project configuration to expose internals to Forms and made the two used internal dependencies public. 2021-04-15 12:49:47 +02:00
Andy Butland
12d5bdc552 Temporary commit to remove exposing of internals to Forms. 2021-04-15 12:06:13 +02:00
Bjarke Berg
03002e16d3 Merge pull request #10117 from umbraco/netcore/task/member-macros-10577
Members working on the front-end with macro updates
2021-04-13 07:14:33 +02:00
Shannon
c2d5ab99d7 Adds explicit scopes for single transactions in member controllers 2021-04-13 11:53:42 +10:00