Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

206 rader
7.2 KiB

  1. import {lazy, useContext} from 'react';
  2. // project import
  3. import Loadable from 'components/Loadable';
  4. import MainLayout from "../layout/MainLayout";
  5. import AbilityContext from "../components/AbilityProvider";
  6. import {handleRouteAbility} from "../utils/CommonFunction";
  7. import {Navigate} from "react-router";
  8. // render - login
  9. const SettingPage = Loadable(lazy(() => import('pages/lionerSettingPage')));
  10. const LogoutPage = Loadable(lazy(() => import('pages/extra-pages/LogoutPage')));
  11. const PasswordPolicyPage = Loadable(lazy(()=> import('pages/lionerPasswordPolicyPage')))
  12. const UserSearchPage = Loadable(lazy(()=>import ('pages/lionerUserSearchPage')));
  13. const CategoryPage = Loadable(lazy(()=>import ('pages/lionerCategoryPage')));
  14. const UserMaintainPage = Loadable(lazy(() => import('pages/lionerUserDetailPage')));
  15. const UserGroupSearchPage = Loadable(lazy(() => import('pages/lionerUserGroupSearchPage')));
  16. const UserGroupDetailPage = Loadable(lazy(() => import('pages/lionerUserGroupDetailPage')));
  17. const DivisionSearchPage = Loadable(lazy(() => import('pages/lionerDivisionSearch')));
  18. const DivisionEditPage = Loadable(lazy(() => import('pages/lionerDivisionEdit')));
  19. const PromotionChannelPage = Loadable(lazy(() => import('pages/lionerPromotionChannelPage')));
  20. const TagPage = Loadable(lazy(() => import('pages/lionerTagPage')));
  21. const AuditLogPage = Loadable(lazy(() => import('pages/lionerAuditTrailPage')));
  22. const LoginLogPage = Loadable(lazy(() => import('pages/lionerLoginLog')));
  23. const EmailConfigPage = Loadable(lazy(() => import('pages/lionerEmailConfig')));
  24. const GenerateReminderPage = Loadable(lazy(() => import('pages/lionerManualButtonPage')));
  25. const ClientDepartmentPage = Loadable(lazy(() => import('pages/lionerClientDepartmentPage')));
  26. // ==============================|| AUTH ROUTING ||============================== //
  27. const SettingRoutes = () => {
  28. const ability = useContext(AbilityContext);
  29. return {
  30. path: '/',
  31. element: <MainLayout />,
  32. children: [
  33. {
  34. path: 'category',
  35. element: (
  36. handleRouteAbility(
  37. ability.can('MAINTAIN', 'CATEGORY'),
  38. <CategoryPage />,
  39. <Navigate to="/" />
  40. )
  41. ),
  42. },
  43. {
  44. path: 'tag',
  45. element:(
  46. handleRouteAbility(
  47. ability.can('MAINTAIN', 'TAG'),
  48. <TagPage />,
  49. <Navigate to="/" />
  50. )
  51. ),
  52. },
  53. {
  54. path: 'promotionChannel',
  55. element: (
  56. handleRouteAbility(
  57. ability.can('MAINTAIN', 'PROMOTION_CHANNEL'),
  58. <PromotionChannelPage />,
  59. <Navigate to="/" />
  60. )
  61. ),
  62. },
  63. {
  64. path: 'clientDepartment',
  65. element: (
  66. handleRouteAbility(
  67. ability.can('MAINTAIN', 'CLIENT_DEPARTMENT'),
  68. <ClientDepartmentPage />,
  69. <Navigate to="/" />
  70. )
  71. ),
  72. },
  73. {
  74. path: 'division',
  75. element: (
  76. handleRouteAbility(
  77. ability.can('MAINTAIN', 'DIVISION'),
  78. <DivisionSearchPage />,
  79. <Navigate to="/" />
  80. )
  81. ),
  82. },
  83. {
  84. path: 'division/:id',
  85. element:(
  86. handleRouteAbility(
  87. ability.can('MAINTAIN', 'DIVISION'),
  88. <DivisionEditPage />,
  89. <Navigate to="/" />
  90. )
  91. ),
  92. },
  93. {
  94. path: 'usergroupSearchview',
  95. element: (
  96. handleRouteAbility(
  97. ability.can('MAINTAIN', 'USER_GROUP'),
  98. <UserGroupSearchPage />,
  99. <Navigate to="/" />
  100. )
  101. ),
  102. },
  103. {
  104. path: 'userGroup/:id',
  105. element:(
  106. handleRouteAbility(
  107. ability.can('MAINTAIN', 'USER_GROUP'),
  108. <UserGroupDetailPage />,
  109. <Navigate to="/" />
  110. )
  111. ),
  112. },
  113. {
  114. path: 'user/:id',
  115. element: (
  116. handleRouteAbility(
  117. ability.can('VIEW', 'USER'),
  118. <UserMaintainPage />,
  119. <Navigate to="/" />
  120. )
  121. ),
  122. },
  123. {
  124. path: 'userSearchview',
  125. element:(
  126. handleRouteAbility(
  127. ability.can('VIEW', 'USER'),
  128. <UserSearchPage />,
  129. <Navigate to="/" />
  130. )
  131. ),
  132. },
  133. {
  134. path: 'setting',
  135. element: (
  136. handleRouteAbility(
  137. ability.can('MANAGE', 'SYSTEM_CONFIGURATION'),
  138. <SettingPage />,
  139. <Navigate to="/" />
  140. )
  141. ),
  142. },
  143. {
  144. path: 'auditLog',
  145. element:(
  146. handleRouteAbility(
  147. ability.can('VIEW', 'AUDIT_LOG'),
  148. <AuditLogPage />,
  149. <Navigate to="/" />
  150. )
  151. ),
  152. },
  153. {
  154. path: 'loginLog',
  155. element: (
  156. handleRouteAbility(
  157. ability.can('VIEW', 'LOGIN_LOG'),
  158. <LoginLogPage />,
  159. <Navigate to="/" />
  160. )
  161. ),
  162. },
  163. {
  164. path: 'passwordpolicy',
  165. element: (
  166. handleRouteAbility(
  167. ability.can('MANAGE', 'SYSTEM_CONFIGURATION'),
  168. <PasswordPolicyPage />,
  169. <Navigate to="/" />
  170. )
  171. ),
  172. },
  173. {
  174. path: 'emailConfig',
  175. element: (
  176. handleRouteAbility(
  177. ability.can('MANAGE', 'SYSTEM_CONFIGURATION'),
  178. <EmailConfigPage />,
  179. <Navigate to="/" />
  180. )
  181. ),
  182. },
  183. {
  184. path: 'generateReminder',
  185. element: (
  186. handleRouteAbility(
  187. ability.can('MANAGE', 'SYSTEM_CONFIGURATION'),
  188. <GenerateReminderPage />,
  189. <Navigate to="/" />
  190. )
  191. ),
  192. },
  193. {
  194. path: 'logout',
  195. element: <LogoutPage />
  196. }
  197. ]
  198. }
  199. };
  200. export default SettingRoutes;