Redirect to new subscription if has no subscription

This commit is contained in:
Maxime Lalo 2024-04-23 11:19:38 +02:00
parent ed80fc9102
commit 3107310d24
3 changed files with 57 additions and 32 deletions

View File

@ -6,6 +6,7 @@ import NavigationLink from "../../NavigationLink";
import classes from "./classes.module.scss"; import classes from "./classes.module.scss";
import { AppRuleActions, AppRuleNames } from "@Front/Api/Entities/rule"; import { AppRuleActions, AppRuleNames } from "@Front/Api/Entities/rule";
import BurgerModalSubmenu from "./BurgerModalSubmenu"; import BurgerModalSubmenu from "./BurgerModalSubmenu";
import Rules, { RulesMode } from "@Front/Components/Elements/Rules";
type IProps = { type IProps = {
isOpen: boolean; isOpen: boolean;
@ -21,6 +22,15 @@ export default class BurgerModal extends React.Component<IProps, IState> {
<> <>
<div className={classes["background"]} onClick={this.props.closeModal} /> <div className={classes["background"]} onClick={this.props.closeModal} />
<div className={classes["root"]}> <div className={classes["root"]}>
<Rules
mode={RulesMode.OPTIONAL}
rules={[
{
action: AppRuleActions.read,
name: AppRuleNames.officeFolders,
},
]}>
<>
<NavigationLink <NavigationLink
path={Module.getInstance().get().modules.pages.Folder.props.path} path={Module.getInstance().get().modules.pages.Folder.props.path}
text="Dossiers en cours" text="Dossiers en cours"
@ -35,6 +45,8 @@ export default class BurgerModal extends React.Component<IProps, IState> {
routesActive={[Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.props.path]} routesActive={[Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.props.path]}
/> />
<div className={classes["separator"]} /> <div className={classes["separator"]} />
</>
</Rules>
<BurgerModalSubmenu <BurgerModalSubmenu
text={"Espace super admin"} text={"Espace super admin"}

View File

@ -63,6 +63,15 @@ export default function Navigation() {
return ( return (
<div className={classes["root"]}> <div className={classes["root"]}>
<Rules
mode={RulesMode.OPTIONAL}
rules={[
{
action: AppRuleActions.read,
name: AppRuleNames.officeFolders,
},
]}>
<>
<HeaderLink <HeaderLink
text={"Dossiers en cours"} text={"Dossiers en cours"}
path={Module.getInstance().get().modules.pages.Folder.props.path} path={Module.getInstance().get().modules.pages.Folder.props.path}
@ -76,14 +85,8 @@ export default function Navigation() {
path={Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.props.path} path={Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.props.path}
routesActive={[Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.props.path]} routesActive={[Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.props.path]}
/> />
{/* <Rules </>
mode={RulesMode.NECESSARY} </Rules>
rules={[
{
action: AppRuleActions.update,
name: AppRuleNames.officeRoles,
},
]}> */}
<HeaderSubmenu <HeaderSubmenu
text={"Espace office"} text={"Espace office"}
links={[ links={[

View File

@ -26,6 +26,11 @@ export default function LoginCallBack() {
const token = await Auth.getInstance().getIdnotJwt(code as string); const token = await Auth.getInstance().getIdnotJwt(code as string);
if (!token) return router.push(Module.getInstance().get().modules.pages.Login.props.path); if (!token) return router.push(Module.getInstance().get().modules.pages.Login.props.path);
await UserStore.instance.connect(token.accessToken, token.refreshToken); await UserStore.instance.connect(token.accessToken, token.refreshToken);
const jwt = JwtService.getInstance().decodeJwt();
if (!jwt) return router.push(Module.getInstance().get().modules.pages.Login.props.path + "?error=1");
if (!jwt.rules.includes("GET folders")) {
return router.push(Module.getInstance().get().modules.pages.Subscription.pages.New.props.path);
}
return router.push(Module.getInstance().get().modules.pages.Folder.props.path); return router.push(Module.getInstance().get().modules.pages.Folder.props.path);
} catch (e: any) { } catch (e: any) {
if (e.http_status === 401 && e.message === "Email not found") { if (e.http_status === 401 && e.message === "Email not found") {
@ -40,6 +45,11 @@ export default function LoginCallBack() {
const refreshToken = CookieService.getInstance().getCookie("leCoffreRefreshToken"); const refreshToken = CookieService.getInstance().getCookie("leCoffreRefreshToken");
if (!refreshToken) return router.push(Module.getInstance().get().modules.pages.Login.props.path + "?error=1"); if (!refreshToken) return router.push(Module.getInstance().get().modules.pages.Login.props.path + "?error=1");
const isTokenRefreshed = await JwtService.getInstance().refreshToken(refreshToken); const isTokenRefreshed = await JwtService.getInstance().refreshToken(refreshToken);
const jwt = JwtService.getInstance().decodeJwt();
if (!jwt) return router.push(Module.getInstance().get().modules.pages.Login.props.path + "?error=1");
if (!jwt.rules.includes("GET folders")) {
return router.push(Module.getInstance().get().modules.pages.Subscription.pages.New.props.path);
}
if (isTokenRefreshed) { if (isTokenRefreshed) {
return router.push(Module.getInstance().get().modules.pages.Folder.props.path); return router.push(Module.getInstance().get().modules.pages.Folder.props.path);
} }