| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| import React, { useState } from "react"; |
| import { getUserProfile } from "Utils/appState"; |
| import { |
| UserRoles, |
| PathAssociateWithModule, |
| QueryParams, |
| RangerPolicyType, |
| ServiceType |
| } from "Utils/XAEnums"; |
| import { |
| filter, |
| find, |
| flatMap, |
| forEach, |
| uniq, |
| map, |
| union, |
| includes, |
| pick, |
| isEmpty, |
| isUndefined, |
| isNull, |
| some, |
| has, |
| sortBy, |
| isArray |
| } from "lodash"; |
| import { matchRoutes } from "react-router-dom"; |
| import dateFormat from "dateformat"; |
| import moment from "moment-timezone"; |
| import CustomBreadcrumb from "../views/CustomBreadcrumb"; |
| import { CustomTooltip } from "../components/CommonComponents"; |
| import InfiniteScroll from "react-infinite-scroll-component"; |
| import { toast } from "react-toastify"; |
| import { policyInfoMessage } from "./XAMessages"; |
| import { fetchApi } from "Utils/fetchAPI"; |
| import folderIcon from "Images/folder-grey.png"; |
| |
| export const LoginUser = (role) => { |
| const userProfile = getUserProfile(); |
| const currentUserRoles = userProfile?.userRoleList[0]; |
| if (!currentUserRoles && currentUserRoles == "") { |
| return false; |
| } |
| |
| return currentUserRoles == role; |
| }; |
| |
| export const isSystemAdmin = () => { |
| return LoginUser("ROLE_SYS_ADMIN") ? true : false; |
| }; |
| |
| export const isKeyAdmin = () => { |
| return LoginUser("ROLE_KEY_ADMIN") ? true : false; |
| }; |
| |
| export const isUser = () => { |
| return LoginUser("ROLE_USER") ? true : false; |
| }; |
| |
| export const isAuditor = () => { |
| return LoginUser("ROLE_ADMIN_AUDITOR") ? true : false; |
| }; |
| |
| export const isKMSAuditor = () => { |
| return LoginUser("ROLE_KEY_ADMIN_AUDITOR") ? true : false; |
| }; |
| |
| export const isRenderMasking = (dataMaskDef) => { |
| return dataMaskDef && |
| dataMaskDef.maskTypes && |
| dataMaskDef.maskTypes.length > 0 |
| ? true |
| : false; |
| }; |
| |
| export const isRenderRowFilter = (rowFilterDef) => { |
| return rowFilterDef && |
| rowFilterDef.resources && |
| rowFilterDef.resources.length > 0 |
| ? true |
| : false; |
| }; |
| |
| export const getUserAccessRoleList = () => { |
| var userRoleList = []; |
| filter(UserRoles, function (val, key) { |
| if ( |
| isKeyAdmin() && |
| UserRoles.ROLE_SYS_ADMIN.value != val.value && |
| UserRoles.ROLE_ADMIN_AUDITOR.value != val.value |
| ) { |
| userRoleList.push({ value: key, label: val.label }); |
| } else if ( |
| isSystemAdmin() && |
| UserRoles.ROLE_KEY_ADMIN.value != val.value && |
| UserRoles.ROLE_KEY_ADMIN_AUDITOR.value != val.value |
| ) { |
| userRoleList.push({ value: key, label: val.label }); |
| } else if (isUser() && UserRoles.ROLE_USER.value == val.value) { |
| userRoleList.push({ value: key, label: val.label }); |
| } else if ( |
| isAuditor() && |
| UserRoles.ROLE_KEY_ADMIN.value != val.value && |
| UserRoles.ROLE_KEY_ADMIN_AUDITOR.value != val.value |
| ) { |
| userRoleList.push({ value: key, label: val.label }); |
| } else if ( |
| isKMSAuditor() && |
| UserRoles.ROLE_SYS_ADMIN.value != val.value && |
| UserRoles.ROLE_ADMIN_AUDITOR.value != val.value |
| ) { |
| userRoleList.push({ value: key, label: val.label }); |
| } |
| }); |
| return userRoleList; |
| }; |
| |
| export const isObject = (value) => { |
| return typeof value === "object" && !Array.isArray(value) && value !== null; |
| }; |
| |
| export const hasAccessToTab = (tabName) => { |
| const userProfile = getUserProfile(); |
| let userModules = map(userProfile?.userPermList, "moduleName"); |
| let groupModules = map(userProfile?.groupPermissions, "moduleName"); |
| let moduleNames = union(userModules, groupModules); |
| let returnFlag = includes(moduleNames, tabName); |
| return returnFlag; |
| }; |
| |
| export const hasAccessToPath = (pathName) => { |
| let allowPath = []; |
| const userProfile = getUserProfile(); |
| if (pathName == "/") { |
| pathName = "/policymanager/resource"; |
| } |
| let userModules = map(userProfile?.userPermList, "moduleName"); |
| let groupModules = map(userProfile?.groupPermissions, "moduleName"); |
| let moduleNames = union(userModules, groupModules); |
| moduleNames.push("Profile"); |
| moduleNames.push("KnoxSignOut"); |
| moduleNames.push("DataNotFound"); |
| moduleNames.push("PageNotFound"); |
| moduleNames.push("Forbidden"); |
| |
| moduleNames.push("localLogin"); |
| if (isSystemAdmin() || isAuditor()) { |
| moduleNames.push("Permission"); |
| } |
| let allRouter = [], |
| returnFlag = true; |
| for (const key in PathAssociateWithModule) { |
| allRouter = [...allRouter, ...PathAssociateWithModule[key]]; |
| } |
| let isValidRouter = matchRoutes( |
| allRouter.map((val) => ({ path: val })), |
| pathName |
| ); |
| if (isValidRouter != null && isValidRouter.length > 0) { |
| forEach(moduleNames, function (key) { |
| allowPath.push(PathAssociateWithModule[key]); |
| }); |
| allowPath = uniq(flatMap(allowPath)); |
| returnFlag = |
| matchRoutes( |
| allowPath.map((val) => ({ path: val })), |
| pathName |
| ) === null; |
| } |
| |
| return !returnFlag; |
| }; |
| |
| /* Time Stamp */ |
| export const setTimeStamp = (dateTime) => { |
| let formatDateTime = dateFormat(parseInt(dateTime), "mm/dd/yyyy hh:MM:ss TT"); |
| return !isEmpty(dateTime) ? ( |
| <span title={formatDateTime}> |
| {formatDateTime} |
| <div className="text-muted"> |
| <small> |
| {moment(formatDateTime, "MM/DD/YYYY h:mm:ss A").fromNow()} |
| </small> |
| </div> |
| </span> |
| ) : ( |
| <center>--</center> |
| ); |
| }; |
| |
| /* Policy validity period time zone */ |
| export const getAllTimeZoneList = () => { |
| let Timezones = [ |
| { text: "Africa/Abidjan (GMT)", id: "Africa/Abidjan" }, |
| { text: "Africa/Accra (GMT)", id: "Africa/Accra" }, |
| { text: "Africa/Addis_Ababa (EAT)", id: "Africa/Addis_Ababa" }, |
| { text: "Africa/Algiers (CET)", id: "Africa/Algiers" }, |
| { text: "Africa/Asmara (EAT)", id: "Africa/Asmara" }, |
| { text: "Africa/Asmera (EAT)", id: "Africa/Asmera" }, |
| { text: "Africa/Bamako (GMT)", id: "Africa/Bamako" }, |
| { text: "Africa/Bangui (WAT)", id: "Africa/Bangui" }, |
| { text: "Africa/Banjul (GMT)", id: "Africa/Banjul" }, |
| { text: "Africa/Bissau (GMT)", id: "Africa/Bissau" }, |
| { text: "Africa/Blantyre (CAT)", id: "Africa/Blantyre" }, |
| { text: "Africa/Brazzaville (WAT)", id: "Africa/Brazzaville" }, |
| { text: "Africa/Cairo (EET)", id: "Africa/Cairo" }, |
| { text: "Africa/Casablanca (WEST)", id: "Africa/Casablanca" }, |
| { text: "Africa/Ceuta (CEST)", id: "Africa/Ceuta" }, |
| { text: "Africa/Conakry (GMT)", id: "Africa/Conakry" }, |
| { text: "Africa/Dakar (GMT)", id: "Africa/Dakar" }, |
| { text: "Africa/Dar_es_Salaam (EAT)", id: "Africa/Dar_es_Salaam" }, |
| { text: "Africa/Douala (WAT)", id: "Africa/Douala" }, |
| { text: "Africa/El_Aaiun (WEST)", id: "Africa/El_Aaiun" }, |
| { text: "Africa/Johannesburg (SAST)", id: "Africa/Johannesburg" }, |
| { text: "Africa/Freetown (GMT)", id: "Africa/Freetown" }, |
| { text: "Africa/Gaborone (CAT)", id: "Africa/Gaborone" }, |
| { text: "Africa/Harare (CAT)", id: "Africa/Harare" }, |
| { text: "Africa/Juba (EAT)", id: "Africa/Juba" }, |
| { text: "Africa/Kampala (EAT)", id: "Africa/Kampala" }, |
| { text: "Africa/Khartoum (CAT)", id: "Africa/Khartoum" }, |
| { text: "Africa/Kigali (CAT)", id: "Africa/Kigali" }, |
| { text: "Africa/Luanda (WAT)", id: "Africa/Luanda" }, |
| { text: "Africa/Kinshasa (WAT)", id: "Africa/Kinshasa" }, |
| { text: "Africa/Lagos (WAT)", id: "Africa/Lagos" }, |
| { text: "Africa/Libreville (WAT)", id: "Africa/Libreville" }, |
| { text: "Africa/Lome (GMT)", id: "Africa/Lome" }, |
| { text: "Africa/Lubumbashi (CAT)", id: "Africa/Lubumbashi" }, |
| { text: "Africa/Lusaka (CAT)", id: "Africa/Lusaka" }, |
| { text: "Africa/Malabo (WAT)", id: "Africa/Malabo" }, |
| { text: "Africa/Maputo (CAT)", id: "Africa/Maputo" }, |
| { text: "Africa/Maseru (SAST)", id: "Africa/Maseru" }, |
| { text: "Africa/Ndjamena (WAT)", id: "Africa/Ndjamena" }, |
| { text: "Africa/Mbabane (SAST)", id: "Africa/Mbabane" }, |
| { text: "Africa/Mogadishu (EAT)", id: "Africa/Mogadishu" }, |
| { text: "Africa/Monrovia (GMT)", id: "Africa/Monrovia" }, |
| { text: "Africa/Nairobi (EAT)", id: "Africa/Nairobi" }, |
| { text: "Africa/Niamey (WAT)", id: "Africa/Niamey" }, |
| { text: "Africa/Nouakchott (GMT)", id: "Africa/Nouakchott" }, |
| { text: "Africa/Ouagadougou (GMT)", id: "Africa/Ouagadougou" }, |
| { text: "Africa/Porto-Novo (WAT)", id: "Africa/Porto-Novo" }, |
| { text: "Africa/Sao_Tome (GMT)", id: "Africa/Sao_Tome" }, |
| { text: "Africa/Tripoli (EET)", id: "Africa/Tripoli" }, |
| { text: "Africa/Tunis (CET)", id: "Africa/Tunis" }, |
| { text: "Africa/Timbuktu (GMT)", id: "Africa/Timbuktu" }, |
| { text: "Africa/Windhoek (CAT)", id: "Africa/Windhoek" }, |
| { text: "America/Adak (HDT)", id: "America/Adak" }, |
| { text: "America/Antigua (AST)", id: "America/Antigua" }, |
| { text: "America/Araguaina (BRT)", id: "America/Araguaina" }, |
| { |
| text: "America/Argentina/Buenos_Aires (ART)", |
| id: "America/Argentina/Buenos_Aires" |
| }, |
| { |
| text: "America/Argentina/Catamarca (ART)", |
| id: "America/Argentina/Catamarca" |
| }, |
| { |
| text: "America/Argentina/ComodRivadavia (ART)", |
| id: "America/Argentina/ComodRivadavia" |
| }, |
| { |
| text: "America/Argentina/Cordoba (ART)", |
| id: "America/Argentina/Cordoba" |
| }, |
| { text: "America/Argentina/Jujuy (ART)", id: "America/Argentina/Jujuy" }, |
| { |
| text: "America/Argentina/La_Rioja (ART)", |
| id: "America/Argentina/La_Rioja" |
| }, |
| { |
| text: "America/Argentina/Mendoza (ART)", |
| id: "America/Argentina/Mendoza" |
| }, |
| { |
| text: "America/Argentina/Rio_Gallegos (ART)", |
| id: "America/Argentina/Rio_Gallegos" |
| }, |
| { text: "America/Argentina/Salta (ART)", id: "America/Argentina/Salta" }, |
| { |
| text: "America/Argentina/San_Juan (ART)", |
| id: "America/Argentina/San_Juan" |
| }, |
| { text: "America/Anchorage (AKDT)", id: "America/Anchorage" }, |
| { text: "America/Anguilla (AST)", id: "America/Anguilla" }, |
| { |
| text: "America/Argentina/San_Luis (ART)", |
| id: "America/Argentina/San_Luis" |
| }, |
| { |
| text: "America/Argentina/Tucuman (ART)", |
| id: "America/Argentina/Tucuman" |
| }, |
| { |
| text: "America/Argentina/Ushuaia (ART)", |
| id: "America/Argentina/Ushuaia" |
| }, |
| { text: "America/Asuncion (PYST)", id: "America/Asuncion" }, |
| { text: "America/Aruba (AST)", id: "America/Aruba" }, |
| { text: "America/Atikokan (EST)", id: "America/Atikokan" }, |
| { text: "America/Bahia (BRT)", id: "America/Bahia" }, |
| { text: "America/Bahia_Banderas (CDT)", id: "America/Bahia_Banderas" }, |
| { text: "America/Atka (HDT)", id: "America/Atka" }, |
| { text: "America/Barbados (AST)", id: "America/Barbados" }, |
| { text: "America/Belem (BRT)", id: "America/Belem" }, |
| { text: "America/Belize (CST)", id: "America/Belize" }, |
| { text: "America/Blanc-Sablon (AST)", id: "America/Blanc-Sablon" }, |
| { text: "America/Boa_Vista (AMT)", id: "America/Boa_Vista" }, |
| { text: "America/Bogota (COT)", id: "America/Bogota" }, |
| { text: "America/Boise (MDT)", id: "America/Boise" }, |
| { text: "America/Buenos_Aires (ART)", id: "America/Buenos_Aires" }, |
| { text: "America/Cambridge_Bay (MDT)", id: "America/Cambridge_Bay" }, |
| { text: "America/Campo_Grande (AMST)", id: "America/Campo_Grande" }, |
| { text: "America/Cancun (EST)", id: "America/Cancun" }, |
| { text: "America/Caracas (VET)", id: "America/Caracas" }, |
| { text: "America/Catamarca (ART)", id: "America/Catamarca" }, |
| { text: "America/Cayenne (GFT)", id: "America/Cayenne" }, |
| { text: "America/Cayman (EST)", id: "America/Cayman" }, |
| { text: "America/Chicago (CDT)", id: "America/Chicago" }, |
| { text: "America/Chihuahua (MDT)", id: "America/Chihuahua" }, |
| { text: "America/Coral_Harbour (EST)", id: "America/Coral_Harbour" }, |
| { text: "America/Cordoba (ART)", id: "America/Cordoba" }, |
| { text: "America/Costa_Rica (CST)", id: "America/Costa_Rica" }, |
| { text: "America/Creston (MST)", id: "America/Creston" }, |
| { text: "America/Cuiaba (AMST)", id: "America/Cuiaba" }, |
| { text: "America/Curacao (AST)", id: "America/Curacao" }, |
| { text: "America/Danmarkshavn (GMT)", id: "America/Danmarkshavn" }, |
| { text: "America/Dawson (PDT)", id: "America/Dawson" }, |
| { text: "America/Dawson_Creek (MST)", id: "America/Dawson_Creek" }, |
| { text: "America/Denver (MDT)", id: "America/Denver" }, |
| { text: "America/Detroit (EDT)", id: "America/Detroit" }, |
| { text: "America/Dominica (AST)", id: "America/Dominica" }, |
| { text: "America/Edmonton (MDT)", id: "America/Edmonton" }, |
| { text: "America/Eirunepe (ACT)", id: "America/Eirunepe" }, |
| { text: "America/El_Salvador (CST)", id: "America/El_Salvador" }, |
| { text: "America/Ensenada (PDT)", id: "America/Ensenada" }, |
| { text: "America/Fort_Nelson (MST)", id: "America/Fort_Nelson" }, |
| { text: "America/Fort_Wayne (EDT)", id: "America/Fort_Wayne" }, |
| { text: "America/Fortaleza (BRT)", id: "America/Fortaleza" }, |
| { text: "America/Glace_Bay (ADT)", id: "America/Glace_Bay" }, |
| { text: "America/Godthab (WGT)", id: "America/Godthab" }, |
| { text: "America/Goose_Bay (ADT)", id: "America/Goose_Bay" }, |
| { text: "America/Grand_Turk (EDT)", id: "America/Grand_Turk" }, |
| { text: "America/Grenada (AST)", id: "America/Grenada" }, |
| { text: "America/Guadeloupe (AST)", id: "America/Guadeloupe" }, |
| { text: "America/Guatemala (CST)", id: "America/Guatemala" }, |
| { text: "America/Guayaquil (ECT)", id: "America/Guayaquil" }, |
| { text: "America/Guyana (GYT)", id: "America/Guyana" }, |
| { text: "America/Halifax (ADT)", id: "America/Halifax" }, |
| { text: "America/Indiana/Knox (CDT)", id: "America/Indiana/Knox" }, |
| { text: "America/Indiana/Marengo (EDT)", id: "America/Indiana/Marengo" }, |
| { |
| text: "America/Indiana/Petersburg (EDT)", |
| id: "America/Indiana/Petersburg" |
| }, |
| { text: "America/Havana (CDT)", id: "America/Havana" }, |
| { text: "America/Hermosillo (MST)", id: "America/Hermosillo" }, |
| { |
| text: "America/Indiana/Indianapolis (EDT)", |
| id: "America/Indiana/Indianapolis" |
| }, |
| { |
| text: "America/Indiana/Tell_City (CDT)", |
| id: "America/Indiana/Tell_City" |
| }, |
| { text: "America/Indiana/Vevay (EDT)", id: "America/Indiana/Vevay" }, |
| { |
| text: "America/Indiana/Vincennes (EDT)", |
| id: "America/Indiana/Vincennes" |
| }, |
| { text: "America/Indiana/Winamac (EDT)", id: "America/Indiana/Winamac" }, |
| { text: "America/Indianapolis (EDT)", id: "America/Indianapolis" }, |
| { text: "America/Inuvik (MDT)", id: "America/Inuvik" }, |
| { text: "America/Iqaluit (EDT)", id: "America/Iqaluit" }, |
| { text: "America/Jamaica (EST)", id: "America/Jamaica" }, |
| { text: "America/Juneau (AKDT)", id: "America/Juneau" }, |
| { |
| text: "America/Kentucky/Louisville (EDT)", |
| id: "America/Kentucky/Louisville" |
| }, |
| { |
| text: "America/Kentucky/Monticello (EDT)", |
| id: "America/Kentucky/Monticello" |
| }, |
| { text: "America/Knox_IN (CDT)", id: "America/Knox_IN" }, |
| { text: "America/Kralendijk (AST)", id: "America/Kralendijk" }, |
| { text: "America/Jujuy (ART)", id: "America/Jujuy" }, |
| { text: "America/La_Paz (BOT)", id: "America/La_Paz" }, |
| { text: "America/Louisville (EDT)", id: "America/Louisville" }, |
| { text: "America/Lower_Princes (AST)", id: "America/Lower_Princes" }, |
| { text: "America/Maceio (BRT)", id: "America/Maceio" }, |
| { text: "America/Lima (PET)", id: "America/Lima" }, |
| { text: "America/Los_Angeles (PDT)", id: "America/Los_Angeles" }, |
| { text: "America/Managua (CST)", id: "America/Managua" }, |
| { text: "America/Manaus (AMT)", id: "America/Manaus" }, |
| { text: "America/Marigot (AST)", id: "America/Marigot" }, |
| { text: "America/Martinique (AST)", id: "America/Martinique" }, |
| { text: "America/Matamoros (CDT)", id: "America/Matamoros" }, |
| { text: "America/Mazatlan (MDT)", id: "America/Mazatlan" }, |
| { text: "America/Menominee (CDT)", id: "America/Menominee" }, |
| { text: "America/Merida (CDT)", id: "America/Merida" }, |
| { text: "America/Mendoza (ART)", id: "America/Mendoza" }, |
| { text: "America/Metlakatla (AKDT)", id: "America/Metlakatla" }, |
| { text: "America/Mexico_City (CDT)", id: "America/Mexico_City" }, |
| { text: "America/Miquelon (PMST)", id: "America/Miquelon" }, |
| { text: "America/Moncton (ADT)", id: "America/Moncton" }, |
| { text: "America/Monterrey (CDT)", id: "America/Monterrey" }, |
| { text: "America/Montevideo (UYT)", id: "America/Montevideo" }, |
| { text: "America/Montreal (EDT)", id: "America/Montreal" }, |
| { text: "America/Montserrat (AST)", id: "America/Montserrat" }, |
| { text: "America/Nassau (EDT)", id: "America/Nassau" }, |
| { text: "America/New_York (EDT)", id: "America/New_York" }, |
| { text: "America/Nipigon (EDT)", id: "America/Nipigon" }, |
| { text: "America/Nome (AKDT)", id: "America/Nome" }, |
| { text: "America/Noronha (FNT)", id: "America/Noronha" }, |
| { |
| text: "America/North_Dakota/Beulah (CDT)", |
| id: "America/North_Dakota/Beulah" |
| }, |
| { |
| text: "America/North_Dakota/Center (CDT)", |
| id: "America/North_Dakota/Center" |
| }, |
| { |
| text: "America/North_Dakota/New_Salem (CDT)", |
| id: "America/North_Dakota/New_Salem" |
| }, |
| { text: "America/Ojinaga (MDT)", id: "America/Ojinaga" }, |
| { text: "America/Panama (EST)", id: "America/Panama" }, |
| { text: "America/Pangnirtung (EDT)", id: "America/Pangnirtung" }, |
| { text: "America/Paramaribo (SRT)", id: "America/Paramaribo" }, |
| { text: "America/Phoenix (MST)", id: "America/Phoenix" }, |
| { text: "America/Port_of_Spain (AST)", id: "America/Port_of_Spain" }, |
| { text: "America/Port-au-Prince (EDT)", id: "America/Port-au-Prince" }, |
| { text: "America/Porto_Velho (AMT)", id: "America/Porto_Velho" }, |
| { text: "America/Porto_Acre (ACT)", id: "America/Porto_Acre" }, |
| { text: "America/Puerto_Rico (AST)", id: "America/Puerto_Rico" }, |
| { text: "America/Punta_Arenas (CLST)", id: "America/Punta_Arenas" }, |
| { text: "America/Rainy_River (CDT)", id: "America/Rainy_River" }, |
| { text: "America/Rankin_Inlet (CDT)", id: "America/Rankin_Inlet" }, |
| { text: "America/Recife (BRT)", id: "America/Recife" }, |
| { text: "America/Regina (CST)", id: "America/Regina" }, |
| { text: "America/Resolute (CDT)", id: "America/Resolute" }, |
| { text: "America/Rio_Branco (ACT)", id: "America/Rio_Branco" }, |
| { text: "America/Rosario (ART)", id: "America/Rosario" }, |
| { text: "America/Santa_Isabel (PDT)", id: "America/Santa_Isabel" }, |
| { text: "America/Santarem (BRT)", id: "America/Santarem" }, |
| { text: "America/Santiago (CLT)", id: "America/Santiago" }, |
| { text: "America/Santo_Domingo (AST)", id: "America/Santo_Domingo" }, |
| { text: "America/Sao_Paulo (BRST)", id: "America/Sao_Paulo" }, |
| { text: "America/Scoresbysund (EGT)", id: "America/Scoresbysund" }, |
| { text: "America/Shiprock (MDT)", id: "America/Shiprock" }, |
| { text: "America/Sitka (AKDT)", id: "America/Sitka" }, |
| { text: "America/St_Barthelemy (AST)", id: "America/St_Barthelemy" }, |
| { text: "America/St_Johns (NDT)", id: "America/St_Johns" }, |
| { text: "America/St_Kitts (AST)", id: "America/St_Kitts" }, |
| { text: "America/St_Thomas (AST)", id: "America/St_Thomas" }, |
| { text: "America/St_Lucia (AST)", id: "America/St_Lucia" }, |
| { text: "America/St_Vincent (AST)", id: "America/St_Vincent" }, |
| { text: "America/Swift_Current (CST)", id: "America/Swift_Current" }, |
| { text: "America/Tegucigalpa (CST)", id: "America/Tegucigalpa" }, |
| { text: "America/Thunder_Bay (EDT)", id: "America/Thunder_Bay" }, |
| { text: "America/Tijuana (PDT)", id: "America/Tijuana" }, |
| { text: "America/Toronto (EDT)", id: "America/Toronto" }, |
| { text: "America/Tortola (AST)", id: "America/Tortola" }, |
| { text: "America/Vancouver (PDT)", id: "America/Vancouver" }, |
| { text: "America/Virgin (AST)", id: "America/Virgin" }, |
| { text: "America/Thule (ADT)", id: "America/Thule" }, |
| { text: "America/Whitehorse (PDT)", id: "America/Whitehorse" }, |
| { text: "America/Winnipeg (CDT)", id: "America/Winnipeg" }, |
| { text: "America/Yakutat (AKDT)", id: "America/Yakutat" }, |
| { text: "America/Yellowknife (MDT)", id: "America/Yellowknife" }, |
| { text: "Antarctica/Casey (CAST)", id: "Antarctica/Casey" }, |
| { text: "Antarctica/Davis (DAVT)", id: "Antarctica/Davis" }, |
| { |
| text: "Antarctica/DumontDUrville (DDUT)", |
| id: "Antarctica/DumontDUrville" |
| }, |
| { text: "Antarctica/Macquarie (MIST)", id: "Antarctica/Macquarie" }, |
| { text: "Antarctica/Mawson (MAWT)", id: "Antarctica/Mawson" }, |
| { text: "Antarctica/McMurdo (NZST)", id: "Antarctica/McMurdo" }, |
| { text: "Antarctica/Palmer (CLST)", id: "Antarctica/Palmer" }, |
| { text: "Antarctica/Rothera (ART)", id: "Antarctica/Rothera" }, |
| { text: "Antarctica/South_Pole (NZST)", id: "Antarctica/South_Pole" }, |
| { text: "Antarctica/Syowa (SYOT)", id: "Antarctica/Syowa" }, |
| { text: "Antarctica/Troll (CEST)", id: "Antarctica/Troll" }, |
| { text: "Antarctica/Vostok (VOST)", id: "Antarctica/Vostok" }, |
| { text: "Arctic/Longyearbyen (CEST)", id: "Arctic/Longyearbyen" }, |
| { text: "Asia/Aden (AST)", id: "Asia/Aden" }, |
| { text: "Asia/Almaty (ALMT)", id: "Asia/Almaty" }, |
| { text: "Asia/Amman (EEST)", id: "Asia/Amman" }, |
| { text: "Asia/Anadyr (ANAT)", id: "Asia/Anadyr" }, |
| { text: "Asia/Aqtau (AQTT)", id: "Asia/Aqtau" }, |
| { text: "Asia/Aqtobe (AQTT)", id: "Asia/Aqtobe" }, |
| { text: "Asia/Ashgabat (TMT)", id: "Asia/Ashgabat" }, |
| { text: "Asia/Ashkhabad (TMT)", id: "Asia/Ashkhabad" }, |
| { text: "Asia/Atyrau (AQTT)", id: "Asia/Atyrau" }, |
| { text: "Asia/Baghdad (AST)", id: "Asia/Baghdad" }, |
| { text: "Asia/Baku (AZT)", id: "Asia/Baku" }, |
| { text: "Asia/Bahrain (AST)", id: "Asia/Bahrain" }, |
| { text: "Asia/Barnaul", id: "Asia/Barnaul" }, |
| { text: "Asia/Beirut (EEST)", id: "Asia/Beirut" }, |
| { text: "Asia/Bishkek (KGT)", id: "Asia/Bishkek" }, |
| { text: "Asia/Brunei (BNT)", id: "Asia/Brunei" }, |
| { text: "Asia/Bangkok (ICT)", id: "Asia/Bangkok" }, |
| { text: "Asia/Calcutta (IST)", id: "Asia/Calcutta" }, |
| { text: "Asia/Chita (YAKT)", id: "Asia/Chita" }, |
| { text: "Asia/Choibalsan (CHOT)", id: "Asia/Choibalsan" }, |
| { text: "Asia/Chongqing (CST)", id: "Asia/Chongqing" }, |
| { text: "Asia/Chungking (CST)", id: "Asia/Chungking" }, |
| { text: "Asia/Colombo (IST)", id: "Asia/Colombo" }, |
| { text: "Asia/Dacca (BST)", id: "Asia/Dacca" }, |
| { text: "Asia/Damascus (EEST)", id: "Asia/Damascus" }, |
| { text: "Asia/Dhaka (BDT)", id: "Asia/Dhaka" }, |
| { text: "Asia/Dili (TLT)", id: "Asia/Dili" }, |
| { text: "Asia/Dubai (GST)", id: "Asia/Dubai" }, |
| { text: "Asia/Dushanbe (TJT)", id: "Asia/Dushanbe" }, |
| { text: "Asia/Famagusta (EEST)", id: "Asia/Famagusta" }, |
| { text: "Asia/Gaza (EEST)", id: "Asia/Gaza" }, |
| { text: "Asia/Harbin (CST)", id: "Asia/Harbin" }, |
| { text: "Asia/Hebron (EEST)", id: "Asia/Hebron" }, |
| { text: "Asia/Hong_Kong (HKT)", id: "Asia/Hong_Kong" }, |
| { text: "Asia/Ho_Chi_Minh (ICT)", id: "Asia/Ho_Chi_Minh" }, |
| { text: "Asia/Hovd (HOVT)", id: "Asia/Hovd" }, |
| { text: "Asia/Irkutsk (IRKT)", id: "Asia/Irkutsk" }, |
| { text: "Asia/Istanbul (TRT)", id: "Asia/Istanbul" }, |
| { text: "Asia/Jakarta (WIB)", id: "Asia/Jakarta" }, |
| { text: "Asia/Jayapura (WIT)", id: "Asia/Jayapura" }, |
| { text: "Asia/Jerusalem (IDT)", id: "Asia/Jerusalem" }, |
| { text: "Asia/Kabul (AFT)", id: "Asia/Kabul" }, |
| { text: "Asia/Kamchatka (PETT)", id: "Asia/Kamchatka" }, |
| { text: "Asia/Karachi (PKT)", id: "Asia/Karachi" }, |
| { text: "Asia/Kashgar (XJT)", id: "Asia/Kashgar" }, |
| { text: "Asia/Kathmandu (NPT)", id: "Asia/Kathmandu" }, |
| { text: "Asia/Katmandu (NPT)", id: "Asia/Katmandu" }, |
| { text: "Asia/Khandyga (YAKT)", id: "Asia/Khandyga" }, |
| { text: "Asia/Kolkata (IST)", id: "Asia/Kolkata" }, |
| { text: "Asia/Krasnoyarsk (KRAT)", id: "Asia/Krasnoyarsk" }, |
| { text: "Asia/Kuala_Lumpur (MYT)", id: "Asia/Kuala_Lumpur" }, |
| { text: "Asia/Kuching (MYT)", id: "Asia/Kuching" }, |
| { text: "Asia/Kuwait (AST)", id: "Asia/Kuwait" }, |
| { text: "Asia/Macao (CST)", id: "Asia/Macao" }, |
| { text: "Asia/Macau (CST)", id: "Asia/Macau" }, |
| { text: "Asia/Magadan (MAGT)", id: "Asia/Magadan" }, |
| { text: "Asia/Makassar (WITA)", id: "Asia/Makassar" }, |
| { text: "Asia/Manila (PHT)", id: "Asia/Manila" }, |
| { text: "Asia/Muscat (GST)", id: "Asia/Muscat" }, |
| { text: "Africa/Bujumbura (CAT)", id: "Africa/Bujumbura" }, |
| { text: "Asia/Nicosia (EEST)", id: "Asia/Nicosia" }, |
| { text: "Asia/Novokuznetsk (KRAT)", id: "Asia/Novokuznetsk" }, |
| { text: "Asia/Novosibirsk (NOVT)", id: "Asia/Novosibirsk" }, |
| { text: "Asia/Omsk (OMST)", id: "Asia/Omsk" }, |
| { text: "Asia/Oral (ORAT)", id: "Asia/Oral" }, |
| { text: "Asia/Phnom_Penh (ICT)", id: "Asia/Phnom_Penh" }, |
| { text: "Asia/Pontianak (WIB)", id: "Asia/Pontianak" }, |
| { text: "Asia/Pyongyang (KST)", id: "Asia/Pyongyang" }, |
| { text: "Asia/Qatar (AST)", id: "Asia/Qatar" }, |
| { text: "Asia/Qyzylorda (QYZT)", id: "Asia/Qyzylorda" }, |
| { text: "Asia/Rangoon (MMT)", id: "Asia/Rangoon" }, |
| { text: "Asia/Riyadh (AST)", id: "Asia/Riyadh" }, |
| { text: "Asia/Saigon (ICT)", id: "Asia/Saigon" }, |
| { text: "Asia/Sakhalin (SAKT)", id: "Asia/Sakhalin" }, |
| { text: "Asia/Samarkand (UZT)", id: "Asia/Samarkand" }, |
| { text: "Asia/Seoul (KST)", id: "Asia/Seoul" }, |
| { text: "Asia/Shanghai (CST)", id: "Asia/Shanghai" }, |
| { text: "Asia/Singapore (SGT)", id: "Asia/Singapore" }, |
| { text: "Asia/Srednekolymsk (SRET)", id: "Asia/Srednekolymsk" }, |
| { text: "Asia/Taipei (CST)", id: "Asia/Taipei" }, |
| { text: "Asia/Tashkent (UZT)", id: "Asia/Tashkent" }, |
| { text: "Asia/Tbilisi (GET)", id: "Asia/Tbilisi" }, |
| { text: "Asia/Tehran (IRST)", id: "Asia/Tehran" }, |
| { text: "Asia/Tel_Aviv (IDT)", id: "Asia/Tel_Aviv" }, |
| { text: "Asia/Thimbu (BTT)", id: "Asia/Thimbu" }, |
| { text: "Asia/Thimphu (BTT)", id: "Asia/Thimphu" }, |
| { text: "Asia/Tokyo (JST)", id: "Asia/Tokyo" }, |
| { text: "Africa/Djibouti (EAT)", id: "Africa/Djibouti" }, |
| { text: "Asia/Tomsk", id: "Asia/Tomsk" }, |
| { text: "Asia/Ujung_Pandang (WITA)", id: "Asia/Ujung_Pandang" }, |
| { text: "Asia/Ulaanbaatar (ULAT)", id: "Asia/Ulaanbaatar" }, |
| { text: "Asia/Ulan_Bator (ULAT)", id: "Asia/Ulan_Bator" }, |
| { text: "Asia/Urumqi (XJT)", id: "Asia/Urumqi" }, |
| { text: "Asia/Ust-Nera (VLAT)", id: "Asia/Ust-Nera" }, |
| { text: "Asia/Vientiane (ICT)", id: "Asia/Vientiane" }, |
| { text: "Asia/Vladivostok (VLAT)", id: "Asia/Vladivostok" }, |
| { text: "Asia/Yakutsk (YAKT)", id: "Asia/Yakutsk" }, |
| { text: "Asia/Yangon (MMT)", id: "Asia/Yangon" }, |
| { text: "Asia/Yekaterinburg (YEKT)", id: "Asia/Yekaterinburg" }, |
| { text: "Asia/Yerevan (AMT)", id: "Asia/Yerevan" }, |
| { text: "Atlantic/Azores (AZOT)", id: "Atlantic/Azores" }, |
| { text: "Atlantic/Bermuda (ADT)", id: "Atlantic/Bermuda" }, |
| { text: "Atlantic/Canary (WEST)", id: "Atlantic/Canary" }, |
| { text: "Atlantic/Cape_Verde (CVT)", id: "Atlantic/Cape_Verde" }, |
| { text: "Atlantic/Faeroe (WEST)", id: "Atlantic/Faeroe" }, |
| { text: "Atlantic/Faroe (WEST)", id: "Atlantic/Faroe" }, |
| { text: "Atlantic/Jan_Mayen (CEST)", id: "Atlantic/Jan_Mayen" }, |
| { text: "Atlantic/Madeira (WEST)", id: "Atlantic/Madeira" }, |
| { text: "Atlantic/Reykjavik (GMT)", id: "Atlantic/Reykjavik" }, |
| { text: "Atlantic/South_Georgia (GST)", id: "Atlantic/South_Georgia" }, |
| { text: "Atlantic/St_Helena (GMT)", id: "Atlantic/St_Helena" }, |
| { text: "Atlantic/Stanley (FKST)", id: "Atlantic/Stanley" }, |
| { text: "Australia/ACT (AEST)", id: "Australia/ACT" }, |
| { text: "Australia/Adelaide (ACST)", id: "Australia/Adelaide" }, |
| { text: "Australia/Brisbane (AEST)", id: "Australia/Brisbane" }, |
| { text: "Australia/Canberra (AEST)", id: "Australia/Canberra" }, |
| { text: "Australia/Eucla (ACWST)", id: "Australia/Eucla" }, |
| { text: "Australia/Hobart (AEST)", id: "Australia/Hobart" }, |
| { text: "Australia/Broken_Hill (ACST)", id: "Australia/Broken_Hill" }, |
| { text: "Australia/Currie (AEST)", id: "Australia/Currie" }, |
| { text: "Australia/Darwin (ACST)", id: "Australia/Darwin" }, |
| { text: "Australia/LHI (LHT)", id: "Australia/LHI" }, |
| { text: "Australia/Lindeman (AEST)", id: "Australia/Lindeman" }, |
| { text: "Australia/Lord_Howe (LHDT)", id: "Australia/Lord_Howe" }, |
| { text: "Australia/Melbourne (AEST)", id: "Australia/Melbourne" }, |
| { text: "Australia/North (ACST)", id: "Australia/North" }, |
| { text: "Australia/NSW (AEST)", id: "Australia/NSW" }, |
| { text: "Australia/Perth (AWST)", id: "Australia/Perth" }, |
| { text: "Australia/Queensland (AEST)", id: "Australia/Queensland" }, |
| { text: "Australia/South (ACST)", id: "Australia/South" }, |
| { text: "Australia/Sydney (AEST)", id: "Australia/Sydney" }, |
| { text: "Australia/Tasmania (AEST)", id: "Australia/Tasmania" }, |
| { text: "Australia/Victoria (AEST)", id: "Australia/Victoria" }, |
| { text: "Australia/West (AWST)", id: "Australia/West" }, |
| { text: "Australia/Yancowinna (ACST)", id: "Australia/Yancowinna" }, |
| { text: "Brazil/Acre (ACT)", id: "Brazil/Acre" }, |
| { text: "Brazil/DeNoronha (FNT)", id: "Brazil/DeNoronha" }, |
| { text: "Brazil/East (BRT)", id: "Brazil/East" }, |
| { text: "Brazil/West (AMT)", id: "Brazil/West" }, |
| { text: "Canada/Atlantic (ADT)", id: "Canada/Atlantic" }, |
| { text: "Canada/Central (CDT)", id: "Canada/Central" }, |
| { text: "Canada/Eastern (EDT)", id: "Canada/Eastern" }, |
| { text: "Canada/Mountain (MDT)", id: "Canada/Mountain" }, |
| { text: "Canada/Newfoundland (NDT)", id: "Canada/Newfoundland" }, |
| { text: "Canada/Pacific (PDT)", id: "Canada/Pacific" }, |
| { text: "Canada/Saskatchewan (CST)", id: "Canada/Saskatchewan" }, |
| { text: "Canada/Yukon (PDT)", id: "Canada/Yukon" }, |
| { text: "CET (CEST)", id: "CET" }, |
| { text: "Chile/Continental (CLT)", id: "Chile/Continental" }, |
| { text: "Chile/EasterIsland (EAST)", id: "Chile/EasterIsland" }, |
| { text: "CST6CDT (CDT)", id: "CST6CDT" }, |
| { text: "Cuba (CDT)", id: "Cuba" }, |
| { text: "EET (EEST)", id: "EET" }, |
| { text: "Egypt (EET)", id: "Egypt" }, |
| { text: "Eire (IST)", id: "Eire" }, |
| { text: "EST (EST)", id: "EST" }, |
| { text: "EST5EDT (EDT)", id: "EST5EDT" }, |
| { text: "Etc/GMT (GMT)", id: "Etc/GMT" }, |
| { text: "Etc/GMT-0 (GMT)", id: "Etc/GMT-0" }, |
| { text: "Etc/GMT-1", id: "Etc/GMT-1" }, |
| { text: "Etc/GMT-10", id: "Etc/GMT-10" }, |
| { text: "Etc/GMT-11", id: "Etc/GMT-11" }, |
| { text: "Etc/GMT-12", id: "Etc/GMT-12" }, |
| { text: "Etc/GMT-13", id: "Etc/GMT-13" }, |
| { text: "Etc/GMT-14", id: "Etc/GMT-14" }, |
| { text: "Etc/GMT-2", id: "Etc/GMT-2" }, |
| { text: "Etc/GMT-3", id: "Etc/GMT-3" }, |
| { text: "Etc/GMT-4", id: "Etc/GMT-4" }, |
| { text: "Etc/GMT-5", id: "Etc/GMT-5" }, |
| { text: "Etc/GMT-6", id: "Etc/GMT-6" }, |
| { text: "Etc/GMT-7", id: "Etc/GMT-7" }, |
| { text: "Etc/GMT-8", id: "Etc/GMT-8" }, |
| { text: "Etc/GMT-9", id: "Etc/GMT-9" }, |
| { text: "Etc/GMT+0 (GMT)", id: "Etc/GMT+0" }, |
| { text: "Etc/GMT+1", id: "Etc/GMT+1" }, |
| { text: "Etc/GMT+10", id: "Etc/GMT+10" }, |
| { text: "Etc/GMT+11", id: "Etc/GMT+11" }, |
| { text: "Etc/GMT+12", id: "Etc/GMT+12" }, |
| { text: "Etc/GMT+2", id: "Etc/GMT+2" }, |
| { text: "Etc/GMT+3", id: "Etc/GMT+3" }, |
| { text: "Etc/GMT+4", id: "Etc/GMT+4" }, |
| { text: "Etc/GMT+5", id: "Etc/GMT+5" }, |
| { text: "Etc/GMT+6", id: "Etc/GMT+6" }, |
| { text: "Etc/GMT+7", id: "Etc/GMT+7" }, |
| { text: "Etc/GMT+8", id: "Etc/GMT+8" }, |
| { text: "Etc/GMT+9", id: "Etc/GMT+9" }, |
| { text: "Etc/GMT0 (GMT)", id: "Etc/GMT0" }, |
| { text: "Etc/Universal (UTC)", id: "Etc/Universal" }, |
| { text: "Etc/Greenwich (GMT)", id: "Etc/Greenwich" }, |
| { text: "Etc/UCT (UCT)", id: "Etc/UCT" }, |
| { text: "Etc/UTC (UTC)", id: "Etc/UTC" }, |
| { text: "Etc/Zulu (UTC)", id: "Etc/Zulu" }, |
| { text: "Europe/Amsterdam (CEST)", id: "Europe/Amsterdam" }, |
| { text: "Europe/Andorra (CEST)", id: "Europe/Andorra" }, |
| { text: "Europe/Athens (EEST)", id: "Europe/Athens" }, |
| { text: "Europe/Belfast (BST)", id: "Europe/Belfast" }, |
| { text: "Europe/Belgrade (CEST)", id: "Europe/Belgrade" }, |
| { text: "Europe/Berlin (CEST)", id: "Europe/Berlin" }, |
| { text: "Europe/Bratislava (CEST)", id: "Europe/Bratislava" }, |
| { text: "Europe/Brussels (CEST)", id: "Europe/Brussels" }, |
| { text: "Europe/Astrakhan", id: "Europe/Astrakhan" }, |
| { text: "Europe/Bucharest (EEST)", id: "Europe/Bucharest" }, |
| { text: "Europe/Busingen (CEST)", id: "Europe/Busingen" }, |
| { text: "Europe/Budapest (CEST)", id: "Europe/Budapest" }, |
| { text: "Europe/Chisinau (EEST)", id: "Europe/Chisinau" }, |
| { text: "Europe/Copenhagen (CEST)", id: "Europe/Copenhagen" }, |
| { text: "Europe/Dublin (IST)", id: "Europe/Dublin" }, |
| { text: "Europe/Gibraltar (CEST)", id: "Europe/Gibraltar" }, |
| { text: "Europe/Guernsey (BST)", id: "Europe/Guernsey" }, |
| { text: "Europe/Helsinki (EEST)", id: "Europe/Helsinki" }, |
| { text: "Europe/Isle_of_Man (BST)", id: "Europe/Isle_of_Man" }, |
| { text: "Europe/Istanbul (EET)", id: "Europe/Istanbul" }, |
| { text: "Europe/Jersey (BST)", id: "Europe/Jersey" }, |
| { text: "Europe/Kaliningrad (EET)", id: "Europe/Kaliningrad" }, |
| { text: "Europe/Kiev (EEST)", id: "Europe/Kiev" }, |
| { text: "Europe/Kirov (MSK)", id: "Europe/Kirov" }, |
| { text: "Europe/Lisbon (WEST)", id: "Europe/Lisbon" }, |
| { text: "Europe/Ljubljana (CEST)", id: "Europe/Ljubljana" }, |
| { text: "Europe/London (BST)", id: "Europe/London" }, |
| { text: "Europe/Luxembourg (CEST)", id: "Europe/Luxembourg" }, |
| { text: "Europe/Madrid (CEST)", id: "Europe/Madrid" }, |
| { text: "Europe/Malta (CEST)", id: "Europe/Malta" }, |
| { text: "Europe/Mariehamn (EEST)", id: "Europe/Mariehamn" }, |
| { text: "Europe/Minsk (MSK)", id: "Europe/Minsk" }, |
| { text: "Europe/Monaco (CEST)", id: "Europe/Monaco" }, |
| { text: "Europe/Moscow (MSK)", id: "Europe/Moscow" }, |
| { text: "Europe/Nicosia (EEST)", id: "Europe/Nicosia" }, |
| { text: "Europe/Oslo (CEST)", id: "Europe/Oslo" }, |
| { text: "Europe/Paris (CEST)", id: "Europe/Paris" }, |
| { text: "Europe/Podgorica (CEST)", id: "Europe/Podgorica" }, |
| { text: "Europe/Prague (CEST)", id: "Europe/Prague" }, |
| { text: "Europe/Riga (EEST)", id: "Europe/Riga" }, |
| { text: "Europe/Rome (CEST)", id: "Europe/Rome" }, |
| { text: "Europe/Samara (SAMT)", id: "Europe/Samara" }, |
| { text: "Europe/San_Marino (CEST)", id: "Europe/San_Marino" }, |
| { text: "Europe/Sarajevo (CEST)", id: "Europe/Sarajevo" }, |
| { text: "Europe/Saratov", id: "Europe/Saratov" }, |
| { text: "Europe/Simferopol (MSK)", id: "Europe/Simferopol" }, |
| { text: "Europe/Skopje (CEST)", id: "Europe/Skopje" }, |
| { text: "Europe/Sofia (EEST)", id: "Europe/Sofia" }, |
| { text: "Europe/Stockholm (CEST)", id: "Europe/Stockholm" }, |
| { text: "Europe/Tallinn (EEST)", id: "Europe/Tallinn" }, |
| { text: "Europe/Tirane (CEST)", id: "Europe/Tirane" }, |
| { text: "Europe/Tiraspol (EEST)", id: "Europe/Tiraspol" }, |
| { text: "Europe/Ulyanovsk", id: "Europe/Ulyanovsk" }, |
| { text: "Europe/Uzhgorod (EEST)", id: "Europe/Uzhgorod" }, |
| { text: "Europe/Vaduz (CEST)", id: "Europe/Vaduz" }, |
| { text: "Europe/Vatican (CEST)", id: "Europe/Vatican" }, |
| { text: "Europe/Vienna (CEST)", id: "Europe/Vienna" }, |
| { text: "Europe/Vilnius (EEST)", id: "Europe/Vilnius" }, |
| { text: "Europe/Volgograd (MSK)", id: "Europe/Volgograd" }, |
| { text: "Europe/Warsaw (CEST)", id: "Europe/Warsaw" }, |
| { text: "Europe/Zagreb (CEST)", id: "Europe/Zagreb" }, |
| { text: "Europe/Zaporozhye (EEST)", id: "Europe/Zaporozhye" }, |
| { text: "Europe/Zurich (CEST)", id: "Europe/Zurich" }, |
| { text: "GB (BST)", id: "GB" }, |
| { text: "GB-Eire (BST)", id: "GB-Eire" }, |
| { text: "GMT (GMT)", id: "GMT" }, |
| { text: "GMT0 (GMT)", id: "GMT0" }, |
| { text: "Greenwich (GMT)", id: "Greenwich" }, |
| { text: "Hongkong (HKT)", id: "Hongkong" }, |
| { text: "HST (HST)", id: "HST" }, |
| { text: "Iceland (GMT)", id: "Iceland" }, |
| { text: "Indian/Antananarivo (EAT)", id: "Indian/Antananarivo" }, |
| { text: "Indian/Chagos (IOT)", id: "Indian/Chagos" }, |
| { text: "Indian/Christmas (CXT)", id: "Indian/Christmas" }, |
| { text: "Indian/Cocos (CCT)", id: "Indian/Cocos" }, |
| { text: "Indian/Comoro (EAT)", id: "Indian/Comoro" }, |
| { text: "Indian/Kerguelen (TFT)", id: "Indian/Kerguelen" }, |
| { text: "Indian/Mahe (SCT)", id: "Indian/Mahe" }, |
| { text: "Indian/Maldives (MVT)", id: "Indian/Maldives" }, |
| { text: "Indian/Mauritius (MUT)", id: "Indian/Mauritius" }, |
| { text: "Indian/Mayotte (EAT)", id: "Indian/Mayotte" }, |
| { text: "Indian/Reunion (RET)", id: "Indian/Reunion" }, |
| { text: "Iran (IRT)", id: "Iran" }, |
| { text: "Israel (IDT)", id: "Israel" }, |
| { text: "Jamaica (EST)", id: "Jamaica" }, |
| { text: "Japan (JST)", id: "Japan" }, |
| { text: "Kwajalein (MHT)", id: "Kwajalein" }, |
| { text: "Libya (EET)", id: "Libya" }, |
| { text: "MET (MEST)", id: "MET" }, |
| { text: "Mexico/BajaNorte (PDT)", id: "Mexico/BajaNorte" }, |
| { text: "Mexico/BajaSur (MDT)", id: "Mexico/BajaSur" }, |
| { text: "Mexico/General (CDT)", id: "Mexico/General" }, |
| { text: "MST (MST)", id: "MST" }, |
| { text: "MST7MDT (MDT)", id: "MST7MDT" }, |
| { text: "Navajo (MDT)", id: "Navajo" }, |
| { text: "NZ (NZST)", id: "NZ" }, |
| { text: "NZ-CHAT (CHAT)", id: "NZ-CHAT" }, |
| { text: "Pacific/Apia (WSDT)", id: "Pacific/Apia" }, |
| { text: "Pacific/Auckland (NZST)", id: "Pacific/Auckland" }, |
| { text: "Pacific/Bougainville (BT)", id: "Pacific/Bougainville" }, |
| { text: "Pacific/Chatham (CHADT)", id: "Pacific/Chatham" }, |
| { text: "Pacific/Chuuk (CHUT)", id: "Pacific/Chuuk" }, |
| { text: "Pacific/Easter (EAST)", id: "Pacific/Easter" }, |
| { text: "Pacific/Efate (VUT)", id: "Pacific/Efate" }, |
| { text: "Pacific/Enderbury (PHOT)", id: "Pacific/Enderbury" }, |
| { text: "Pacific/Fakaofo (TKT)", id: "Pacific/Fakaofo" }, |
| { text: "Pacific/Fiji (FJST)", id: "Pacific/Fiji" }, |
| { text: "Pacific/Funafuti (TVT)", id: "Pacific/Funafuti" }, |
| { text: "Pacific/Galapagos (GALT)", id: "Pacific/Galapagos" }, |
| { text: "Pacific/Gambier (GAMT)", id: "Pacific/Gambier" }, |
| { text: "Pacific/Guadalcanal (SBT)", id: "Pacific/Guadalcanal" }, |
| { text: "Pacific/Guam (ChST)", id: "Pacific/Guam" }, |
| { text: "Pacific/Honolulu (HST)", id: "Pacific/Honolulu" }, |
| { text: "Pacific/Johnston (HST)", id: "Pacific/Johnston" }, |
| { text: "Pacific/Kiritimati (LINT)", id: "Pacific/Kiritimati" }, |
| { text: "Pacific/Kosrae (KOST)", id: "Pacific/Kosrae" }, |
| { text: "Pacific/Kwajalein (MHT)", id: "Pacific/Kwajalein" }, |
| { text: "Pacific/Majuro (MHT)", id: "Pacific/Majuro" }, |
| { text: "Pacific/Marquesas (MART)", id: "Pacific/Marquesas" }, |
| { text: "Pacific/Midway (SST)", id: "Pacific/Midway" }, |
| { text: "Pacific/Nauru (NRT)", id: "Pacific/Nauru" }, |
| { text: "Pacific/Niue (NUT)", id: "Pacific/Niue" }, |
| { text: "Pacific/Norfolk (NFT)", id: "Pacific/Norfolk" }, |
| { text: "Pacific/Noumea (NCT)", id: "Pacific/Noumea" }, |
| { text: "Pacific/Pago_Pago (SST)", id: "Pacific/Pago_Pago" }, |
| { text: "Pacific/Palau (PWT)", id: "Pacific/Palau" }, |
| { text: "Pacific/Pitcairn (PST)", id: "Pacific/Pitcairn" }, |
| { text: "Pacific/Pohnpei (PONT)", id: "Pacific/Pohnpei" }, |
| { text: "Pacific/Ponape (PONT)", id: "Pacific/Ponape" }, |
| { text: "Pacific/Port_Moresby (PGT)", id: "Pacific/Port_Moresby" }, |
| { text: "Pacific/Rarotonga (CKT)", id: "Pacific/Rarotonga" }, |
| { text: "Pacific/Saipan (ChST)", id: "Pacific/Saipan" }, |
| { text: "Pacific/Samoa (SST)", id: "Pacific/Samoa" }, |
| { text: "Pacific/Tahiti (TAHT)", id: "Pacific/Tahiti" }, |
| { text: "Pacific/Tarawa (GILT)", id: "Pacific/Tarawa" }, |
| { text: "Pacific/Tongatapu (TOT)", id: "Pacific/Tongatapu" }, |
| { text: "Pacific/Truk (CHUT)", id: "Pacific/Truk" }, |
| { text: "Pacific/Wake (WAKT)", id: "Pacific/Wake" }, |
| { text: "Pacific/Wallis (WFT)", id: "Pacific/Wallis" }, |
| { text: "Pacific/Yap (CHUT)", id: "Pacific/Yap" }, |
| { text: "Poland (CEST)", id: "Poland" }, |
| { text: "Portugal (WEST)", id: "Portugal" }, |
| { text: "PRC (CST)", id: "PRC" }, |
| { text: "PST8PDT (PDT)", id: "PST8PDT" }, |
| { text: "ROK (KST)", id: "ROK" }, |
| { text: "Singapore (SGT)", id: "Singapore" }, |
| { text: "Turkey (EET)", id: "Turkey" }, |
| { text: "UCT (UCT)", id: "UCT" }, |
| { text: "Universal (UTC)", id: "Universal" }, |
| { text: "US/Alaska (AKDT)", id: "US/Alaska" }, |
| { text: "US/Aleutian (HDT)", id: "US/Aleutian" }, |
| { text: "US/Arizona (MST)", id: "US/Arizona" }, |
| { text: "US/Central (CDT)", id: "US/Central" }, |
| { text: "US/East-Indiana (EDT)", id: "US/East-Indiana" }, |
| { text: "US/Eastern (EDT)", id: "US/Eastern" }, |
| { text: "US/Hawaii (HST)", id: "US/Hawaii" }, |
| { text: "US/Indiana-Starke (CDT)", id: "US/Indiana-Starke" }, |
| { text: "US/Michigan (EDT)", id: "US/Michigan" }, |
| { text: "US/Mountain (MDT)", id: "US/Mountain" }, |
| { text: "US/Pacific (PDT)", id: "US/Pacific" }, |
| { text: "US/Pacific-New (PDT)", id: "US/Pacific-New" }, |
| { text: "US/Samoa (SST)", id: "US/Samoa" }, |
| { text: "UTC (UTC)", id: "UTC" }, |
| { text: "W-SU (MSK)", id: "W-SU" }, |
| { text: "WET (WEST)", id: "WET" }, |
| { text: "Zulu (UTC)", id: "Zulu" } |
| ]; |
| return Timezones; |
| }; |
| |
| export const showGroupsOrUsersOrRolesForPolicy = ( |
| showType, |
| rawData, |
| policyType |
| ) => { |
| let itemList = []; |
| if (policyType == "0") { |
| itemList = [ |
| "policyItems", |
| "allowExceptions", |
| "denyPolicyItems", |
| "denyExceptions" |
| ]; |
| } else if (policyType == "1") { |
| itemList = ["dataMaskPolicyItems"]; |
| } else { |
| itemList = ["rowFilterPolicyItems"]; |
| } |
| let allTypes = new Set(); |
| for (let item of itemList) { |
| if (rawData[item] && rawData[item].length > 0) |
| for (const obj of rawData[item]) { |
| if (!isEmpty(obj?.[showType])) { |
| allTypes = new Set([...allTypes, ...obj[showType]]); |
| } |
| } |
| } |
| allTypes = [...allTypes]; |
| return allTypes; |
| }; |
| |
| var links = { |
| ServiceManager: function (zoneName) { |
| return { |
| href: "/policymanager/resource", |
| text: !isUndefined(zoneName && zoneName.selectedZone) |
| ? `Service Manager : ${zoneName && zoneName.selectedZone.label} zone` |
| : "Service Manager" |
| }; |
| }, |
| TagBasedServiceManager: function (zoneName) { |
| return { |
| href: "/policymanager/tag", |
| text: !isUndefined(zoneName && zoneName.selectedZone) |
| ? `Service Manager : ${zoneName && zoneName.selectedZone.label} zone` |
| : "Service Manager" |
| }; |
| }, |
| ServiceCreate: { |
| href: "", |
| text: "Create Service" |
| }, |
| ServiceEdit: function (serviceDetails) { |
| return { |
| href: `/service/${serviceDetails.serviceDefId}/edit/${serviceDetails.serviceId} `, |
| text: "Edit Service" |
| }; |
| }, |
| ManagePolicies: function (policy) { |
| return { |
| href: `/service/${policy.serviceId}/policies/${policy.policyType}`, |
| text: `${policy.serviceName} Policies` |
| }; |
| }, |
| PolicyCreate: { |
| href: "", |
| text: "Create Policy" |
| }, |
| PolicyEdit: { |
| href: "", |
| text: "Edit Policy" |
| }, |
| Users: { |
| href: "/users/usertab", |
| text: "Users/Groups/Roles" |
| }, |
| SecurityZone: function (zoneId) { |
| return { |
| href: isUndefined(zoneId) ? "/zones/zone/list" : `/zones/zone/${zoneId}`, |
| text: "Security Zone" |
| }; |
| }, |
| ZoneCreate: { |
| href: "/zones/create", |
| text: "Create Zone" |
| }, |
| ZoneEdit: { |
| href: "", |
| text: "Edit Zone" |
| }, |
| Kms: function (kms) { |
| return { |
| href: isUndefined(kms) ? "" : `/kms/keys/edit/manage/${kms.serviceName}`, |
| text: `KMS` |
| }; |
| }, |
| KmsKeyForService: function (serviceDetails) { |
| return { |
| href: `/service/${serviceDetails.serviceDefId}/edit/${serviceDetails.serviceId} `, |
| text: serviceDetails.serviceName |
| }; |
| }, |
| KmsKeyCreate: function (kms) { |
| return { |
| href: `/kms/keys/${kms.serviceName}/create`, |
| text: `Key Create` |
| }; |
| }, |
| UserProfile: { |
| href: "", |
| text: "User Profile" |
| }, |
| UserCreate: { |
| href: "", |
| text: "User Create" |
| }, |
| UserEdit: function (userId) { |
| return { |
| href: `/user/${userId}`, |
| text: "User Edit" |
| }; |
| }, |
| Groups: { |
| href: "/users/grouptab", |
| text: "Users/Groups/Roles" |
| }, |
| GroupCreate: { |
| href: "", |
| text: "Group Create" |
| }, |
| GroupEdit: function (userId) { |
| return { |
| href: `/group/${userId}`, |
| text: "Group Edit" |
| }; |
| }, |
| Roles: { |
| href: "/users/roletab", |
| text: "Users/Groups/Roles" |
| }, |
| RoleCreate: { |
| href: "", |
| text: "Role Create" |
| }, |
| RoleEdit: function (roleId) { |
| return { |
| href: `/role/${roleId}`, |
| text: "Role Edit" |
| }; |
| }, |
| ModulePermissions: { |
| href: "/permissions/models", |
| text: "Permissions" |
| }, |
| ModulePermissionEdit: function (permissionData) { |
| return { |
| href: `/permissions/${permissionData.id}/edit`, |
| text: permissionData.module |
| }; |
| }, |
| UserAccessReport: { |
| href: "", |
| text: "User Access Report" |
| } |
| }; |
| |
| export const commonBreadcrumb = (type, options) => { |
| let data = []; |
| type?.map((obj) => { |
| if (typeof links[obj] == "function") { |
| let filterdata = {}; |
| filterdata[obj] = links[obj](options); |
| return data.push(filterdata); |
| } |
| if (typeof links[obj] != "function") { |
| return data.push(pick(links, obj)); |
| } |
| }); |
| return <CustomBreadcrumb data={data} links={links} type={type} />; |
| }; |
| |
| /* PolicyListing QuerParams Name */ |
| export const QueryParamsName = (id) => { |
| if (id == QueryParams.PolicyListing.id.columnName) { |
| return QueryParams.PolicyListing.id.queryParamName; |
| } |
| if (id == QueryParams.PolicyListing.name.columnName) { |
| return QueryParams.PolicyListing.name.queryParamName; |
| } |
| }; |
| |
| /* QueryParams for sorting */ |
| export const getTableSortBy = (sortArr = []) => { |
| return sortArr.map(({ id }) => id).join(","); |
| }; |
| |
| export const getTableSortType = (sortArr = []) => { |
| return sortArr.map(({ desc }) => (desc ? "desc" : "asc")).join(","); |
| }; |
| |
| /* Info icon */ |
| export const InfoIcon = (props) => { |
| const { css, position, message } = props; |
| return ( |
| <span className={`${css}`}> |
| <CustomTooltip |
| placement={`${position}`} |
| content={message} |
| icon="fa-fw fa fa-info-circle" |
| /> |
| </span> |
| ); |
| }; |
| |
| /* Edit Permission Module Infinite Scroll */ |
| export const CustomInfinteScroll = (props) => { |
| const { data, removeUsrGrp, scrollableDiv } = props; |
| const [count, setCount] = useState({ |
| startIndex: 0, |
| maxItems: 200 |
| }); |
| |
| const [current, setCurrent] = useState( |
| data.slice(count.startIndex, count.maxItems) |
| ); |
| |
| const getMoreData = () => { |
| let newData = current.concat( |
| data.slice(count.startIndex + 200, count.maxItems + 200) |
| ); |
| setCurrent(newData); |
| setCount({ |
| startIndex: count.startIndex + 200, |
| maxItems: count.maxItems + 200 |
| }); |
| }; |
| |
| const removeData = (value) => { |
| removeUsrGrp(value); |
| }; |
| |
| return ( |
| <div id={scrollableDiv} className="permission-infinite-scroll"> |
| <InfiniteScroll |
| dataLength={current.length} |
| next={getMoreData} |
| hasMore={true} |
| scrollableTarget={scrollableDiv} |
| > |
| {current.map((obj) => ( |
| <span className="selected-widget" key={obj.value}> |
| <i |
| role="button" |
| id="button" |
| className="icon remove fa-fw fa fa-remove" |
| onClick={() => removeData(obj)} |
| data-id={obj.value} |
| data-cy={obj.value} |
| /> |
| {obj.label} |
| </span> |
| ))} |
| </InfiniteScroll> |
| </div> |
| ); |
| }; |
| |
| export const fetchSearchFilterParams = ( |
| auditTabName, |
| searchParams, |
| searchFilterOptions |
| ) => { |
| let finalSearchFilterData = {}; |
| let searchFilterParam = {}; |
| let searchParam = {}; |
| let defaultSearchFilterParam = []; |
| |
| // Get search filter params from current search params |
| for (const [key, value] of searchParams.entries()) { |
| let searchFilterObj = find(searchFilterOptions, { |
| urlLabel: key |
| }); |
| |
| if (!isUndefined(searchFilterObj)) { |
| let category = searchFilterObj.category; |
| let categoryValue = value; |
| |
| if (searchFilterObj?.addMultiple) { |
| let oldValue = searchFilterParam[category]; |
| let newValue = value; |
| if (oldValue) { |
| if (isArray(oldValue)) { |
| searchFilterParam[category].push(newValue); |
| searchParam[key].push(newValue); |
| } else { |
| searchFilterParam[category] = [oldValue, newValue]; |
| searchParam[key] = [oldValue, newValue]; |
| } |
| } else { |
| searchFilterParam[category] = newValue; |
| searchParam[key] = newValue; |
| } |
| } else { |
| if (searchFilterObj.type == "textoptions") { |
| let textOptionObj = find(searchFilterObj.options(), { |
| label: categoryValue |
| }); |
| categoryValue = !isUndefined(textOptionObj) |
| ? textOptionObj.value |
| : categoryValue; |
| } |
| |
| searchFilterParam[category] = categoryValue; |
| searchParam[key] = value; |
| } |
| defaultSearchFilterParam.push({ |
| category: category, |
| value: categoryValue |
| }); |
| } else { |
| searchParam[key] = value; |
| } |
| } |
| |
| // Get search filter params from localStorage |
| if (isEmpty(searchFilterParam)) { |
| if (!isNull(localStorage.getItem(auditTabName))) { |
| const localStorageParams = |
| !isEmpty(localStorage.getItem(auditTabName)) && |
| JSON.parse(localStorage.getItem(auditTabName)); |
| |
| for (const localParam in localStorageParams) { |
| let searchFilterObj = find(searchFilterOptions, { |
| urlLabel: localParam |
| }); |
| |
| if (!isUndefined(searchFilterObj)) { |
| let category = searchFilterObj.category; |
| let value = localStorageParams[localParam]; |
| |
| if (searchFilterObj?.addMultiple) { |
| if (isArray(value)) { |
| for (const val of value) { |
| searchFilterParam[category] = value; |
| defaultSearchFilterParam.push({ |
| category: category, |
| value: val |
| }); |
| searchParam[localParam] = value; |
| } |
| } else { |
| searchFilterParam[category] = value; |
| defaultSearchFilterParam.push({ |
| category: category, |
| value: value |
| }); |
| searchParam[localParam] = value; |
| } |
| } else { |
| if (searchFilterObj.type == "textoptions") { |
| let textOptionObj = find(searchFilterObj.options(), { |
| label: value |
| }); |
| value = !isUndefined(textOptionObj) ? textOptionObj.value : value; |
| } |
| |
| searchFilterParam[category] = value; |
| defaultSearchFilterParam.push({ |
| category: category, |
| value: value |
| }); |
| searchParam[localParam] = localStorageParams[localParam]; |
| } |
| } else { |
| searchParam[localParam] = localStorageParams[localParam]; |
| } |
| } |
| } |
| } |
| |
| finalSearchFilterData["searchFilterParam"] = searchFilterParam; |
| finalSearchFilterData["defaultSearchFilterParam"] = defaultSearchFilterParam; |
| finalSearchFilterData["searchParam"] = searchParam; |
| |
| return finalSearchFilterData; |
| }; |
| |
| export const parseSearchFilter = (filter, searchFilterOptions) => { |
| let finalSearchFilter = {}; |
| let searchFilterParam = {}; |
| let searchParam = {}; |
| |
| map(filter, function (obj) { |
| let searchFilterObj = find(searchFilterOptions, { |
| category: obj.category |
| }); |
| |
| if (searchFilterObj !== undefined) { |
| if (searchFilterObj?.addMultiple) { |
| let oldValue = searchFilterParam[obj.category]; |
| let newValue = obj.value; |
| if (oldValue) { |
| if (isArray(oldValue)) { |
| searchFilterParam[obj.category].push(newValue); |
| } else { |
| searchFilterParam[obj.category] = [oldValue, newValue]; |
| } |
| } else { |
| searchFilterParam[obj.category] = newValue; |
| } |
| } else { |
| searchFilterParam[obj.category] = obj.value; |
| } |
| |
| let urlLabelParam = searchFilterObj.urlLabel; |
| |
| if (searchFilterObj.type == "textoptions") { |
| let textOptionObj = find(searchFilterObj.options(), { |
| value: obj.value |
| }); |
| searchParam[urlLabelParam] = |
| textOptionObj !== undefined ? textOptionObj.label : obj.value; |
| } else { |
| if (searchFilterObj?.addMultiple) { |
| searchParam[urlLabelParam] = |
| searchFilterParam[searchFilterObj.category]; |
| } else { |
| searchParam[urlLabelParam] = obj.value; |
| } |
| } |
| } |
| }); |
| |
| finalSearchFilter["searchParam"] = searchParam; |
| finalSearchFilter["searchFilterParam"] = searchFilterParam; |
| |
| return finalSearchFilter; |
| }; |
| |
| export const serverError = (error) => { |
| if (error.response !== undefined && has(error.response, "data.msgDesc")) { |
| toast.error(error.response.data.msgDesc); |
| } else if (error.response !== undefined && has(error.response, "data")) { |
| toast.error(error.response.data); |
| } |
| }; |
| |
| /* PolicyInfo for masking and row filter */ |
| |
| export const policyInfo = (policyType, serviceType) => { |
| if ( |
| serviceType != "tag" && |
| policyType == RangerPolicyType.RANGER_MASKING_POLICY_TYPE.value |
| ) { |
| return policyInfoMessage.maskingPolicyInfoMsg; |
| } else if ( |
| serviceType == "tag" && |
| policyType == RangerPolicyType.RANGER_MASKING_POLICY_TYPE.value |
| ) { |
| return policyInfoMessage.maskingPolicyInfoMsgForTagBased; |
| } else if ( |
| policyType == RangerPolicyType.RANGER_ROW_FILTER_POLICY_TYPE.value |
| ) { |
| return policyInfoMessage.rowFilterPolicyInfoMsg; |
| } |
| }; |
| |
| /* Policy Expire */ |
| export const isPolicyExpired = (policy) => { |
| return !some( |
| policy.validitySchedules && |
| policy.validitySchedules.map((m) => { |
| if (!m.endTime) { |
| return true; |
| } else if (isEmpty(m.timeZone)) { |
| return new Date().valueOf() > new Date(m.endTime).valueOf() |
| ? false |
| : true; |
| } else { |
| return new Date( |
| moment.tz(m.timeZone).format("MM/DD/YYYY HH:mm:ss") |
| ).valueOf() > new Date(m.endTime).valueOf() |
| ? false |
| : true; |
| } |
| }) |
| ); |
| }; |
| |
| export const getBaseUrl = () => { |
| if (!window.location.origin) { |
| return ( |
| window.location.protocol + |
| "//" + |
| window.location.hostname + |
| (window.location.port ? ":" + window.location.port : "") |
| ); |
| } |
| |
| return ( |
| window.location.origin + |
| window.location.pathname.substring( |
| window.location.pathname.lastIndexOf("/") + 1, |
| 0 |
| ) |
| ); |
| }; |
| |
| /* Drag and Drop Feature */ |
| |
| export const dragStart = (e, position, dragItem) => { |
| e.target.style.opacity = 0.4; |
| e.target.style.backgroundColor = "#fdf1a6"; |
| e.stopPropagation(); |
| dragItem.current = position; |
| }; |
| |
| export const dragEnter = (e, position, dragOverItem) => { |
| dragOverItem.current = position; |
| }; |
| |
| export const dragOver = (e) => { |
| e.preventDefault(); |
| }; |
| |
| export const drop = (e, fields, dragItem, dragOverItem) => { |
| e.target.style.opacity = 1; |
| e.target.style.backgroundColor = "white"; |
| if (dragItem.current == dragOverItem.current) { |
| return; |
| } |
| |
| fields.move(dragItem.current, dragOverItem.current); |
| |
| dragItem.current = null; |
| dragOverItem.current = null; |
| }; |
| |
| // TODO : Remove below code once different router path is used to distinguish between tag and resource service/policy |
| export const updateTagActive = (isTagView) => { |
| if (isTagView) { |
| document |
| .getElementById("resourcesButton") |
| ?.classList?.remove("navbar-active"); |
| document.getElementById("tagButton")?.classList?.add("navbar-active"); |
| } else if (!isTagView) { |
| document.getElementById("tagButton")?.classList?.remove("navbar-active"); |
| document.getElementById("resourcesButton")?.classList?.add("navbar-active"); |
| } |
| }; |
| |
| export const handleLogout = async (checkKnoxSSOVal, navigate) => { |
| try { |
| await fetchApi({ |
| url: "logout", |
| baseURL: "", |
| headers: { |
| "cache-control": "no-cache" |
| } |
| }); |
| if (checkKnoxSSOVal !== undefined || checkKnoxSSOVal !== null) { |
| if (checkKnoxSSOVal?.toString() == "false") { |
| window.location.replace("/locallogin"); |
| window.localStorage.clear(); |
| } else { |
| navigate("/knoxSSOWarning"); |
| } |
| } else { |
| window.location.replace("login.jsp"); |
| } |
| } catch (error) { |
| toast.error(`Error occurred while logout! ${error}`); |
| } |
| }; |
| |
| export const checkKnoxSSO = async (navigate) => { |
| const userProfile = getUserProfile(); |
| let checkKnoxSSOresp = {}; |
| try { |
| checkKnoxSSOresp = await fetchApi({ |
| url: "plugins/checksso", |
| type: "GET", |
| headers: { |
| "cache-control": "no-cache" |
| } |
| }); |
| if ( |
| checkKnoxSSOresp?.data?.toString() == "true" && |
| userProfile?.configProperties?.inactivityTimeout > 0 |
| ) { |
| window.location.replace("index.html?action=timeout"); |
| } else { |
| handleLogout(checkKnoxSSOresp?.data, navigate); |
| } |
| } catch (error) { |
| if (checkKnoxSSOresp?.status == "419") { |
| window.location.replace("login.jsp"); |
| } |
| console.error(`Error occurred while logout! ${error}`); |
| } |
| }; |
| |
| export const navigateTo = { |
| navigate: null |
| }; |
| |
| export const requestDataTitle = (serviceType) => { |
| let title = ""; |
| if (serviceType == ServiceType.Service_HIVE.label) { |
| title = `Hive Query`; |
| } |
| if (serviceType == ServiceType.Service_HBASE.label) { |
| title = `HBase Audit Data`; |
| } |
| if (serviceType == ServiceType.Service_HDFS.label) { |
| title = `HDFS Operation Name`; |
| } |
| if (serviceType == ServiceType.Service_SOLR.label) { |
| title = "Solr Query"; |
| } |
| return title; |
| }; |
| |
| //Policy condition evaluation |
| |
| export const policyConditionUpdatedJSON = (policyCond) => { |
| let newPolicyConditionJSON = [...policyCond]; |
| newPolicyConditionJSON.filter(function (key) { |
| if (!key?.uiHint || key?.uiHint == "") { |
| if ( |
| key.evaluatorOptions && |
| key.evaluatorOptions?.["ui.isMultiline"] == "true" |
| ) { |
| key["uiHint"] = '{ "isMultiline":true }'; |
| } else { |
| key["uiHint"] = '{ "isMultiValue":true }'; |
| } |
| } |
| }); |
| return newPolicyConditionJSON; |
| }; |
| |
| // Get resources with help of policy type |
| |
| export const getResourcesDefVal = (serviceDef, policyType) => { |
| let resources = []; |
| if (RangerPolicyType.RANGER_MASKING_POLICY_TYPE.value == policyType) { |
| resources = sortBy(serviceDef.dataMaskDef.resources, "itemId"); |
| } else if ( |
| RangerPolicyType.RANGER_ROW_FILTER_POLICY_TYPE.value == policyType |
| ) { |
| resources = sortBy(serviceDef.rowFilterDef.resources, "itemId"); |
| } else { |
| resources = sortBy(serviceDef.resources, "itemId"); |
| } |
| return resources; |
| }; |
| |
| // Get defult landing page |
| |
| export const getLandingPageURl = () => { |
| if (hasAccessToTab("Resource Based Policies")) { |
| return "/policymanager/resource"; |
| } else { |
| if (hasAccessToTab("Tag Based Policies")) { |
| return "/policymanager/tag"; |
| } else { |
| return "/userprofile"; |
| } |
| } |
| }; |
| |
| export const getServiceDefIcon = (serviceDefName) => { |
| let imagePath = folderIcon; |
| let imageStyling; |
| |
| try { |
| const serviceDefIcon = |
| require(`../images/serviceDefIcons/${serviceDefName}/icon.svg`).default; |
| imagePath = serviceDefIcon; |
| imageStyling = { height: "27px", width: "27px" }; |
| } catch (error) { |
| console.log( |
| `Continuing to use default icon for ${serviceDefName.toUpperCase()}` |
| ); |
| } |
| |
| return ( |
| <span className={imageStyling !== undefined ? "serviceDef-icon m-r-5" : ""}> |
| <img |
| src={imagePath} |
| style={imageStyling !== undefined ? imageStyling : {}} |
| className={imageStyling !== undefined ? "" : "m-r-5"} |
| alt={`${serviceDefName.toUpperCase()} Icon`} |
| title={`${serviceDefName.toUpperCase()}`} |
| /> |
| </span> |
| ); |
| }; |
| |
| export const capitalizeFirstLetter = (str) => { |
| return str.charAt(0).toUpperCase() + str.slice(1); |
| }; |