From debaf1381cd1e53537f89122ed6c95a007dd53ad Mon Sep 17 00:00:00 2001 From: Prospector <6166773+Prospector@users.noreply.github.com> Date: Thu, 28 Aug 2025 18:40:05 -0700 Subject: [PATCH] Fixed permissions issue and modpack issue with environment overhaul --- apps/frontend/src/pages/[type]/[id].vue | 18 ++++++++- .../[type]/[id]/settings/environment.vue | 40 +++++++++++-------- .../frontend/src/pages/dashboard/projects.vue | 5 +-- .../src/components/base/LargeRadioButton.vue | 22 +++++++--- .../ProjectSettingsEnvSelector.vue | 11 +++++ packages/ui/src/locales/en-US/index.json | 6 +++ packages/ui/src/providers/project-page.ts | 3 +- packages/ui/src/utils/common-messages.ts | 8 ++++ packages/utils/changelog.ts | 7 ++++ 9 files changed, 94 insertions(+), 26 deletions(-) diff --git a/apps/frontend/src/pages/[type]/[id].vue b/apps/frontend/src/pages/[type]/[id].vue index ef7a98fc..4d8c655c 100644 --- a/apps/frontend/src/pages/[type]/[id].vue +++ b/apps/frontend/src/pages/[type]/[id].vue @@ -764,7 +764,16 @@ > {{ formatMessage(messages.environmentMigrationMessage) }} - + {{ formatMessage(messages.reviewEnvironmentSettings) }} @@ -957,6 +966,7 @@ import { ButtonStyled, Checkbox, commonMessages, + commonProjectSettingsMessages, injectNotificationManager, NewModal, OverflowMenu, @@ -1589,6 +1599,11 @@ const currentMember = computed(() => { return val }) +const hasEditDetailsPermission = computed(() => { + const EDIT_DETAILS = 1 << 2 + return (currentMember.value?.permissions & EDIT_DETAILS) === EDIT_DETAILS +}) + versions.value = data.$computeVersions(versions.value, allMembers.value) // Q: Why do this instead of computing the versions of featuredVersions? @@ -1870,6 +1885,7 @@ provideProjectPageContext({ projectV2: project, projectV3, refreshProject: resetProject, + currentMember, }) diff --git a/apps/frontend/src/pages/[type]/[id]/settings/environment.vue b/apps/frontend/src/pages/[type]/[id]/settings/environment.vue index 7a1459c2..62c4fbc7 100644 --- a/apps/frontend/src/pages/[type]/[id]/settings/environment.vue +++ b/apps/frontend/src/pages/[type]/[id]/settings/environment.vue @@ -14,7 +14,7 @@ import { defineMessages, useVIntl } from '@vintl/vintl' const { formatMessage } = useVIntl() -const { projectV2, projectV3, refreshProject } = injectProjectPageContext() +const { currentMember, projectV2, projectV3, refreshProject } = injectProjectPageContext() const { handleError } = injectNotificationManager() const api = injectApi() @@ -32,6 +32,11 @@ const needsToVerify = computed( supportsEnvironment.value, ) +const hasPermission = computed(() => { + const EDIT_DETAILS = 1 << 2 + return (currentMember.value?.permissions & EDIT_DETAILS) === EDIT_DETAILS +}) + function getInitialEnv() { return projectV3.value.environment?.length === 1 ? projectV3.value.environment[0] : undefined } @@ -106,7 +111,7 @@ const messages = defineMessages({