mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-12 08:49:02 +08:00
fix(license): fixes for license service (#8121)
* fix(license): fixes for license service * fix(license): fixes for license service * fix(license): add code comments
This commit is contained in:
parent
5fb4206a99
commit
9d397d0867
@ -3,9 +3,10 @@ package httplicensing
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/SigNoz/signoz/ee/query-service/constants"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/SigNoz/signoz/ee/query-service/constants"
|
||||||
|
|
||||||
"github.com/SigNoz/signoz/ee/licensing/licensingstore/sqllicensingstore"
|
"github.com/SigNoz/signoz/ee/licensing/licensingstore/sqllicensingstore"
|
||||||
"github.com/SigNoz/signoz/pkg/errors"
|
"github.com/SigNoz/signoz/pkg/errors"
|
||||||
"github.com/SigNoz/signoz/pkg/factory"
|
"github.com/SigNoz/signoz/pkg/factory"
|
||||||
@ -177,6 +178,11 @@ func (provider *provider) Refresh(ctx context.Context, organizationID valuer.UUI
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = provider.InitFeatures(ctx, activeLicense.Features)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ import { QueryBuilderProvider } from 'providers/QueryBuilder';
|
|||||||
import { Suspense, useCallback, useEffect, useState } from 'react';
|
import { Suspense, useCallback, useEffect, useState } from 'react';
|
||||||
import { Route, Router, Switch } from 'react-router-dom';
|
import { Route, Router, Switch } from 'react-router-dom';
|
||||||
import { CompatRouter } from 'react-router-dom-v5-compat';
|
import { CompatRouter } from 'react-router-dom-v5-compat';
|
||||||
|
import { LicenseStatus } from 'types/api/licensesV3/getActive';
|
||||||
import { Userpilot } from 'userpilot';
|
import { Userpilot } from 'userpilot';
|
||||||
import { extractDomain } from 'utils/app';
|
import { extractDomain } from 'utils/app';
|
||||||
|
|
||||||
@ -171,11 +172,13 @@ function App(): JSX.Element {
|
|||||||
user &&
|
user &&
|
||||||
!!user.email
|
!!user.email
|
||||||
) {
|
) {
|
||||||
|
// either the active API returns error with 404 or 501 and if it returns a terminated license means it's on basic plan
|
||||||
const isOnBasicPlan =
|
const isOnBasicPlan =
|
||||||
activeLicenseFetchError &&
|
(activeLicenseFetchError &&
|
||||||
[StatusCodes.NOT_FOUND, StatusCodes.NOT_IMPLEMENTED].includes(
|
[StatusCodes.NOT_FOUND, StatusCodes.NOT_IMPLEMENTED].includes(
|
||||||
activeLicenseFetchError?.getHttpStatusCode(),
|
activeLicenseFetchError?.getHttpStatusCode(),
|
||||||
);
|
)) ||
|
||||||
|
(activeLicense?.status && activeLicense.status === LicenseStatus.INVALID);
|
||||||
const isIdentifiedUser = getLocalStorageApi(LOCALSTORAGE.IS_IDENTIFIED_USER);
|
const isIdentifiedUser = getLocalStorageApi(LOCALSTORAGE.IS_IDENTIFIED_USER);
|
||||||
|
|
||||||
if (isLoggedInState && user && user.id && user.email && !isIdentifiedUser) {
|
if (isLoggedInState && user && user.id && user.email && !isIdentifiedUser) {
|
||||||
@ -190,6 +193,10 @@ function App(): JSX.Element {
|
|||||||
updatedRoutes = updatedRoutes.filter(
|
updatedRoutes = updatedRoutes.filter(
|
||||||
(route) => route?.path !== ROUTES.BILLING,
|
(route) => route?.path !== ROUTES.BILLING,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (isEnterpriseSelfHostedUser) {
|
||||||
|
updatedRoutes.push(LIST_LICENSES);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// always add support route for cloud users
|
// always add support route for cloud users
|
||||||
updatedRoutes = [...updatedRoutes, SUPPORT_ROUTE];
|
updatedRoutes = [...updatedRoutes, SUPPORT_ROUTE];
|
||||||
|
@ -26,6 +26,7 @@ import { useTranslation } from 'react-i18next';
|
|||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
import { AppState } from 'store/reducers';
|
import { AppState } from 'store/reducers';
|
||||||
|
import { LicenseStatus } from 'types/api/licensesV3/getActive';
|
||||||
import AppReducer from 'types/reducer/app';
|
import AppReducer from 'types/reducer/app';
|
||||||
import { USER_ROLES } from 'types/roles';
|
import { USER_ROLES } from 'types/roles';
|
||||||
import { checkVersionState } from 'utils/app';
|
import { checkVersionState } from 'utils/app';
|
||||||
@ -301,10 +302,11 @@ function SideNav(): JSX.Element {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const isOnBasicPlan =
|
const isOnBasicPlan =
|
||||||
activeLicenseFetchError &&
|
(activeLicenseFetchError &&
|
||||||
[StatusCodes.NOT_FOUND, StatusCodes.NOT_IMPLEMENTED].includes(
|
[StatusCodes.NOT_FOUND, StatusCodes.NOT_IMPLEMENTED].includes(
|
||||||
activeLicenseFetchError?.getHttpStatusCode(),
|
activeLicenseFetchError?.getHttpStatusCode(),
|
||||||
);
|
)) ||
|
||||||
|
(activeLicense?.status && activeLicense.status === LicenseStatus.INVALID);
|
||||||
|
|
||||||
if (user.role !== USER_ROLES.ADMIN || isOnBasicPlan) {
|
if (user.role !== USER_ROLES.ADMIN || isOnBasicPlan) {
|
||||||
updatedMenuItems = updatedMenuItems.filter(
|
updatedMenuItems = updatedMenuItems.filter(
|
||||||
@ -353,6 +355,7 @@ function SideNav(): JSX.Element {
|
|||||||
t,
|
t,
|
||||||
user.role,
|
user.role,
|
||||||
activeLicenseFetchError,
|
activeLicenseFetchError,
|
||||||
|
activeLicense?.status,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -6,6 +6,7 @@ export enum LicenseEvent {
|
|||||||
export enum LicenseStatus {
|
export enum LicenseStatus {
|
||||||
SUSPENDED = 'SUSPENDED',
|
SUSPENDED = 'SUSPENDED',
|
||||||
VALID = 'VALID',
|
VALID = 'VALID',
|
||||||
|
INVALID = 'INVALID',
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum LicenseState {
|
export enum LicenseState {
|
||||||
|
@ -87,9 +87,6 @@ func GetActiveLicenseFromStorableLicenses(storableLicenses []*StorableLicense, o
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if license.Status == "INVALID" {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if activeLicense == nil &&
|
if activeLicense == nil &&
|
||||||
(license.ValidFrom != 0) &&
|
(license.ValidFrom != 0) &&
|
||||||
(license.ValidUntil == -1 || license.ValidUntil > time.Now().Unix()) {
|
(license.ValidUntil == -1 || license.ValidUntil > time.Now().Unix()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user