diff --git a/changelog.d/20241007_130122_dmitrii.lavrukhin_analytics_bool_field_v3.md b/changelog.d/20241007_130122_dmitrii.lavrukhin_analytics_bool_field_v3.md new file mode 100644 index 00000000000..4c044836650 --- /dev/null +++ b/changelog.d/20241007_130122_dmitrii.lavrukhin_analytics_bool_field_v3.md @@ -0,0 +1,4 @@ +### Added + +- Access to /analytics can now be granted + () diff --git a/cvat-core/src/server-response-types.ts b/cvat-core/src/server-response-types.ts index e28a6f9ec71..af6cd760ed4 100644 --- a/cvat-core/src/server-response-types.ts +++ b/cvat-core/src/server-response-types.ts @@ -54,6 +54,7 @@ export interface SerializedUser { last_login?: string; date_joined?: string; email_verification_required: boolean; + has_analytics_access: boolean; } interface SerializedStorage { diff --git a/cvat-core/src/user.ts b/cvat-core/src/user.ts index 1b0eb5ecfec..6d7366151fb 100644 --- a/cvat-core/src/user.ts +++ b/cvat-core/src/user.ts @@ -1,5 +1,5 @@ // Copyright (C) 2019-2022 Intel Corporation -// Copyright (C) 2022 CVAT.ai Corporation +// Copyright (C) 2022-2024 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -18,6 +18,7 @@ export default class User { public readonly isSuperuser: boolean; public readonly isActive: boolean; public readonly isVerified: boolean; + public readonly hasAnalyticsAccess: boolean; constructor(initialData: SerializedUser) { const data = { @@ -33,6 +34,7 @@ export default class User { is_superuser: null, is_active: null, email_verification_required: null, + has_analytics_access: null, }; for (const property in data) { @@ -80,6 +82,9 @@ export default class User { isVerified: { get: () => !data.email_verification_required, }, + hasAnalyticsAccess: { + get: () => data.has_analytics_access, + }, }), ); } @@ -98,6 +103,7 @@ export default class User { is_superuser: this.isSuperuser, is_active: this.isActive, email_verification_required: this.isVerified, + has_analytics_access: this.hasAnalyticsAccess, }; } } diff --git a/cvat-ui/src/components/header/header.tsx b/cvat-ui/src/components/header/header.tsx index 2621edddfa2..0feeae4be57 100644 --- a/cvat-ui/src/components/header/header.tsx +++ b/cvat-ui/src/components/header/header.tsx @@ -513,7 +513,7 @@ function HeaderComponent(props: Props): JSX.Element { Models ) : null} - {isAnalyticsPluginActive && user.isSuperuser ? ( + {isAnalyticsPluginActive && user.hasAnalyticsAccess ? (