From d0f839a614abe4355ba76ea25b89a3f52e45aac7 Mon Sep 17 00:00:00 2001 From: Gabe Hernandez Date: Tue, 18 May 2021 16:08:48 +0100 Subject: [PATCH] added permission code (#787) --- frontend/interfaces/{config.js => config.ts} | 23 +++++++++++++++++++ frontend/redux/nodes/app/helpers.js | 2 ++ frontend/utilities/permissions/permissions.ts | 17 +++++++++++--- 3 files changed, 39 insertions(+), 3 deletions(-) rename frontend/interfaces/{config.js => config.ts} (56%) diff --git a/frontend/interfaces/config.js b/frontend/interfaces/config.ts similarity index 56% rename from frontend/interfaces/config.js rename to frontend/interfaces/config.ts index 4fb252ee8f..9e231d1b44 100644 --- a/frontend/interfaces/config.js +++ b/frontend/interfaces/config.ts @@ -19,4 +19,27 @@ export default PropTypes.shape({ server: PropTypes.string, user_name: PropTypes.string, verify_sll_certs: PropTypes.bool, + tier: PropTypes.string, }); + +export interface IConfig { + live_query_disabled: boolean; + authentication_method: string; + authentication_type: string; + configured: boolean; + domain: string; + enable_ssl_tls: boolean; + enable_start_tls: boolean; + host_expiry_enabled: boolean; + host_expiry_window: number; + kolide_server_url: string; + org_logo_url: string; + org_name: string; + password: string; + port: number; + sender_address: string; + server: string; + user_name: string; + verify_sll_certs: boolean; + tier: string; +} diff --git a/frontend/redux/nodes/app/helpers.js b/frontend/redux/nodes/app/helpers.js index 1c339d2dbe..d5e113f8b5 100644 --- a/frontend/redux/nodes/app/helpers.js +++ b/frontend/redux/nodes/app/helpers.js @@ -5,6 +5,7 @@ export const frontendFormattedConfig = (config) => { smtp_settings: smtpSettings, sso_settings: ssoSettings, host_expiry_settings: hostExpirySettings, + license, } = config; return { @@ -13,6 +14,7 @@ export const frontendFormattedConfig = (config) => { ...smtpSettings, ...ssoSettings, ...hostExpirySettings, + ...license, }; }; diff --git a/frontend/utilities/permissions/permissions.ts b/frontend/utilities/permissions/permissions.ts index b805c36888..f53760e44c 100644 --- a/frontend/utilities/permissions/permissions.ts +++ b/frontend/utilities/permissions/permissions.ts @@ -1,18 +1,29 @@ import { IUser } from "interfaces/user"; +import { IConfig } from "../../interfaces/config"; -const isGlobalAdmin = (user: IUser) => { +const isCoreTier = (config: IConfig): boolean => { + return config.tier === "core"; +}; + +const isBasicTier = (config: IConfig): boolean => { + return config.tier === "basic"; +}; + +const isGlobalAdmin = (user: IUser): boolean => { return user.global_role === "admin"; }; -const isGlobalMaintainer = (user: IUser) => { +const isGlobalMaintainer = (user: IUser): boolean => { return user.global_role === "maintainer"; }; -const isOnGlobalTeam = (user: IUser) => { +const isOnGlobalTeam = (user: IUser): boolean => { return user.global_role !== null; }; export default { + isCoreTier, + isBasicTier, isGlobalAdmin, isGlobalMaintainer, isOnGlobalTeam,