Include the new policy tables in the data

This commit is contained in:
Owen
2026-06-01 17:04:33 -07:00
parent 605dd2f3c9
commit 1625dd1add
4 changed files with 34 additions and 1603 deletions

View File

@@ -5,6 +5,8 @@ import {
resources,
userResources,
roleResources,
userPolicies,
rolePolicies,
userOrgRoles,
userOrgs,
resourcePassword,
@@ -80,6 +82,30 @@ export async function getUserResources(
.where(inArray(roleResources.roleId, userRoleIds))
: Promise.resolve([]);
const directPolicyResourcesQuery = db
.select({ resourceId: resources.resourceId })
.from(resources)
.innerJoin(
userPolicies,
eq(resources.resourcePolicyId, userPolicies.resourcePolicyId)
)
.where(eq(userPolicies.userId, userId));
const rolePolicyResourcesQuery =
userRoleIds.length > 0
? db
.select({ resourceId: resources.resourceId })
.from(resources)
.innerJoin(
rolePolicies,
eq(
resources.resourcePolicyId,
rolePolicies.resourcePolicyId
)
)
.where(inArray(rolePolicies.roleId, userRoleIds))
: Promise.resolve([]);
const directSiteResourcesQuery = db
.select({ siteResourceId: userSiteResources.siteResourceId })
.from(userSiteResources)
@@ -98,11 +124,15 @@ export async function getUserResources(
const [
directResources,
roleResourceResults,
directPolicyResourceResults,
rolePolicyResourceResults,
directSiteResourceResults,
roleSiteResourceResults
] = await Promise.all([
directResourcesQuery,
roleResourcesQuery,
directPolicyResourcesQuery,
rolePolicyResourcesQuery,
directSiteResourcesQuery,
roleSiteResourcesQuery
]);
@@ -110,7 +140,9 @@ export async function getUserResources(
// Combine all accessible resource IDs
const accessibleResourceIds = [
...directResources.map((r) => r.resourceId),
...roleResourceResults.map((r) => r.resourceId)
...roleResourceResults.map((r) => r.resourceId),
...directPolicyResourceResults.map((r) => r.resourceId),
...rolePolicyResourceResults.map((r) => r.resourceId)
];
// Combine all accessible site resource IDs

View File

@@ -96,10 +96,6 @@ export default async function ResourceLayout(props: ResourceLayoutProps) {
title: t("authentication"),
href: `/{orgId}/settings/resources/public/{niceId}/authentication`
});
// navItems.push({
// title: t("rules"),
// href: `/{orgId}/settings/resources/public/{niceId}/rules`
// });
}
return (

View File

@@ -171,7 +171,7 @@ export function EditPolicyRulesSectionForm({
});
const [rules, setRules] = useState<LocalRule[]>(
policy.rules.map((r) => ({ ...r, fromPolicy: !isResourceOverlay }))
policy.rules.map((r) => ({ ...r, fromPolicy: isResourceOverlay }))
);
const [isExpanded, setIsExpanded] = useState(
rulesEnabled || isResourceOverlay