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
+33 -1
View File
@@ -5,6 +5,8 @@ import {
resources, resources,
userResources, userResources,
roleResources, roleResources,
userPolicies,
rolePolicies,
userOrgRoles, userOrgRoles,
userOrgs, userOrgs,
resourcePassword, resourcePassword,
@@ -80,6 +82,30 @@ export async function getUserResources(
.where(inArray(roleResources.roleId, userRoleIds)) .where(inArray(roleResources.roleId, userRoleIds))
: Promise.resolve([]); : 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 const directSiteResourcesQuery = db
.select({ siteResourceId: userSiteResources.siteResourceId }) .select({ siteResourceId: userSiteResources.siteResourceId })
.from(userSiteResources) .from(userSiteResources)
@@ -98,11 +124,15 @@ export async function getUserResources(
const [ const [
directResources, directResources,
roleResourceResults, roleResourceResults,
directPolicyResourceResults,
rolePolicyResourceResults,
directSiteResourceResults, directSiteResourceResults,
roleSiteResourceResults roleSiteResourceResults
] = await Promise.all([ ] = await Promise.all([
directResourcesQuery, directResourcesQuery,
roleResourcesQuery, roleResourcesQuery,
directPolicyResourcesQuery,
rolePolicyResourcesQuery,
directSiteResourcesQuery, directSiteResourcesQuery,
roleSiteResourcesQuery roleSiteResourcesQuery
]); ]);
@@ -110,7 +140,9 @@ export async function getUserResources(
// Combine all accessible resource IDs // Combine all accessible resource IDs
const accessibleResourceIds = [ const accessibleResourceIds = [
...directResources.map((r) => r.resourceId), ...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 // Combine all accessible site resource IDs
@@ -96,10 +96,6 @@ export default async function ResourceLayout(props: ResourceLayoutProps) {
title: t("authentication"), title: t("authentication"),
href: `/{orgId}/settings/resources/public/{niceId}/authentication` href: `/{orgId}/settings/resources/public/{niceId}/authentication`
}); });
// navItems.push({
// title: t("rules"),
// href: `/{orgId}/settings/resources/public/{niceId}/rules`
// });
} }
return ( return (
File diff suppressed because it is too large Load Diff
@@ -171,7 +171,7 @@ export function EditPolicyRulesSectionForm({
}); });
const [rules, setRules] = useState<LocalRule[]>( const [rules, setRules] = useState<LocalRule[]>(
policy.rules.map((r) => ({ ...r, fromPolicy: !isResourceOverlay })) policy.rules.map((r) => ({ ...r, fromPolicy: isResourceOverlay }))
); );
const [isExpanded, setIsExpanded] = useState( const [isExpanded, setIsExpanded] = useState(
rulesEnabled || isResourceOverlay rulesEnabled || isResourceOverlay