register public extensions in the app element
This commit is contained in:
@@ -1,9 +1,13 @@
|
||||
import { UMB_AUTH_CONTEXT, UMB_STORAGE_REDIRECT_URL } from '@umbraco-cms/backoffice/auth';
|
||||
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { UmbServerExtensionRegistrator } from '@umbraco-cms/backoffice/extension-api';
|
||||
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
||||
|
||||
export class UmbAppAuthController extends UmbControllerBase {
|
||||
#authContext?: typeof UMB_AUTH_CONTEXT.TYPE;
|
||||
#serverExtensionRegistrator = new UmbServerExtensionRegistrator(this, umbExtensionsRegistry);
|
||||
#init;
|
||||
|
||||
constructor(host: UmbControllerHost) {
|
||||
super(host);
|
||||
@@ -11,6 +15,8 @@ export class UmbAppAuthController extends UmbControllerBase {
|
||||
this.consumeContext(UMB_AUTH_CONTEXT, (context) => {
|
||||
this.#authContext = context;
|
||||
});
|
||||
|
||||
this.#init = Promise.all([this.#serverExtensionRegistrator.registerPublicExtensions()]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -35,11 +41,17 @@ export class UmbAppAuthController extends UmbControllerBase {
|
||||
return this.makeAuthorizationRequest();
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the authorization flow.
|
||||
* It will check which providers are available and either redirect directly to the provider or show a provider selection screen.
|
||||
*/
|
||||
async makeAuthorizationRequest(): Promise<boolean> {
|
||||
if (!this.#authContext) {
|
||||
throw new Error('[Fatal] Auth context is not available');
|
||||
}
|
||||
|
||||
await this.#init;
|
||||
|
||||
this.#authContext.makeAuthorizationRequest();
|
||||
|
||||
// Reinitialize the auth flow (load the state from local storage)
|
||||
|
||||
@@ -67,6 +67,9 @@ export class UmbAppElement extends UmbLitElement {
|
||||
|
||||
new UmbContextDebugController(this);
|
||||
|
||||
new UmbBundleExtensionInitializer(this, umbExtensionsRegistry);
|
||||
new UmbEntryPointExtensionInitializer(this, umbExtensionsRegistry);
|
||||
|
||||
this.#umbIconRegistry.attach(this);
|
||||
this.#uuiIconRegistry.attach(this);
|
||||
}
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
import { UmbBackofficeContext } from './backoffice.context.js';
|
||||
import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import {
|
||||
UmbBundleExtensionInitializer,
|
||||
UmbEntryPointExtensionInitializer,
|
||||
UmbServerExtensionRegistrator,
|
||||
} from '@umbraco-cms/backoffice/extension-api';
|
||||
import { UmbServerExtensionRegistrator } from '@umbraco-cms/backoffice/extension-api';
|
||||
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
||||
|
||||
import './components/index.js';
|
||||
@@ -53,8 +49,6 @@ export class UmbBackofficeElement extends UmbLitElement {
|
||||
super();
|
||||
|
||||
new UmbBackofficeContext(this);
|
||||
new UmbBundleExtensionInitializer(this, umbExtensionsRegistry);
|
||||
new UmbEntryPointExtensionInitializer(this, umbExtensionsRegistry);
|
||||
new UmbServerExtensionRegistrator(this, umbExtensionsRegistry).registerAllExtensions();
|
||||
|
||||
// So far local packages are this simple to registerer, so no need for a manager to do that:
|
||||
|
||||
Reference in New Issue
Block a user