|
- import useJwt from 'auth/jwt/coreUseJwt';
-
- /**
- * Return if user is logged in
- * This is completely up to you and how you want to store the token in your frontend application
- * e.g. If you are using cookies to store the application please update this function
- */
- // eslint-disable-next-line arrow-body-style
- export const hostname = 'localhost';
- const hostPort = '8090';
- export const hostPath = `http://${hostname}:${hostPort}`;
- export const apiPath = window.location.href.match("localhost:3000") ? `${hostPath}/api` : (window.location.href.match(":3000") ? "http://" + window.location.hostname + ":8090/api" : `/api`);
- export const paymentPath = window.location.href.match("localhost:3000") ? `${hostPath}/payment` : `/payment`;
-
- export const delBugMode = true;
-
- /**
- * Testing:
- * Domain: apigw-isit.staging-eid.gov.hk
- * URL: hk.gov.iamsmart.testapp://
- *
- * Production
- * Domain: apigw.iamsmart.gov.hk
- * URL: hk.gov.iamsmart://
- */
- export const iAmSmartPath = `https://apigw-isit.staging-eid.gov.hk`;
- export const iAmSmartAppPath = `hk.gov.iamsmart.testapp://`;
- export const clientId = "cf61fa7c121e4869966f69c8694b1cd2";
-
- export const iAmSmartCallbackPath = () => {
- let hostname = window.location.hostname;
- if (hostname.match("pnspsuat")) {
- hostname = "pnspsuat.gld.gov.hk";
- } else {
- hostname = "pnspsdev.gld.gov.hk";
- }
- return hostname;
- };
-
- export const getNonce = () => {
- let hostname = window.location.hostname;
- if (hostname.match("localhost")) {
- hostname = "pnspsuat.gld.gov.hk";
- }
- return hostname;
- };
-
- export const getBowserType = () => {
- // console.log(navigator.userAgent)
- // const regex = /Mobi|Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Mi|huawei|Opera Mini|SAMSUNG|Samsung|SGH-[I|N|T]|GT-[I|N]|SM-[A|N|P|T|Z]|SHV-E|SCH-[I|J|R|S]|SPH-L/i;
- // if(!regex.test(navigator.userAgent))
- if (navigator.userAgent.indexOf("Edg") != -1) {
- if (navigator.userAgent.match(/Android/i)) return "Android_Edge"
- if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Edge"
- return "PC_Browser"
- } else if (navigator.userAgent.indexOf("Chrome") != -1) {
- if (navigator.userAgent.match(/Android/i)) return "Android_Chrome"
- if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Chrome"
- return "PC_Browser"
- } else if (navigator.userAgent.indexOf("Safari") != -1) {
- if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Safari"
- return "PC_Browser"
- } else if (navigator.userAgent.indexOf("Firefox") != -1) {
- if (navigator.userAgent.match(/Android/i)) return "Android_Firefox"
- if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) return "iOS_Firefox"
- return "PC_Browser"
- } else if (navigator.userAgent.match(/SAMSUNG|Samsung|SGH-[I|N|T]|GT-[I|N]|SM-[A|N|P|T|Z]|SHV-E|SCH-[I|J|R|S]|SPH-L/i)) {
- return "Android_Samsung"
- } else if (navigator.userAgent.match(/huawei/i)) {
- return "Android_Huawei"
- } else if (navigator.userAgent.match(/Mi/i)) {
- return "Android_Xiaomi"
- }
- return "PC_Browser";
- }
-
- export const isAppBowser = () => {
- return "PC_Browser" != getBowserType();
- }
-
-
- export const isUserLoggedIn = () => {
- return localStorage.getItem('userData') && localStorage.getItem(useJwt.jwtConfig.storageTokenKeyName);
- };
-
- export const getUserData = () => JSON.parse(localStorage.getItem('userData'));
-
- export const isGranted = (auth) => {
- const abilities = getUserData() ? getUserData()["abilities"] : null;
- if (abilities == null || abilities.length == 0) return false;
- if (!Array.isArray(auth)) return _checkAuth(abilities, auth);
-
- if (auth.length > abilities.length) return false;
- let haveAuth = true;
- for (let i = 0; i < auth.length; i++) {
- haveAuth = _checkAuth(abilities, auth[i])
- if (!haveAuth) return haveAuth;
- }
- return haveAuth;
- };
-
- const _checkAuth = (abilities, auth) => {
- for (let i = 0; i < abilities.length; i++) {
- if (auth == abilities[i].actionSubjectCombo) return true;
- }
- return false;
- }
-
- export const isGrantedAny = (auth) => {
- const abilities = getUserData() ? getUserData()["abilities"] : null;
- if (abilities == null || abilities.length == 0) return false;
- if (!Array.isArray(auth)) return _checkAuth(abilities, auth);
- let haveAuth = false;
- for (let i = 0; i < auth.length; i++) {
- haveAuth = _checkAuth(abilities, auth[i])
- if (haveAuth) return haveAuth;
- }
- return haveAuth;
- };
-
- /**
- * This function is used for demo purpose route navigation
- * In real app you won't need this function because your app will navigate to same route for each users regardless of ability
- * Please note role field is just for showing purpose it's not used by anything in frontend
- * We are checking role just for ease
- * NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it.
- * @param {String} userRole Role of user
- */
- export const getHomeRouteForLoggedInUser = (userRole) => {
- if (userRole === 'admin') return '/';
- if (userRole === 'user') return '/';
- if (userRole === 'client') return { name: 'access-control' };
- return { name: 'auth-login' };
- };
-
- // open payment record
- export const local = { en: "en-us", zh: "zh-hk", cn: "zh-cn" };
- export const preferpaymentmethods = ['visa', 'mastercard', 'pps', 'creditcard', 'fps'];
-
- export const getPaymentMethod = (paymentMethod) => {
- if(paymentMethod == "online") return 'payOnlineMethod';
- if(paymentMethod == "demandNote") return 'payDnMethod';
- if(paymentMethod == "office") return 'payNPGOMethod';
- return "other";
- }
|