mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 16:27:40 +00:00
fix: resolved fixes for permission changes
This commit is contained in:
@@ -153,7 +153,7 @@ export const useGetUserProjectPermissions = ({ workspaceId }: TGetUserProjectPer
|
|||||||
return (entity) => {
|
return (entity) => {
|
||||||
const rulesStrippedOfWildcard = omit(
|
const rulesStrippedOfWildcard = omit(
|
||||||
rules,
|
rules,
|
||||||
Object.keys(entity).filter((el) => entity[el].includes("*"))
|
Object.keys(entity).filter((el) => entity[el]?.includes("*"))
|
||||||
);
|
);
|
||||||
const baseMatcher = conditionsMatcher(rulesStrippedOfWildcard);
|
const baseMatcher = conditionsMatcher(rulesStrippedOfWildcard);
|
||||||
return baseMatcher(entity);
|
return baseMatcher(entity);
|
||||||
|
|||||||
+2
-2
@@ -337,7 +337,7 @@ export const PROJECT_PERMISSION_OBJECT: TProjectPermissionObject = {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
[ProjectPermissionSub.SecretImports]: {
|
[ProjectPermissionSub.SecretImports]: {
|
||||||
title: "Secret Folders",
|
title: "Secret Imports",
|
||||||
actions: [
|
actions: [
|
||||||
{ label: "Read", value: "read" },
|
{ label: "Read", value: "read" },
|
||||||
{ label: "Create", value: "create" },
|
{ label: "Create", value: "create" },
|
||||||
@@ -346,7 +346,7 @@ export const PROJECT_PERMISSION_OBJECT: TProjectPermissionObject = {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
[ProjectPermissionSub.DynamicSecrets]: {
|
[ProjectPermissionSub.DynamicSecrets]: {
|
||||||
title: "Secret Folders",
|
title: "Dynamic Secrets",
|
||||||
actions: [
|
actions: [
|
||||||
{ label: "Read", value: "read" },
|
{ label: "Read", value: "read" },
|
||||||
{ label: "Create", value: "create" },
|
{ label: "Create", value: "create" },
|
||||||
|
|||||||
+2
@@ -57,6 +57,8 @@ export const SecretPermissionConditions = ({ position = 0, isDisabled }: Props)
|
|||||||
>
|
>
|
||||||
<SelectItem value="environment">Environment Slug</SelectItem>
|
<SelectItem value="environment">Environment Slug</SelectItem>
|
||||||
<SelectItem value="secretPath">Secret Path</SelectItem>
|
<SelectItem value="secretPath">Secret Path</SelectItem>
|
||||||
|
<SelectItem value="secretName">Secret Name</SelectItem>
|
||||||
|
<SelectItem value="secretTags">Secret Tags</SelectItem>
|
||||||
</Select>
|
</Select>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ export const SecretMainPage = () => {
|
|||||||
secretTags: ["*"]
|
secretTags: ["*"]
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
const canReadSecretImports = permission.can(
|
const canReadSecretImports = permission.can(
|
||||||
ProjectPermissionActions.Read,
|
ProjectPermissionActions.Read,
|
||||||
subject(ProjectPermissionSub.SecretImports, { environment, secretPath })
|
subject(ProjectPermissionSub.SecretImports, { environment, secretPath })
|
||||||
@@ -377,7 +378,7 @@ export const SecretMainPage = () => {
|
|||||||
<div className="flex-grow px-4 py-2">Value</div>
|
<div className="flex-grow px-4 py-2">Value</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{canReadSecretImports && imports?.length && (
|
{canReadSecretImports && Boolean(imports?.length) && (
|
||||||
<SecretImportListView
|
<SecretImportListView
|
||||||
searchTerm={debouncedSearchFilter}
|
searchTerm={debouncedSearchFilter}
|
||||||
secretImports={imports}
|
secretImports={imports}
|
||||||
@@ -388,7 +389,7 @@ export const SecretMainPage = () => {
|
|||||||
importedSecrets={importedSecrets}
|
importedSecrets={importedSecrets}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{folders?.length && (
|
{Boolean(folders?.length) && (
|
||||||
<FolderListView
|
<FolderListView
|
||||||
folders={folders}
|
folders={folders}
|
||||||
environment={environment}
|
environment={environment}
|
||||||
@@ -397,7 +398,7 @@ export const SecretMainPage = () => {
|
|||||||
onNavigateToFolder={handleResetFilter}
|
onNavigateToFolder={handleResetFilter}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{canReadDynamicSecret && dynamicSecrets?.length && (
|
{canReadDynamicSecret && Boolean(dynamicSecrets?.length) && (
|
||||||
<DynamicSecretListView
|
<DynamicSecretListView
|
||||||
environment={environment}
|
environment={environment}
|
||||||
projectSlug={projectSlug}
|
projectSlug={projectSlug}
|
||||||
@@ -405,7 +406,7 @@ export const SecretMainPage = () => {
|
|||||||
dynamicSecrets={dynamicSecrets}
|
dynamicSecrets={dynamicSecrets}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{canReadSecret && secrets?.length && (
|
{canReadSecret && Boolean(secrets?.length) && (
|
||||||
<SecretListView
|
<SecretListView
|
||||||
secrets={secrets}
|
secrets={secrets}
|
||||||
tags={tags}
|
tags={tags}
|
||||||
|
|||||||
@@ -84,12 +84,15 @@ export const SecretDetailSidebar = ({
|
|||||||
resolver: zodResolver(formSchema),
|
resolver: zodResolver(formSchema),
|
||||||
values: secret
|
values: secret
|
||||||
});
|
});
|
||||||
|
|
||||||
const { permission } = useProjectPermission();
|
const { permission } = useProjectPermission();
|
||||||
|
|
||||||
const { fields, append, remove } = useFieldArray({
|
const { fields, append, remove } = useFieldArray({
|
||||||
control,
|
control,
|
||||||
name: "tags"
|
name: "tags"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const secretKey = secret?.key || "";
|
||||||
const selectedTags = watch("tags", []) || [];
|
const selectedTags = watch("tags", []) || [];
|
||||||
const selectedTagsGroupById = selectedTags.reduce<Record<string, boolean>>(
|
const selectedTagsGroupById = selectedTags.reduce<Record<string, boolean>>(
|
||||||
(prev, curr) => ({ ...prev, [curr.id]: true }),
|
(prev, curr) => ({ ...prev, [curr.id]: true }),
|
||||||
@@ -102,7 +105,7 @@ export const SecretDetailSidebar = ({
|
|||||||
subject(ProjectPermissionSub.Secrets, {
|
subject(ProjectPermissionSub.Secrets, {
|
||||||
environment,
|
environment,
|
||||||
secretPath,
|
secretPath,
|
||||||
secretName: secret.key,
|
secretName: secretKey,
|
||||||
secretTags: selectTagSlugs
|
secretTags: selectTagSlugs
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@@ -112,7 +115,7 @@ export const SecretDetailSidebar = ({
|
|||||||
subject(ProjectPermissionSub.Secrets, {
|
subject(ProjectPermissionSub.Secrets, {
|
||||||
environment,
|
environment,
|
||||||
secretPath,
|
secretPath,
|
||||||
secretName: secret.key,
|
secretName: secretKey,
|
||||||
secretTags: selectTagSlugs
|
secretTags: selectTagSlugs
|
||||||
})
|
})
|
||||||
) && cannotEditSecret;
|
) && cannotEditSecret;
|
||||||
@@ -209,7 +212,7 @@ export const SecretDetailSidebar = ({
|
|||||||
a={subject(ProjectPermissionSub.Secrets, {
|
a={subject(ProjectPermissionSub.Secrets, {
|
||||||
environment,
|
environment,
|
||||||
secretPath,
|
secretPath,
|
||||||
secretName: secret.key,
|
secretName: secretKey,
|
||||||
secretTags: selectTagSlugs
|
secretTags: selectTagSlugs
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
@@ -241,7 +244,7 @@ export const SecretDetailSidebar = ({
|
|||||||
a={subject(ProjectPermissionSub.Secrets, {
|
a={subject(ProjectPermissionSub.Secrets, {
|
||||||
environment,
|
environment,
|
||||||
secretPath,
|
secretPath,
|
||||||
secretName: secret.key,
|
secretName: secretKey,
|
||||||
secretTags: selectTagSlugs
|
secretTags: selectTagSlugs
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
@@ -302,7 +305,7 @@ export const SecretDetailSidebar = ({
|
|||||||
a={subject(ProjectPermissionSub.Secrets, {
|
a={subject(ProjectPermissionSub.Secrets, {
|
||||||
environment,
|
environment,
|
||||||
secretPath,
|
secretPath,
|
||||||
secretName: secret.key,
|
secretName: secretKey,
|
||||||
secretTags: selectTagSlugs
|
secretTags: selectTagSlugs
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
@@ -394,6 +397,7 @@ export const SecretDetailSidebar = ({
|
|||||||
variant="outline_bg"
|
variant="outline_bg"
|
||||||
leftIcon={<FontAwesomeIcon icon={faClock} />}
|
leftIcon={<FontAwesomeIcon icon={faClock} />}
|
||||||
onClick={() => setCreateReminderFormOpen.on()}
|
onClick={() => setCreateReminderFormOpen.on()}
|
||||||
|
isDisabled={cannotEditSecret}
|
||||||
>
|
>
|
||||||
Create Reminder
|
Create Reminder
|
||||||
</Button>
|
</Button>
|
||||||
@@ -418,7 +422,7 @@ export const SecretDetailSidebar = ({
|
|||||||
a={subject(ProjectPermissionSub.Secrets, {
|
a={subject(ProjectPermissionSub.Secrets, {
|
||||||
environment,
|
environment,
|
||||||
secretPath,
|
secretPath,
|
||||||
secretName: secret.key,
|
secretName: secretKey,
|
||||||
secretTags: selectTagSlugs
|
secretTags: selectTagSlugs
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
@@ -485,7 +489,7 @@ export const SecretDetailSidebar = ({
|
|||||||
a={subject(ProjectPermissionSub.Secrets, {
|
a={subject(ProjectPermissionSub.Secrets, {
|
||||||
environment,
|
environment,
|
||||||
secretPath,
|
secretPath,
|
||||||
secretName: secret.key,
|
secretName: secretKey,
|
||||||
secretTags: selectTagSlugs
|
secretTags: selectTagSlugs
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
@@ -505,7 +509,7 @@ export const SecretDetailSidebar = ({
|
|||||||
a={subject(ProjectPermissionSub.Secrets, {
|
a={subject(ProjectPermissionSub.Secrets, {
|
||||||
environment,
|
environment,
|
||||||
secretPath,
|
secretPath,
|
||||||
secretName: secret.key,
|
secretName: secretKey,
|
||||||
secretTags: selectTagSlugs
|
secretTags: selectTagSlugs
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user