Skip to content

Commit

Permalink
Merge pull request #13 from marmelab/fix/setup-redirect
Browse files Browse the repository at this point in the history
Fix(init): Remove login required notification if crm is not initialized
  • Loading branch information
slax57 authored Aug 5, 2024
2 parents 336e4b9 + cf7e553 commit 6f5460d
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 17 deletions.
28 changes: 26 additions & 2 deletions src/authProvider.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { supabaseAuthProvider } from 'ra-supabase';
import { AuthProvider } from 'react-admin';
import { supabase } from './supabase';

export const USER_STORAGE_KEY = 'user';

export const authProvider = supabaseAuthProvider(supabase, {
const baseAuthProvider = supabaseAuthProvider(supabase, {
getIdentity: async user => {
const { data, error } = await supabase
.from('sales')
Expand All @@ -29,9 +30,32 @@ export const authProvider = supabaseAuthProvider(supabase, {
.single();

if (!data || error) {
throw new Error();
return null;
}

return data?.administrator ? 'admin' : 'user';
},
});

export async function getIsInitialized() {
const { data } = await supabase.from('init_state').select('is_initialized');

return data?.at(0)?.is_initialized > 0;
}

export const authProvider: AuthProvider = {
...baseAuthProvider,
checkAuth: async params => {
const isInitialized = await getIsInitialized();

if (!isInitialized) {
// eslint-disable-next-line no-throw-literal
throw {
redirectTo: '/sign-up',
message: false,
};
}

return baseAuthProvider.checkAuth(params);
},
};
11 changes: 4 additions & 7 deletions src/dataProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ import {
UpdateParams,
withLifecycleCallbacks,
} from 'react-admin';
import { getIsInitialized } from './authProvider';
import { getActivityLog } from './dataProvider/activity';
import { getCompanyAvatar } from './misc/getCompanyAvatar';
import { getContactAvatar } from './misc/getContactAvatar';
import { supabase } from './supabase';
import {
Contact,
Expand All @@ -19,8 +22,6 @@ import {
SalesFormData,
SignUpData,
} from './types';
import { getCompanyAvatar } from './misc/getCompanyAvatar';
import { getContactAvatar } from './misc/getContactAvatar';

if (import.meta.env.VITE_SUPABASE_URL === undefined) {
throw new Error('Please set the VITE_SUPABASE_URL environment variable');
Expand Down Expand Up @@ -194,11 +195,7 @@ const dataProviderWithCustomMethods = {
return getActivityLog(baseDataProvider, companyId);
},
async isInitialized() {
const { data } = await supabase
.from('init_state')
.select('is_initialized');

return data?.at(0)?.is_initialized > 0;
return getIsInitialized();
},
} satisfies DataProvider;

Expand Down
13 changes: 5 additions & 8 deletions src/root/CRM.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
localStorageStore,
} from 'react-admin';

import { deepmerge } from '@mui/utils';
import { Route } from 'react-router';
import Layout from '../Layout';
import { authProvider } from '../authProvider';
Expand All @@ -18,6 +19,7 @@ import { dataProvider } from '../dataProvider';
import deals from '../deals';
import { LoginPage } from '../login/LoginPage';
import { SignupPage } from '../login/SignupPage';
import sales from '../sales';
import { SettingsPage } from '../settings/SettingsPage';
import {
ConfigurationContextValue,
Expand All @@ -34,8 +36,6 @@ import {
defaultTaskTypes,
defaultTitle,
} from './defaultConfiguration';
import sales from '../sales';
import { deepmerge } from '@mui/utils';

// Define the interface for the CRM component props
type CRMProps = {
Expand Down Expand Up @@ -136,14 +136,11 @@ export const CRM = ({
theme={lightTheme}
darkTheme={darkTheme || null}
>
<CustomRoutes noLayout>
<Route path={SignupPage.path} element={<SignupPage />} />
</CustomRoutes>
{permissions => (
<>
<CustomRoutes noLayout>
<Route
path={SignupPage.path}
element={<SignupPage />}
/>
</CustomRoutes>
<CustomRoutes>
<Route
path={SettingsPage.path}
Expand Down

0 comments on commit 6f5460d

Please sign in to comment.