Authorization:
- }
+ control={
}
label="Allow access to all roles"
/>
(
diff --git a/packages/toolpad-app/src/toolpad/AppEditor/PagesExplorer/CreatePageNodeDialog.tsx b/packages/toolpad-app/src/toolpad/AppEditor/PagesExplorer/CreatePageNodeDialog.tsx
index 89db3253ee1..62dddce7e2b 100644
--- a/packages/toolpad-app/src/toolpad/AppEditor/PagesExplorer/CreatePageNodeDialog.tsx
+++ b/packages/toolpad-app/src/toolpad/AppEditor/PagesExplorer/CreatePageNodeDialog.tsx
@@ -60,6 +60,9 @@ export default function CreatePageDialog({ open, onClose, ...props }: CreatePage
attributes: {
title: name,
display: 'shell',
+ authorization: {
+ allowAll: true,
+ },
},
});
const appNode = appDom.getApp(dom);
diff --git a/packages/toolpad-app/src/toolpad/AppEditor/PagesExplorer/index.tsx b/packages/toolpad-app/src/toolpad/AppEditor/PagesExplorer/index.tsx
index ff42fa79b70..a1bc515ca56 100644
--- a/packages/toolpad-app/src/toolpad/AppEditor/PagesExplorer/index.tsx
+++ b/packages/toolpad-app/src/toolpad/AppEditor/PagesExplorer/index.tsx
@@ -239,6 +239,9 @@ export default function PagesExplorer({ className }: PagesExplorerProps) {
attributes: {
title: newPageName,
display: 'shell',
+ authorization: {
+ allowAll: true,
+ },
},
});
const appNode = appDom.getApp(dom);
diff --git a/packages/toolpad-app/src/types.ts b/packages/toolpad-app/src/types.ts
index f62796bf1b9..5ea5b2a91cb 100644
--- a/packages/toolpad-app/src/types.ts
+++ b/packages/toolpad-app/src/types.ts
@@ -213,7 +213,7 @@ export interface ToolpadProjectOptions {
export type CodeEditorFileType = 'resource' | 'component';
-export type AuthProvider = 'github' | 'google';
+export type AuthProvider = 'github' | 'google' | 'azure-ad';
export interface AuthProviderConfig {
provider: AuthProvider;
diff --git a/packages/toolpad-app/typings/@auth.d.ts b/packages/toolpad-app/typings/@auth.d.ts
index e28ef3fb444..66dcb23e64e 100644
--- a/packages/toolpad-app/typings/@auth.d.ts
+++ b/packages/toolpad-app/typings/@auth.d.ts
@@ -1,5 +1,13 @@
export declare module '@auth/core/types' {
+ interface User {
+ roles: string[];
+ }
interface Profile {
verifiedEmails?: string[];
}
}
+export declare module '@auth/core/jwt' {
+ interface JWT {
+ roles: string[];
+ }
+}
From 60f031d0e75369ccb7a3680e8df58abd0a29068b Mon Sep 17 00:00:00 2001
From: Pedro Ferreira <10789765+apedroferreira@users.noreply.github.com>
Date: Fri, 12 Jan 2024 14:33:17 +0000
Subject: [PATCH 09/35] Use just size property in icon
---
packages/toolpad-app/src/components/icons/AzureIcon.tsx | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/packages/toolpad-app/src/components/icons/AzureIcon.tsx b/packages/toolpad-app/src/components/icons/AzureIcon.tsx
index bd39a325d4a..6a72be449d7 100644
--- a/packages/toolpad-app/src/components/icons/AzureIcon.tsx
+++ b/packages/toolpad-app/src/components/icons/AzureIcon.tsx
@@ -1,17 +1,16 @@
import * as React from 'react';
interface AzureIconProps {
- height?: number;
- width?: number;
+ size?: number;
color?: string;
}
-export default function AzureIcon({ height = 18, width = 18, color = '#fff' }: AzureIconProps) {
+export default function AzureIcon({ size = 18, color = '#fff' }: AzureIconProps) {
return (
);
}
+
+interface RoleMapping {
+ role: string;
+ providerRoles: string;
+}
+
+interface RoleMappingRow extends RoleMapping {
+ id: string;
+}
+
+export function AppRoleMappingsEditor({
+ roleEnabledAuthProviderOptions,
+ onRowUpdateError,
+}: {
+ roleEnabledAuthProviderOptions: [string, AuthProviderOption][];
+ onRowUpdateError: (error: Error) => void;
+}) {
+ const { dom } = useAppState();
+ const appState = useAppStateApi();
+
+ const [activeAuthProvider, setAuthProvider] = React.useState