Commit Graph

171 Commits

Author SHA1 Message Date
Jacob Overgaard
a27267e5d3 V13: New login screen (#14780)
* implement interface

* add build targets for login screen

* package lock

* move components to pages folder

* load logo and background from property

* styling

* move mocks around

* remove unused vars

* add backoffice handlers

* install rxjs

* add mock data

* add element and context for localization

* mock data

* use umb-localize

* remove the extra logic with check for section_

* change key for login button

* add base to vite environment

* login styling

* cleanup and button styling

* use correct reset url

* change body of reset request

* validate password reset code

* redirect to /login/new on reset password code verify

* add obsolete messages

* remove inline scripts for old backoffice

* remove shadowdom from localize element

* Revert "remove shadowdom from localize element"

This reverts commit 46ae282f7ce9235c15f160d57d54acd5d3378668.

* hook up reset password to api

* rename pages to state as it is not actually used as different pages

* reset password styling

* more styling

* add confirmation page to new password

* set router to firstUpdated to avoid rAF

* set a custom baseUrl on the router to make sure it works without trailing slash

* use route parameters to redirect on the login page to ensure correct escaping

* add server variables

* make sure auth layout uses the provided properties for images

* format

* redirect to code expired page

* add missing properties

* use allowPasswordReset and allowInvite properties in routing and layout

* make ts happy

* cleanup

* init invite page

* hook up usernameIsEmail

* init external login providers

* add mock provider

* add padding to buttons

* replace uui button with normal button

* add external login providers as slot

* add disableLocalLogin property

* add form to external login providers

* remove unused method

* fix build errors

* add attributes for external login

* add custom view to external login

* add new custom icon registry

* attach two icon registries

* use relative paths

* use relative paths

* use main registry instead of providing directly

* add look and color to external login

* implement getIcons() method

* use getIcons() to request icons

* install remixicon to supplement backoffice icons (replacing font-awesome eventually)

* move icon registries to auth element

* Revert "install remixicon to supplement backoffice icons (replacing font-awesome eventually)"

This reverts commit 0c6659d8d9dfe0664314ec6a3acaa8e20cb606ed.

* add icons for common external providers

* add more icons

* remove resetCode hack as it is no longer needed

* add validation to new password

* get gretting from translation file

* add hack to get text left aligned in uui-button

* add custom router

* WIP Use router

* also change the URL during an action

* update login action to redirect to /new when needed

* redirect to login from reset and new if not allowed

* fix new password button href

* use property on login element instead of context

* check for redirect on invite-user

* move fake external login providers to index.html for use in dev server

* allow password reset on dev server

* add look and color

* only set styles for default view buttons

* suppress vite import warning

* check and inform for errors and show 'nothing' if a custom view fails to load

* fix mock path for localizedtext

* fix build errors

* ensure that msw (and all its dependencies) do not end up in the production bundle (saved ~500 KB)

* Revert AngularValueExternalLoginInfoScriptAsync removal

* forward the providerName to custom views

* change default icon

* add button look and color to external login provider options

* add obsolete to ButtonStyle and add a mapper to new values

* add required xml comments

* map external login providers to <umb-login-external />

* fix typo

* only show external login layout if there are slotted children

* pass on name as "provider"

* send externalLoginUrl to custom views

* cleanup

* global import

* hide external logins completely when empty

* cleanup

* setup redirect to invite

* rename pages to name-page

* fix names and paths

* use new password layout for invite and new password

* add comments

* cleanup and use confirmation element

* set parameters after successful verifyinvite

* map display-name and provider-name to the external element

* map display-name

* set up external login to handle correct display- and provider-name with documentation

* add support for disabling local login

* update path to handlers

* add more localization

* add handlers for 2fa

* router should support a factory for component

* push login to ?flow=mfa on 402 codes

* add page to handle 2fa/mfa

* add support for custom routing

* add fallback for welcome greeting

* handle AngularJS silliness

* fix typo

* fix router and replace custom umbroute:statechange  event with native pushState

* simplify code and cleanup

* a11y improvements

* you can now navigate to anywhere from anywhere with pushState

* access the "twoFactorView" from the backend

* set the default implemented twoFactorView to NULL

* add initial logic to handle a custom mfa view

* roll back custom pushState changes

* add mocks for 2fa custom view

* use router redirect

* re-enable click url change

* cleanup

* remove debug buttons

* add unsafeHTML to localize element

* load mfa custom views

* load custom view

* improve external login custom views

* using optimisation

* add current culture

* only show mfa page if 402 code has been encountered in same session

* format

* remove unnesesary action

* add new user invite password

* remove console log

* fix getting stuck at new password page if you've triggered custom validity

* unify layouts

* add styling to buttons in error layout

* remove unused css

* add error message to new password page

* add error message to reset password

* add error message to invite page

* fix invite page not being rendered

* cleanup

* add obsolete notice to PostSetInvitedUserPassword

* add request model to set a new password for an invited user

* add new method to handle invited user password

* add get password config api call

* fix password config parameters and add invite call

* get invited user

* get password config

* assign unique guid to login project

* add userId to get password config and use the config as validation

* fix

* add alerts

* fix the new password layout

* auth redirects invite error to error page

* use password config on new password page

* remove console log

* move file and remove unused extension

* make ts happy

* file structure

* rename login-extern to external-login-provider

* update element name

* update dependencies

* export custom-view.element.ts

* remove debug

* use umb-custom-view to load custom views

* build types

* move @umbraco/uui to the login app and import from there in backoffice

* make the ui library and icon registry generally available as exports from the login app

* add mock handler for icons

* cleanup package

* use uui for external login providers in the backoffice

* add imports and enable the backoffice icon registry globally

* disable shadowdom

* default background image

* use undefined

* revert angular values

* remove legacy sys variables

* add logic to handle mfa in an overlay scenario without routing

* add new login screen to replace the overlay when logged in to the backoffice

* update spec to work with locators

* cleanup of legacy context

* ViewData is not always required

* add method to solely return the default view of the backoffice to simply BackofficeController as well as unit tests

* add test for the login view

* cleanup usings

* Apply suggestions from code review

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* remove 'remember me'

* add more contrast to external login divider

* update dependencies

* set "lang" attribute to lowercase

* remove default headline

* localize the "Or" divider and add aria-hidden

* remove Umbraco reference from logo and add aria-hidden

* add aria-hidden to uui-icon inside external login buttons

* format code

* update dependencies

* update dependencies

* add translations to invite user page

* use back to login button

* update localization-context.ts to match api from old LocalizeService in Angular

* add tsc to watch

* formatting

* add missing localizations

* fix a11y issues with muted text

* refresh current user after login

* remove unused variable

* add localization

* add localization for error messages

* remove unused var

* return user after login and set successful auth

* retry request queue after login

* add language keys for failed login

* add language keys for failed login

* render the views without a router so that it works inside a modal in the backoffice

* add autocomplete to reset password fields

* add autocomplete to login screen

* add generic error layout to new-password-page

* new-password-layout should be able to handle with and without username

* update language keys

* check for userId before trying to request invited user

* show error when no invited user is found

* place back-to-login button on all error layouts

* update lockfile

---------

Co-authored-by: Jesper Møller Jensen <26099018+JesmoDev@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2023-10-23 10:06:17 +02:00
Nikolaj Brask-Nielsen
6d48091328 docs: XML warnings (#14663)
* chore: Fix XML warnings

* docs: Fix XML warnings

* docs: Fix XML in resource designer

* docs: Fix XML warnings

* Revert "docs: Fix XML in resource designer"

This reverts commit 8ea61c51ac161e1853ae080db7fe1b4d4cb4d2be.
2023-09-06 20:08:17 +02:00
Kenn Jacobsen
de73ba7256 Fix JS error when clicking a reset password link twice (#12845) 2022-08-16 09:29:52 +02:00
Nikolaj Geisle
e762fa91bc V10: fix build warnings in Web.BackOffice (#12479)
* Run code cleanup

* Start manual run

* Finish dotnet format + manual cleanup

* Fix up after merge

* Fix substrings changed to [..]

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-06-20 08:37:17 +02:00
Ronald Barendse
af4e3ca1a6 NRT amends for WithCollectionBuilder to improve API (#12387)
* Remove WithCollectionBuilder nullability to improve API

* Fix TryGetValue nullable out type
2022-05-10 19:29:55 +02:00
Bjarke Berg
13f6d4791c Move umbraco views to static assets and make that an RCL + Embedded language files (#12324)
* RCL for static assets to replace the nuspec

* Fix build

* Fix unit tests

* clean up in build.ps1

* Removed test (lang files will be removed later anyway)

* Fixed namespaces.. + Ensure we set web root path if missing (e.g. wwwroot folder do not exist) + Added StaticWebAssetBasePath

* fixed namespace

* cleanup

* Set root variable

* Added static assets

* Experimenting with StaticWebAssetBasePath

* Embedded lang files into Umbraco.Core

* Removed legacy test. New test can be implemented instead

* Fixed tests

* clean up

* Fix merge issue
2022-05-02 19:38:33 +02:00
Nikolaj Geisle
70a00901b4 Finish up Web.Backoffice 2022-04-01 14:35:18 +02:00
Nikolaj Geisle
e3a21823b4 Add nullability to filters 2022-03-31 14:39:02 +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
Shannon
53bc53a377 Merge remote-tracking branch 'origin/v9/dev' into v9/bugfix/external-login-changes
# Conflicts:
#	src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs
2021-08-06 13:47:41 -06:00
Bjarke Berg
7859798e8b Move basic auth to website part 2021-08-06 11:37:10 +02:00
Bjarke Berg
4f2cb09939 Added POC of basic auth middleware 2021-08-05 21:42:47 +02:00
Shannon
5cec6ab8f4 Fixes issue with resolving a scheme name since that is managed via IOptions but we were capturing it. 2021-07-27 16:12:23 -06: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
Shannon
b16bf2f583 Adds BundlingOptions for better bundling support and moves all logic to the bundler (don't manually process urls). 2021-07-15 14:06:33 -06:00
Shannon
df9c4a0160 Adds bundle options to the package manifest
to more control over how bundling works for static file processing for app_plugins
2021-07-15 13:26:32 -06:00
Shannon
055dacbb0e Streamlines validation response handling in controllers
This makes validation response handling more inline with aspnetcore patterns.
2021-06-25 10:29:18 -06:00
Bjarke Berg
4c78702da0 Do not restart after install, instead stop and restart the runtime. Also signin the admin user after install. 2021-05-18 19:19:58 +02:00
Warren Buckley
67f980fecb Merge pull request #10180 from umbraco/netcore/bugfix/10179_check_authorization_policies_on_nested_tree_requests
Fix check authorization policies on nested tree requests
2021-04-26 11:46:15 +01:00
Bjarke Berg
bc25e82767 https://github.com/umbraco/Umbraco-CMS/issues/10179
Execute AuthenticateAsync and AuthorizeAsync on nested requests
2021-04-23 13:32:42 +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
Andy Butland
25cb707e3e Merge pull request #10154 from umbraco/netcore/task/further-internals-public-for-package-use
Made two further classes public to provide access for Forms and other packages.
2021-04-20 12:32:19 +02:00
Andy Butland
7162d2f05f Made two further classes public to provide access for Forms and other packages. 2021-04-20 12:20:49 +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
Bjarke Berg
f1dbf6584b Adds separate call for css assets 2021-04-15 09:52:55 +02:00
Bjarke Berg
b82ea437b7 Merge remote-tracking branch 'origin/netcore/dev' into netcore/feature/remove-backofficeusermanager-static-events 2021-03-15 14:35:46 +01:00
Bjarke Berg
91e877cebe Merge pull request #9849 from kjac/netcore/bug/preview
Preview does display draft versions
2021-03-11 08:41:21 +01:00
Kenn Jacobsen
90031b83b0 Replaced static events in BackOfficeUserManager with IEventAggregator notifications and removed various unused or obsolete events (i.e. user invitation events) 2021-02-26 16:37:34 +01:00
Kenn Jacobsen
6c7316afcd Move preview authorization middleware to fix preview 2021-02-19 11:45:58 +01:00
Mole
bf41c2eeaa Netcore: Align namespaces (#9801)
* Rename Umbraco.Core namespace to Umbraco.Cms.Core

* Move extension methods in core project to Umbraco.Extensions

* Move extension methods in core project to Umbraco.Extensions

* Rename Umbraco.Examine namespace to Umbraco.Cms.Examine

* Move examine extensions to Umbraco.Extensions namespace

* Reflect changed namespaces in Builder and fix unit tests

* Adjust namespace in Umbraco.ModelsBuilder.Embedded

* Adjust namespace in Umbraco.Persistence.SqlCe

* Adjust namespace in Umbraco.PublishedCache.NuCache

* Align namespaces in Umbraco.Web.BackOffice

* Align namespaces in Umbraco.Web.Common

* Ensure that SqlCeSupport is still enabled after changing the namespace

* Align namespaces in Umbraco.Web.Website

* Align namespaces in Umbraco.Web.UI.NetCore

* Align namespaces in Umbraco.Tests.Common

* Align namespaces in Umbraco.Tests.UnitTests

* Align namespaces in Umbraco.Tests.Integration

* Fix errors caused by changed namespaces

* Fix integration tests

* Undo the Umbraco.Examine.Lucene namespace change

This breaks integration tests on linux, since the namespace wont exists there because it's only used on windows.

* Fix merge

* Fix Merge
2021-02-18 11:06:02 +01:00
Mole
7f58b3479b Align namespaces in WebAssets to Umbraco.Cms.Infrastructure 2021-02-15 13:07:12 +01:00
Mole
30b086d5d0 Align namespaces in Security to Umbraco.Cms.Core 2021-02-15 12:01:12 +01:00
Mole
55aa2edb72 Align namespaces in Umbraco.Web.Common 2021-02-10 11:42:04 +01:00
Mole
428e80f515 Align namespaces in Umbraco.Web.BackOffice 2021-02-10 11:11:18 +01:00
Mole
216fb87c79 Rename Umbraco.Core namespace to Umbraco.Cms.Core 2021-02-09 10:22:42 +01:00
Shannon
999c20a755 Fixes UmbracoIntegrationTest Mapping flag and missing using in Startup 2021-01-04 12:22:03 +11:00
Shannon
7115e0a11e shuffles code with DependencyInjection namespace, forgot to commit changes to Startup 2020-12-23 12:02:01 +11:00
Shannon
f5e9441e9f renames umb builder ext class to be more explicit, no more AddAllBackOfficeComponents, just AddBackOffice, removes NuCacheComposer 2020-12-22 12:16:37 +11:00
Shannon
86adf01f88 Merge remote-tracking branch 'origin/netcore/netcore' into netcore/task/front-end-routing
# Conflicts:
#	src/Umbraco.PublishedCache.NuCache/PublishedSnapshotService.cs
#	src/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs
#	src/Umbraco.Web.Common/Extensions/ApplicationBuilderExtensions.cs
2020-12-21 16:04:42 +11:00
Bjarke Berg
5119e8da9c Merge pull request #9515 from umbraco/netcore/feature/remove-overrideauthorization-attribute
NetCore: Get rid of OverrideAuthorizationAttribute
2020-12-16 14:49:13 +01:00
Shannon
47e98bfdc6 Fixes up issue with UsePlugins and where it's executed 2020-12-16 16:31:23 +11:00
Shannon
ce508d08ec Merge remote-tracking branch 'origin/netcore/netcore' into netcore/task/front-end-routing
# Conflicts:
#	src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs
#	src/Umbraco.Tests/Testing/UmbracoTestBase.cs
#	src/Umbraco.Web.BackOffice/Extensions/BackOfficeApplicationBuilderExtensions.cs
2020-12-16 16:18:10 +11:00
Bjarke Berg
0f36db188e Ensure folder app_plugins exists 2020-12-09 09:03:49 +01:00
Elitsa Marinovska
940084e342 Removing OverrideAuthorization attribute and related 2020-12-08 15:37:53 +01:00
Bjarke Berg
1727a5d6f1 Added specific PhysicalFileProvider for the app_plugins folder, that also checks whether extensions are allowed. 2020-12-08 12:33:07 +01:00
Shannon
e3be4009c0 Getting front end routing poc going 2020-12-08 16:33:50 +11:00
Shannon
10fc351470 merge cleanup 2020-12-04 13:09:08 +11:00
Shannon
d206273753 Merge remote-tracking branch 'origin/netcore/netcore' into netcore/task/usermanager-object-cleanup
# Conflicts:
#	src/Umbraco.Infrastructure/Composing/CompositionExtensions/CoreMappingProfiles.cs
#	src/Umbraco.Web.BackOffice/Extensions/WebMappingProfiles.cs
2020-12-04 12:59:19 +11:00
Shannon
86d231f5de removes remaining back office things from underlying UmbracoUserManager moves files 2020-12-04 02:21:21 +11:00
James Jackson-South
826e5a9bad Update to match new rules. And fix dup usings 2020-12-03 13:32:04 +00:00