@wavemaker/app-rn-runtime 11.6.0-next.26299 → 11.6.0-next.26300
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
app-rn-runtime/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavemaker/app-rn-runtime",
|
|
3
|
-
"version": "11.6.0-next.
|
|
3
|
+
"version": "11.6.0-next.26300",
|
|
4
4
|
"description": "''",
|
|
5
5
|
"main": "index",
|
|
6
6
|
"module": "index",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@react-navigation/native": "6.1.7",
|
|
50
50
|
"@react-navigation/stack": "^6.3.7",
|
|
51
51
|
"@types/lodash-es": "^4.17.6",
|
|
52
|
-
"@wavemaker/variables": "11.6.0-next.
|
|
52
|
+
"@wavemaker/variables": "11.6.0-next.26300",
|
|
53
53
|
"axios": "^1.4.0",
|
|
54
54
|
"color": "4.2.3",
|
|
55
55
|
"cross-env": "^5.2.0",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"typescript": "^5.1.3",
|
|
131
131
|
"victory-native": "36.6.11",
|
|
132
132
|
"yargs": "^16.2.0",
|
|
133
|
-
"@wavemaker/variables": "11.6.0-next.
|
|
133
|
+
"@wavemaker/variables": "11.6.0-next.26300"
|
|
134
134
|
},
|
|
135
135
|
"jest": {
|
|
136
136
|
"preset": "react-native",
|
|
@@ -28,8 +28,8 @@ export default class BasePage extends BaseFragment {
|
|
|
28
28
|
this.watcher = Watcher.ROOT.create();
|
|
29
29
|
AppSecurityService.canUserAccessPage(this.pageName).then(flag => {
|
|
30
30
|
if (!flag) {
|
|
31
|
+
this.cache = false;
|
|
31
32
|
AppSecurityService.redirectToLogin();
|
|
32
|
-
this.props.destroyMe();
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clone","isEqual","React","CommonActions","WmPage","NavigationServiceProvider","AppSecurityService","AppSpinnerService","BaseFragment","Watcher","BasePage","constructor","props","_this$appConfig$drawe","_defineProperty","pageName","route","name","pageParams","params","appConfig","currentPage","drawer","setContent","serviceDefinitions","App","watcher","ROOT","create","canUserAccessPage","then","flag","redirectToLogin","destroyMe","onComponentInit","w","targetWidget","cache","refreshdataonattach","toggleDrawer","navigation","setDrawerContent","content","arguments","length","undefined","drawerContent","drawerType","hasDrawer","setTimeout","proxy","_this$appConfig$drawe2","_this$appConfig$drawe4","_this$appConfig$drawe3","createElement","value","setAnimation","onAttach","onFragmentReady","onContentReady","onPageReady","hide","cleanup","push","addListener","refresh","componentWillUnmount","goToPage","clearCahe","_params","dispatch","reset","index","routes","navigate","onDetach","closeDrawer","Promise","resolve","goBack","canGoBack","window","history","back","openUrl","url","startsWith","substring","splits","split","map","p","forEach","openBrowser","isActiveTabbarItem","_ref","label","link","links","possibleLinks","find","l","includes","renderWidget","renderPage"],"sources":["base-page.component.tsx"],"sourcesContent":["import { clone, isEqual } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { CommonActions } from '@react-navigation/native';\nimport { BaseComponent } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmPage from '@wavemaker/app-rn-runtime/components/page/page.component';\nimport NavigationService, { NavigationServiceProvider } from '@wavemaker/app-rn-runtime/core/navigation.service';\n\nimport AppSecurityService from './services/app-security.service';\nimport AppSpinnerService from './services/app-spinner.service';\nimport BaseFragment, { FragmentProps, FragmentState } from './base-fragment.component';\nimport { Watcher } from './watcher';\n\ndeclare const window: any;\n\nexport interface PageProps extends FragmentProps {\n route: any;\n navigation: any;\n destroyMe: Function;\n}\n\nexport interface PageState extends FragmentState<PageProps> {}\n\nexport default abstract class BasePage extends BaseFragment<PageProps, PageState> implements NavigationService {\n private pageName = null as unknown as string;\n private pageParams: any = {};\n private hasDrawer = false;\n private hasTabbar = false;\n private drawerContent = null as React.ReactNode;\n private drawerType = '';\n\n constructor(props: PageProps) {\n super(props);\n this.pageName = props.route.name;\n this.pageParams = props.route.params;\n this.appConfig.currentPage = this;\n this.appConfig.drawer?.setContent(null);\n this.serviceDefinitions = this.App.serviceDefinitions;\n this.watcher = Watcher.ROOT.create();\n AppSecurityService.canUserAccessPage(this.pageName)\n .then(flag => {\n if (!flag) {\n AppSecurityService.redirectToLogin();\n this.props.destroyMe();\n }\n });\n }\n\n onComponentInit(w: BaseComponent<any, any, any>) {\n super.onComponentInit(w);\n if (w instanceof WmPage) {\n this.targetWidget = w;\n const props = w.props as any;\n this.cache = !(props.cache === false);\n this.refreshdataonattach = !(props.refreshdataonattach === false);\n }\n }\n\n toggleDrawer() {\n (this.props as PageProps).navigation.toggleDrawer();\n }\n\n setDrawerContent(content = this.drawerContent, drawerType = this.drawerType) {\n if (!content) {\n return;\n }\n this.drawerContent = content;\n this.drawerType = drawerType;\n this.hasDrawer = true;\n setTimeout(() => {\n if (this.appConfig.currentPage === this \n || this.appConfig.currentPage.proxy === this) {\n this.appConfig.drawer?.setContent(null);\n setTimeout(() => {\n this.appConfig.drawer?.setContent((\n <NavigationServiceProvider value={this}>\n {content}\n </NavigationServiceProvider>));\n }, 500);\n this.appConfig.drawer?.setAnimation(drawerType);\n }\n }, 10);\n }\n\n onAttach() {\n super.onAttach();\n this.setDrawerContent();\n }\n\n onFragmentReady() {\n return super.onFragmentReady().then(() => {\n this.onContentReady();\n this.App.onPageReady(this.pageName, this.proxy as BasePage);\n AppSpinnerService.hide(); \n this.cleanup.push((this.props as PageProps).navigation.addListener('focus', () => {\n if (this.appConfig.currentPage !== this) {\n this.appConfig.currentPage = this;\n this.onAttach();\n this.appConfig.refresh();\n }\n }));\n });\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n }\n\n goToPage(pageName: string, params: any, clearCahe = false) {\n const navigation = (this.props as PageProps).navigation;\n const _params = clone(params);\n _params && delete _params['pageName'];\n if (pageName !== this.pageName || !isEqual(_params, this.pageParams)) {\n if (pageName === this.pageName) {\n navigation.push(pageName, _params);\n } else if (clearCahe) {\n navigation.dispatch(CommonActions.reset({\n index: 0,\n routes: [\n { name: pageName, params: params }\n ]}));\n } else {\n navigation.navigate(pageName, _params);\n }\n if (this.cache) {\n this.onDetach();\n } else {\n this.props.destroyMe();\n }\n } else {\n (this.props as PageProps).navigation.closeDrawer();\n }\n return Promise.resolve();\n }\n\n goBack() {\n const navigation = (this.props as PageProps).navigation;\n if (navigation.canGoBack()) {\n navigation.goBack();\n } else if (window && window.history) {\n window.history.back();\n }\n return Promise.resolve();\n }\n\n openUrl(url: string, params = {} as any) {\n if (url) {\n if (url.startsWith('#')) {\n url = url.substring(1);\n url = url.startsWith('/') ? url.substring(1) : url;\n const splits = url.split('?');\n const pageName = splits[0];\n let params = {} as any;\n if (splits.length > 1) {\n splits[1].split('&')\n .map(p => p.split('='))\n .forEach(p => params[p[0]] = p[1]);\n }\n return this.goToPage(pageName, params);\n } else {\n this.App.openBrowser(url, params);\n }\n }\n return Promise.resolve();\n }\n\n isActiveTabbarItem({label, link, links}: {label: string, link: string, links: string[]}) {\n const pageName = this.pageName;\n const possibleLinks = [pageName, '#' + pageName, '#/' + pageName];\n return links && links.find(l => possibleLinks.includes(l));\n }\n\n abstract renderPage(): ReactNode;\n\n renderWidget(props: PageProps) {\n return this.renderPage();\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["clone","isEqual","React","CommonActions","WmPage","NavigationServiceProvider","AppSecurityService","AppSpinnerService","BaseFragment","Watcher","BasePage","constructor","props","_this$appConfig$drawe","_defineProperty","pageName","route","name","pageParams","params","appConfig","currentPage","drawer","setContent","serviceDefinitions","App","watcher","ROOT","create","canUserAccessPage","then","flag","cache","redirectToLogin","onComponentInit","w","targetWidget","refreshdataonattach","toggleDrawer","navigation","setDrawerContent","content","arguments","length","undefined","drawerContent","drawerType","hasDrawer","setTimeout","proxy","_this$appConfig$drawe2","_this$appConfig$drawe4","_this$appConfig$drawe3","createElement","value","setAnimation","onAttach","onFragmentReady","onContentReady","onPageReady","hide","cleanup","push","addListener","refresh","componentWillUnmount","goToPage","clearCahe","_params","dispatch","reset","index","routes","navigate","onDetach","destroyMe","closeDrawer","Promise","resolve","goBack","canGoBack","window","history","back","openUrl","url","startsWith","substring","splits","split","map","p","forEach","openBrowser","isActiveTabbarItem","_ref","label","link","links","possibleLinks","find","l","includes","renderWidget","renderPage"],"sources":["base-page.component.tsx"],"sourcesContent":["import { clone, isEqual } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { CommonActions } from '@react-navigation/native';\nimport { BaseComponent } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmPage from '@wavemaker/app-rn-runtime/components/page/page.component';\nimport NavigationService, { NavigationServiceProvider } from '@wavemaker/app-rn-runtime/core/navigation.service';\n\nimport AppSecurityService from './services/app-security.service';\nimport AppSpinnerService from './services/app-spinner.service';\nimport BaseFragment, { FragmentProps, FragmentState } from './base-fragment.component';\nimport { Watcher } from './watcher';\n\ndeclare const window: any;\n\nexport interface PageProps extends FragmentProps {\n route: any;\n navigation: any;\n destroyMe: Function;\n}\n\nexport interface PageState extends FragmentState<PageProps> {}\n\nexport default abstract class BasePage extends BaseFragment<PageProps, PageState> implements NavigationService {\n private pageName = null as unknown as string;\n private pageParams: any = {};\n private hasDrawer = false;\n private hasTabbar = false;\n private drawerContent = null as React.ReactNode;\n private drawerType = '';\n\n constructor(props: PageProps) {\n super(props);\n this.pageName = props.route.name;\n this.pageParams = props.route.params;\n this.appConfig.currentPage = this;\n this.appConfig.drawer?.setContent(null);\n this.serviceDefinitions = this.App.serviceDefinitions;\n this.watcher = Watcher.ROOT.create();\n AppSecurityService.canUserAccessPage(this.pageName)\n .then(flag => {\n if (!flag) {\n this.cache = false;\n AppSecurityService.redirectToLogin();\n }\n });\n }\n\n onComponentInit(w: BaseComponent<any, any, any>) {\n super.onComponentInit(w);\n if (w instanceof WmPage) {\n this.targetWidget = w;\n const props = w.props as any;\n this.cache = !(props.cache === false);\n this.refreshdataonattach = !(props.refreshdataonattach === false);\n }\n }\n\n toggleDrawer() {\n (this.props as PageProps).navigation.toggleDrawer();\n }\n\n setDrawerContent(content = this.drawerContent, drawerType = this.drawerType) {\n if (!content) {\n return;\n }\n this.drawerContent = content;\n this.drawerType = drawerType;\n this.hasDrawer = true;\n setTimeout(() => {\n if (this.appConfig.currentPage === this \n || this.appConfig.currentPage.proxy === this) {\n this.appConfig.drawer?.setContent(null);\n setTimeout(() => {\n this.appConfig.drawer?.setContent((\n <NavigationServiceProvider value={this}>\n {content}\n </NavigationServiceProvider>));\n }, 500);\n this.appConfig.drawer?.setAnimation(drawerType);\n }\n }, 10);\n }\n\n onAttach() {\n super.onAttach();\n this.setDrawerContent();\n }\n\n onFragmentReady() {\n return super.onFragmentReady().then(() => {\n this.onContentReady();\n this.App.onPageReady(this.pageName, this.proxy as BasePage);\n AppSpinnerService.hide(); \n this.cleanup.push((this.props as PageProps).navigation.addListener('focus', () => {\n if (this.appConfig.currentPage !== this) {\n this.appConfig.currentPage = this;\n this.onAttach();\n this.appConfig.refresh();\n }\n }));\n });\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n }\n\n goToPage(pageName: string, params: any, clearCahe = false) {\n const navigation = (this.props as PageProps).navigation;\n const _params = clone(params);\n _params && delete _params['pageName'];\n if (pageName !== this.pageName || !isEqual(_params, this.pageParams)) {\n if (pageName === this.pageName) {\n navigation.push(pageName, _params);\n } else if (clearCahe) {\n navigation.dispatch(CommonActions.reset({\n index: 0,\n routes: [\n { name: pageName, params: params }\n ]}));\n } else {\n navigation.navigate(pageName, _params);\n }\n if (this.cache) {\n this.onDetach();\n } else {\n this.props.destroyMe();\n }\n } else {\n (this.props as PageProps).navigation.closeDrawer();\n }\n return Promise.resolve();\n }\n\n goBack() {\n const navigation = (this.props as PageProps).navigation;\n if (navigation.canGoBack()) {\n navigation.goBack();\n } else if (window && window.history) {\n window.history.back();\n }\n return Promise.resolve();\n }\n\n openUrl(url: string, params = {} as any) {\n if (url) {\n if (url.startsWith('#')) {\n url = url.substring(1);\n url = url.startsWith('/') ? url.substring(1) : url;\n const splits = url.split('?');\n const pageName = splits[0];\n let params = {} as any;\n if (splits.length > 1) {\n splits[1].split('&')\n .map(p => p.split('='))\n .forEach(p => params[p[0]] = p[1]);\n }\n return this.goToPage(pageName, params);\n } else {\n this.App.openBrowser(url, params);\n }\n }\n return Promise.resolve();\n }\n\n isActiveTabbarItem({label, link, links}: {label: string, link: string, links: string[]}) {\n const pageName = this.pageName;\n const possibleLinks = [pageName, '#' + pageName, '#/' + pageName];\n return links && links.find(l => possibleLinks.includes(l));\n }\n\n abstract renderPage(): ReactNode;\n\n renderWidget(props: PageProps) {\n return this.renderPage();\n }\n}\n"],"mappings":"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"}
|
|
@@ -162,7 +162,8 @@ class AppSecurityService {
|
|
|
162
162
|
});
|
|
163
163
|
}
|
|
164
164
|
canUserAccessPage(pageName) {
|
|
165
|
-
|
|
165
|
+
var _this$securityConfig2;
|
|
166
|
+
if (this.baseUrl && (_this$securityConfig2 = this.securityConfig) !== null && _this$securityConfig2 !== void 0 && _this$securityConfig2.isSecurityEnabled) {
|
|
166
167
|
return axios.get(this.baseUrl + `/pages/${pageName}/${pageName}.html`).catch(res => res).then(res => res.status === 200 || res.status === 304);
|
|
167
168
|
} else {
|
|
168
169
|
return Promise.resolve(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","axios","each","includes","networkService","injector","StorageService","WebProcessService","USER_ROLE","authCookieStr","XSRF_COOKIE_NAME","xsrf_header_name","AppSecurityService","constructor","_defineProperty","interceptors","request","use","config","onBeforeServiceCall","appConfig","getAppConfig","baseUrl","url","getXsrfToken","then","token","_config$url","startsWith","headers","Promise","resolve","getItem","xsrf_token","get","navigateToLandingPage","details","_this$appConfig$curre","_details$userInfo","currentPage","goToPage","userInfo","landingPage","appLogin","options","payload","formData","value","name","encodeURIComponent","defaults","withCredentials","post","baseURL","response","xsrfCookieValue","data","setItem","isLoggedIn","load","userData","getLoggedInUserDetails","useDefaultSuccessHandler","app","triggerStartUpVariables","isConnected","getServiceDefinitions","defaultSecurityConfig","loggedInUser","securityConfig","securityEnabled","authenticated","isAuthenticated","isSecurityEnabled","roles","userRoles","userName","id","userId","tenantId","userAttributes","dataSet","redirectToLogin","arguments","length","undefined","_this$securityConfig","loginConfig","type","authUrl","OS","window","parent","location","href","setTimeout","execute","output","JSON","parse","replace","reject","refresh","_this$securityConfig$","_this$appConfig$curre2","loginPage","pageName","appLogout","catch","canUserAccessPage","res","status","matchRoles","widgetRoles","some","item","hasAccessToWidget","_this$loggedInUser$da","_this$loggedInUser$da2","_this$loggedInUser$da3","_this$loggedInUser$da4","widgetRolesArr","split","EVERYONE","ANONYMOUS","AUTHENTICATED","appSecurityService"],"sources":["app-security.service.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport axios, { InternalAxiosRequestConfig, AxiosResponse } from 'axios';\nimport { each, includes } from 'lodash';\n\nimport networkService from '@wavemaker/app-rn-runtime/core/network.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport StorageService from '@wavemaker/app-rn-runtime/core/storage.service';\nimport { SecurityService } from '@wavemaker/app-rn-runtime/core/security.service';\n\nimport WebProcessService from './webprocess.service';\n\ndeclare const window: any;\n\ninterface LoggedInUserConfig {\n isAuthenticated: Boolean;\n isSecurityEnabled: Boolean;\n roles: Array<string>;\n name: String;\n id: String;\n tenantId: String;\n userAttributes: any;\n}\n\nenum USER_ROLE {\n EVERYONE = 'Everyone',\n ANONYMOUS = 'Anonymous',\n AUTHENTICATED = 'Authenticated'\n}\n\nconst authCookieStr = 'AUTH_COOKIE';\nconst XSRF_COOKIE_NAME = 'wm_xsrf_token';\nconst xsrf_header_name = 'X-WM-XSRF-TOKEN';\n\nclass AppSecurityService implements SecurityService {\n\n securityConfig: any;\n isLoggedIn = false;\n loggedInUser: any = {};\n token: any;\n appConfig: any;\n baseUrl: string = '';\n defaultSecurityConfig: any;\n\n constructor() {\n axios.interceptors.request.use((config: InternalAxiosRequestConfig) => this.onBeforeServiceCall(config));\n }\n\n onBeforeServiceCall(config: InternalAxiosRequestConfig) {\n if (!this.appConfig) {\n this.appConfig = this.getAppConfig();\n this.baseUrl = this.appConfig.url;\n }\n return this.getXsrfToken().then((token: string) => {\n if (config.url?.startsWith(this.baseUrl) && token) {\n if(config.headers) config.headers[xsrf_header_name] = token;\n }\n return config\n });\n }\n\n private getXsrfToken(): Promise<string> {\n if (this.token) {\n return Promise.resolve(this.token);\n }\n return StorageService.getItem(XSRF_COOKIE_NAME).then(xsrf_token => {\n this.token = xsrf_token;\n return this.token;\n });\n }\n\n private getAppConfig() {\n return injector.get<AppConfig>('APP_CONFIG');\n }\n\n public navigateToLandingPage(details: any) {\n this.appConfig.currentPage?.goToPage(details.userInfo?.landingPage || 'Main', null, true);\n }\n\n public appLogin(options: any) {\n // encode all parameters\n let payload = '';\n each(options.formData, function (value, name) {\n payload += (payload ? '&' : '') + encodeURIComponent(name) + '=' + encodeURIComponent(value);\n });\n axios.defaults.withCredentials = true;\n return axios.post(options.baseURL + '/j_spring_security_check', payload, {\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }}).then((response: AxiosResponse) => {\n const xsrfCookieValue = response.data ? response.data[XSRF_COOKIE_NAME] : '';\n this.token = xsrfCookieValue;\n StorageService.setItem(XSRF_COOKIE_NAME, xsrfCookieValue);\n this.isLoggedIn = true;\n }).then(() => this.load(options.baseURL))\n .then(async () => {\n const userData = await this.getLoggedInUserDetails(options.baseURL, options.useDefaultSuccessHandler);\n await this.appConfig.app.triggerStartUpVariables();\n return userData;\n });\n }\n\n public load(baseURL: string) {\n return Promise.resolve().then(() => {\n if (networkService.isConnected()) {\n return axios.get(baseURL + '/services/security/info')\n .then((response: AxiosResponse) => response.data);\n }\n return this.appConfig.getServiceDefinitions(this.appConfig.url)\n .then(() => Promise.resolve(this.defaultSecurityConfig));\n }).then((details: any) => {\n const loggedInUser = {} as LoggedInUserConfig;\n this.securityConfig = details;\n const appConfig = this.appConfig;\n if (typeof details !== 'string' && (!details.securityEnabled || details.authenticated)) {\n if (details.authenticated) {\n loggedInUser.isAuthenticated = details.authenticated;\n loggedInUser.isSecurityEnabled = details.authenticated;\n loggedInUser.roles = details.userInfo.userRoles;\n loggedInUser.name = details.userInfo.userName;\n loggedInUser.id = details.userInfo.userId;\n loggedInUser.tenantId = details.userInfo.tenantId;\n loggedInUser.userAttributes = details.userInfo.userAttributes;\n appConfig.loggedInUser = loggedInUser;\n this.loggedInUser.dataSet = loggedInUser;\n }\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n return details;\n });\n } else {\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n this.redirectToLogin();\n });\n }\n });\n }\n\n private getLoggedInUserDetails(baseURL: string, useDefaultSuccessHandler: boolean = true) {\n if (!baseURL) {\n this.loggedInUser = {};\n return Promise.resolve({});\n }\n return this.load(baseURL);\n }\n\n \n public redirectToLogin() {\n if (this.securityConfig?.loginConfig?.type === 'SSO') {\n const authUrl = this.appConfig.url + '/services/security/ssologin';\n if (Platform.OS === 'web') {\n (window.parent || window).location.href = authUrl;\n } else {\n setTimeout(() => {\n WebProcessService.execute('LOGIN', '/services/security/ssologin', false, true)\n .then((output: any) => {\n if (output) {\n return JSON.parse(output.data && output.data.replace(/"/g, \"\\\"\"));\n }\n return Promise.reject();\n }).then((output: any) => {\n if (output[XSRF_COOKIE_NAME]) {\n this.token = output[XSRF_COOKIE_NAME];\n StorageService.setItem(XSRF_COOKIE_NAME, output[XSRF_COOKIE_NAME]);\n }\n }).then(() => {\n this.appConfig.refresh(true);\n }).then(() => this.load(this.baseUrl)).then(() => {\n return this.getLoggedInUserDetails(this.baseUrl);\n });\n }, 1000);\n }\n } else {\n const loginPage = this.securityConfig.loginConfig?.pageName || 'Login';\n injector.get<AppConfig>('APP_CONFIG').landingPage = loginPage;\n this.appConfig.currentPage?.goToPage(loginPage, null, true);\n }\n this.appConfig.refresh();\n }\n\n public appLogout(options: any) {\n return axios.post(options.baseURL + '/j_spring_security_logout', null, {\n withCredentials: true\n }).catch(() => {}).then(() => {\n this.isLoggedIn = false;\n this.redirectToLogin();\n });\n }\n\n public canUserAccessPage(pageName: string) {\n if (this.baseUrl) {\n return axios.get(this.baseUrl + `/pages/${pageName}/${pageName}.html`)\n .catch((res) => res)\n .then((res) => res.status === 200 || res.status === 304); \n } else {\n return Promise.resolve(true);\n }\n }\n\n private matchRoles(widgetRoles: Array<String>, userRoles: Array<String>) {\n return widgetRoles.some(function (item) {\n return includes(userRoles, item);\n });\n }\n\n public hasAccessToWidget(widgetRoles: String) {\n const widgetRolesArr = widgetRoles.split(',');\n // access the widget when 'Everyone' is chosen\n if (includes(widgetRolesArr, USER_ROLE.EVERYONE)) {\n return true;\n }\n\n // access the widget when 'Anonymous' is chosen and user is not authenticated\n if (includes(widgetRolesArr, USER_ROLE.ANONYMOUS) && !this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when 'Only Authenticated Users' is chosen and user is authenticated\n if (includes(widgetRolesArr, USER_ROLE.AUTHENTICATED) && this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when widget role and logged in user role matches\n return this.loggedInUser.dataSet?.isAuthenticated && this.matchRoles(widgetRolesArr, this.loggedInUser.dataSet?.roles);\n }\n}\n\nconst appSecurityService = new AppSecurityService();\n\nexport default appSecurityService;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Platform","axios","each","includes","networkService","injector","StorageService","WebProcessService","USER_ROLE","authCookieStr","XSRF_COOKIE_NAME","xsrf_header_name","AppSecurityService","constructor","_defineProperty","interceptors","request","use","config","onBeforeServiceCall","appConfig","getAppConfig","baseUrl","url","getXsrfToken","then","token","_config$url","startsWith","headers","Promise","resolve","getItem","xsrf_token","get","navigateToLandingPage","details","_this$appConfig$curre","_details$userInfo","currentPage","goToPage","userInfo","landingPage","appLogin","options","payload","formData","value","name","encodeURIComponent","defaults","withCredentials","post","baseURL","response","xsrfCookieValue","data","setItem","isLoggedIn","load","userData","getLoggedInUserDetails","useDefaultSuccessHandler","app","triggerStartUpVariables","isConnected","getServiceDefinitions","defaultSecurityConfig","loggedInUser","securityConfig","securityEnabled","authenticated","isAuthenticated","isSecurityEnabled","roles","userRoles","userName","id","userId","tenantId","userAttributes","dataSet","redirectToLogin","arguments","length","undefined","_this$securityConfig","loginConfig","type","authUrl","OS","window","parent","location","href","setTimeout","execute","output","JSON","parse","replace","reject","refresh","_this$securityConfig$","_this$appConfig$curre2","loginPage","pageName","appLogout","catch","canUserAccessPage","_this$securityConfig2","res","status","matchRoles","widgetRoles","some","item","hasAccessToWidget","_this$loggedInUser$da","_this$loggedInUser$da2","_this$loggedInUser$da3","_this$loggedInUser$da4","widgetRolesArr","split","EVERYONE","ANONYMOUS","AUTHENTICATED","appSecurityService"],"sources":["app-security.service.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport axios, { InternalAxiosRequestConfig, AxiosResponse } from 'axios';\nimport { each, includes } from 'lodash';\n\nimport networkService from '@wavemaker/app-rn-runtime/core/network.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport StorageService from '@wavemaker/app-rn-runtime/core/storage.service';\nimport { SecurityService } from '@wavemaker/app-rn-runtime/core/security.service';\n\nimport WebProcessService from './webprocess.service';\n\ndeclare const window: any;\n\ninterface LoggedInUserConfig {\n isAuthenticated: Boolean;\n isSecurityEnabled: Boolean;\n roles: Array<string>;\n name: String;\n id: String;\n tenantId: String;\n userAttributes: any;\n}\n\nenum USER_ROLE {\n EVERYONE = 'Everyone',\n ANONYMOUS = 'Anonymous',\n AUTHENTICATED = 'Authenticated'\n}\n\nconst authCookieStr = 'AUTH_COOKIE';\nconst XSRF_COOKIE_NAME = 'wm_xsrf_token';\nconst xsrf_header_name = 'X-WM-XSRF-TOKEN';\n\nclass AppSecurityService implements SecurityService {\n\n securityConfig: any;\n isLoggedIn = false;\n loggedInUser: any = {};\n token: any;\n appConfig: any;\n baseUrl: string = '';\n defaultSecurityConfig: any;\n\n constructor() {\n axios.interceptors.request.use((config: InternalAxiosRequestConfig) => this.onBeforeServiceCall(config));\n }\n\n onBeforeServiceCall(config: InternalAxiosRequestConfig) {\n if (!this.appConfig) {\n this.appConfig = this.getAppConfig();\n this.baseUrl = this.appConfig.url;\n }\n return this.getXsrfToken().then((token: string) => {\n if (config.url?.startsWith(this.baseUrl) && token) {\n if(config.headers) config.headers[xsrf_header_name] = token;\n }\n return config\n });\n }\n\n private getXsrfToken(): Promise<string> {\n if (this.token) {\n return Promise.resolve(this.token);\n }\n return StorageService.getItem(XSRF_COOKIE_NAME).then(xsrf_token => {\n this.token = xsrf_token;\n return this.token;\n });\n }\n\n private getAppConfig() {\n return injector.get<AppConfig>('APP_CONFIG');\n }\n\n public navigateToLandingPage(details: any) {\n this.appConfig.currentPage?.goToPage(details.userInfo?.landingPage || 'Main', null, true);\n }\n\n public appLogin(options: any) {\n // encode all parameters\n let payload = '';\n each(options.formData, function (value, name) {\n payload += (payload ? '&' : '') + encodeURIComponent(name) + '=' + encodeURIComponent(value);\n });\n axios.defaults.withCredentials = true;\n return axios.post(options.baseURL + '/j_spring_security_check', payload, {\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }}).then((response: AxiosResponse) => {\n const xsrfCookieValue = response.data ? response.data[XSRF_COOKIE_NAME] : '';\n this.token = xsrfCookieValue;\n StorageService.setItem(XSRF_COOKIE_NAME, xsrfCookieValue);\n this.isLoggedIn = true;\n }).then(() => this.load(options.baseURL))\n .then(async () => {\n const userData = await this.getLoggedInUserDetails(options.baseURL, options.useDefaultSuccessHandler);\n await this.appConfig.app.triggerStartUpVariables();\n return userData;\n });\n }\n\n public load(baseURL: string) {\n return Promise.resolve().then(() => {\n if (networkService.isConnected()) {\n return axios.get(baseURL + '/services/security/info')\n .then((response: AxiosResponse) => response.data);\n }\n return this.appConfig.getServiceDefinitions(this.appConfig.url)\n .then(() => Promise.resolve(this.defaultSecurityConfig));\n }).then((details: any) => {\n const loggedInUser = {} as LoggedInUserConfig;\n this.securityConfig = details;\n const appConfig = this.appConfig;\n if (typeof details !== 'string' && (!details.securityEnabled || details.authenticated)) {\n if (details.authenticated) {\n loggedInUser.isAuthenticated = details.authenticated;\n loggedInUser.isSecurityEnabled = details.authenticated;\n loggedInUser.roles = details.userInfo.userRoles;\n loggedInUser.name = details.userInfo.userName;\n loggedInUser.id = details.userInfo.userId;\n loggedInUser.tenantId = details.userInfo.tenantId;\n loggedInUser.userAttributes = details.userInfo.userAttributes;\n appConfig.loggedInUser = loggedInUser;\n this.loggedInUser.dataSet = loggedInUser;\n }\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n return details;\n });\n } else {\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n this.redirectToLogin();\n });\n }\n });\n }\n\n private getLoggedInUserDetails(baseURL: string, useDefaultSuccessHandler: boolean = true) {\n if (!baseURL) {\n this.loggedInUser = {};\n return Promise.resolve({});\n }\n return this.load(baseURL);\n }\n\n \n public redirectToLogin() {\n if (this.securityConfig?.loginConfig?.type === 'SSO') {\n const authUrl = this.appConfig.url + '/services/security/ssologin';\n if (Platform.OS === 'web') {\n (window.parent || window).location.href = authUrl;\n } else {\n setTimeout(() => {\n WebProcessService.execute('LOGIN', '/services/security/ssologin', false, true)\n .then((output: any) => {\n if (output) {\n return JSON.parse(output.data && output.data.replace(/"/g, \"\\\"\"));\n }\n return Promise.reject();\n }).then((output: any) => {\n if (output[XSRF_COOKIE_NAME]) {\n this.token = output[XSRF_COOKIE_NAME];\n StorageService.setItem(XSRF_COOKIE_NAME, output[XSRF_COOKIE_NAME]);\n }\n }).then(() => {\n this.appConfig.refresh(true);\n }).then(() => this.load(this.baseUrl)).then(() => {\n return this.getLoggedInUserDetails(this.baseUrl);\n });\n }, 1000);\n }\n } else {\n const loginPage = this.securityConfig.loginConfig?.pageName || 'Login';\n injector.get<AppConfig>('APP_CONFIG').landingPage = loginPage;\n this.appConfig.currentPage?.goToPage(loginPage, null, true);\n }\n this.appConfig.refresh();\n }\n\n public appLogout(options: any) {\n return axios.post(options.baseURL + '/j_spring_security_logout', null, {\n withCredentials: true\n }).catch(() => {}).then(() => {\n this.isLoggedIn = false;\n this.redirectToLogin();\n });\n }\n\n public canUserAccessPage(pageName: string) {\n if (this.baseUrl && this.securityConfig?.isSecurityEnabled) {\n return axios.get(this.baseUrl + `/pages/${pageName}/${pageName}.html`)\n .catch((res) => res)\n .then((res) => res.status === 200 || res.status === 304); \n } else {\n return Promise.resolve(true);\n }\n }\n\n private matchRoles(widgetRoles: Array<String>, userRoles: Array<String>) {\n return widgetRoles.some(function (item) {\n return includes(userRoles, item);\n });\n }\n\n public hasAccessToWidget(widgetRoles: String) {\n const widgetRolesArr = widgetRoles.split(',');\n // access the widget when 'Everyone' is chosen\n if (includes(widgetRolesArr, USER_ROLE.EVERYONE)) {\n return true;\n }\n\n // access the widget when 'Anonymous' is chosen and user is not authenticated\n if (includes(widgetRolesArr, USER_ROLE.ANONYMOUS) && !this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when 'Only Authenticated Users' is chosen and user is authenticated\n if (includes(widgetRolesArr, USER_ROLE.AUTHENTICATED) && this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when widget role and logged in user role matches\n return this.loggedInUser.dataSet?.isAuthenticated && this.matchRoles(widgetRolesArr, this.loggedInUser.dataSet?.roles);\n }\n}\n\nconst appSecurityService = new AppSecurityService();\n\nexport default appSecurityService;\n"],"mappings":"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"}
|