only show approved resources in launcher

This commit is contained in:
miloschwartz
2026-07-10 17:24:10 -04:00
parent 7d475f5e91
commit 34b18bdb53
@@ -157,7 +157,8 @@ async function resolveAccessibleIdsUncached(
.where( .where(
and( and(
eq(userResources.userId, userId), eq(userResources.userId, userId),
eq(resources.orgId, orgId) eq(resources.orgId, orgId),
eq(resources.status, "approved")
) )
), ),
userRoleIds.length > 0 userRoleIds.length > 0
@@ -171,7 +172,8 @@ async function resolveAccessibleIdsUncached(
.where( .where(
and( and(
inArray(roleResources.roleId, userRoleIds), inArray(roleResources.roleId, userRoleIds),
eq(resources.orgId, orgId) eq(resources.orgId, orgId),
eq(resources.status, "approved")
) )
) )
: Promise.resolve([]), : Promise.resolve([]),
@@ -183,7 +185,11 @@ async function resolveAccessibleIdsUncached(
eq(effectiveResourcePolicyId, userPolicies.resourcePolicyId) eq(effectiveResourcePolicyId, userPolicies.resourcePolicyId)
) )
.where( .where(
and(eq(userPolicies.userId, userId), eq(resources.orgId, orgId)) and(
eq(userPolicies.userId, userId),
eq(resources.orgId, orgId),
eq(resources.status, "approved")
)
), ),
userRoleIds.length > 0 userRoleIds.length > 0
? db ? db
@@ -199,21 +205,48 @@ async function resolveAccessibleIdsUncached(
.where( .where(
and( and(
inArray(rolePolicies.roleId, userRoleIds), inArray(rolePolicies.roleId, userRoleIds),
eq(resources.orgId, orgId) eq(resources.orgId, orgId),
eq(resources.status, "approved")
) )
) )
: Promise.resolve([]), : Promise.resolve([]),
db db
.select({ siteResourceId: userSiteResources.siteResourceId }) .select({ siteResourceId: userSiteResources.siteResourceId })
.from(userSiteResources) .from(userSiteResources)
.where(eq(userSiteResources.userId, userId)), .innerJoin(
siteResources,
eq(
userSiteResources.siteResourceId,
siteResources.siteResourceId
)
)
.where(
and(
eq(userSiteResources.userId, userId),
eq(siteResources.orgId, orgId),
eq(siteResources.status, "approved")
)
),
userRoleIds.length > 0 userRoleIds.length > 0
? db ? db
.select({ .select({
siteResourceId: roleSiteResources.siteResourceId siteResourceId: roleSiteResources.siteResourceId
}) })
.from(roleSiteResources) .from(roleSiteResources)
.where(inArray(roleSiteResources.roleId, userRoleIds)) .innerJoin(
siteResources,
eq(
roleSiteResources.siteResourceId,
siteResources.siteResourceId
)
)
.where(
and(
inArray(roleSiteResources.roleId, userRoleIds),
eq(siteResources.orgId, orgId),
eq(siteResources.status, "approved")
)
)
: Promise.resolve([]) : Promise.resolve([])
]); ]);
@@ -365,6 +398,7 @@ async function filterPublicResourceIdsByTextSearch(
inArray(resources.resourceId, resourceIds), inArray(resources.resourceId, resourceIds),
eq(resources.orgId, orgId), eq(resources.orgId, orgId),
eq(resources.enabled, true), eq(resources.enabled, true),
eq(resources.status, "approved"),
textMatch textMatch
) )
); );
@@ -402,6 +436,7 @@ async function filterSiteResourceIdsByTextSearch(
inArray(siteResources.siteResourceId, siteResourceIds), inArray(siteResources.siteResourceId, siteResourceIds),
eq(siteResources.orgId, orgId), eq(siteResources.orgId, orgId),
eq(siteResources.enabled, true), eq(siteResources.enabled, true),
eq(siteResources.status, "approved"),
textMatch textMatch
) )
); );
@@ -503,7 +538,8 @@ async function listSiteGroups(
const publicConditions = [ const publicConditions = [
inArray(resources.resourceId, accessible.resourceIds), inArray(resources.resourceId, accessible.resourceIds),
eq(resources.orgId, orgId), eq(resources.orgId, orgId),
eq(resources.enabled, true) eq(resources.enabled, true),
eq(resources.status, "approved")
]; ];
if (searchPublic) { if (searchPublic) {
publicConditions.push(searchPublic); publicConditions.push(searchPublic);
@@ -558,7 +594,8 @@ async function listSiteGroups(
const siteConditions = [ const siteConditions = [
inArray(siteResources.siteResourceId, accessible.siteResourceIds), inArray(siteResources.siteResourceId, accessible.siteResourceIds),
eq(siteResources.orgId, orgId), eq(siteResources.orgId, orgId),
eq(siteResources.enabled, true) eq(siteResources.enabled, true),
eq(siteResources.status, "approved")
]; ];
if (searchSite) { if (searchSite) {
siteConditions.push(searchSite); siteConditions.push(searchSite);
@@ -621,7 +658,8 @@ async function listSiteGroups(
const noSitePublicConditions = [ const noSitePublicConditions = [
inArray(resources.resourceId, accessible.resourceIds), inArray(resources.resourceId, accessible.resourceIds),
eq(resources.orgId, orgId), eq(resources.orgId, orgId),
eq(resources.enabled, true) eq(resources.enabled, true),
eq(resources.status, "approved")
]; ];
if (searchPublic) { if (searchPublic) {
noSitePublicConditions.push(searchPublic); noSitePublicConditions.push(searchPublic);
@@ -655,7 +693,8 @@ async function listSiteGroups(
const noSiteSiteConditions = [ const noSiteSiteConditions = [
inArray(siteResources.siteResourceId, accessible.siteResourceIds), inArray(siteResources.siteResourceId, accessible.siteResourceIds),
eq(siteResources.orgId, orgId), eq(siteResources.orgId, orgId),
eq(siteResources.enabled, true) eq(siteResources.enabled, true),
eq(siteResources.status, "approved")
]; ];
if (searchSite) { if (searchSite) {
noSiteSiteConditions.push(searchSite); noSiteSiteConditions.push(searchSite);
@@ -746,7 +785,8 @@ async function listLabelGroups(
const publicConditions = [ const publicConditions = [
inArray(resources.resourceId, accessible.resourceIds), inArray(resources.resourceId, accessible.resourceIds),
eq(resources.orgId, orgId), eq(resources.orgId, orgId),
eq(resources.enabled, true) eq(resources.enabled, true),
eq(resources.status, "approved")
]; ];
const searchPublic = buildSearchConditionForPublic(query.query); const searchPublic = buildSearchConditionForPublic(query.query);
if (searchPublic) { if (searchPublic) {
@@ -810,7 +850,8 @@ async function listLabelGroups(
const siteConditions = [ const siteConditions = [
inArray(siteResources.siteResourceId, accessible.siteResourceIds), inArray(siteResources.siteResourceId, accessible.siteResourceIds),
eq(siteResources.orgId, orgId), eq(siteResources.orgId, orgId),
eq(siteResources.enabled, true) eq(siteResources.enabled, true),
eq(siteResources.status, "approved")
]; ];
const searchSite = buildSearchConditionForSiteResource(query.query); const searchSite = buildSearchConditionForSiteResource(query.query);
if (searchSite) { if (searchSite) {
@@ -997,6 +1038,7 @@ async function mapPublicResources(
inArray(resources.resourceId, resourceIds), inArray(resources.resourceId, resourceIds),
eq(resources.orgId, orgId), eq(resources.orgId, orgId),
eq(resources.enabled, true), eq(resources.enabled, true),
eq(resources.status, "approved"),
siteIdFilter != null siteIdFilter != null
? eq(sites.siteId, siteIdFilter) ? eq(sites.siteId, siteIdFilter)
: undefined : undefined
@@ -1088,6 +1130,7 @@ async function mapSiteResources(
inArray(siteResources.siteResourceId, siteResourceIds), inArray(siteResources.siteResourceId, siteResourceIds),
eq(siteResources.orgId, orgId), eq(siteResources.orgId, orgId),
eq(siteResources.enabled, true), eq(siteResources.enabled, true),
eq(siteResources.status, "approved"),
siteIdFilter != null siteIdFilter != null
? eq(sites.siteId, siteIdFilter) ? eq(sites.siteId, siteIdFilter)
: undefined : undefined
@@ -1382,7 +1425,8 @@ async function collectAccessibleSites(
const publicConditions = [ const publicConditions = [
inArray(resources.resourceId, accessible.resourceIds), inArray(resources.resourceId, accessible.resourceIds),
eq(resources.orgId, orgId), eq(resources.orgId, orgId),
eq(resources.enabled, true) eq(resources.enabled, true),
eq(resources.status, "approved")
]; ];
if (siteNameSearch) { if (siteNameSearch) {
publicConditions.push(siteNameSearch); publicConditions.push(siteNameSearch);
@@ -1422,7 +1466,8 @@ async function collectAccessibleSites(
const siteConditions = [ const siteConditions = [
inArray(siteResources.siteResourceId, accessible.siteResourceIds), inArray(siteResources.siteResourceId, accessible.siteResourceIds),
eq(siteResources.orgId, orgId), eq(siteResources.orgId, orgId),
eq(siteResources.enabled, true) eq(siteResources.enabled, true),
eq(siteResources.status, "approved")
]; ];
if (siteNameSearch) { if (siteNameSearch) {
siteConditions.push(siteNameSearch); siteConditions.push(siteNameSearch);
@@ -1476,6 +1521,7 @@ async function collectAccessibleLabels(
inArray(resources.resourceId, accessible.resourceIds), inArray(resources.resourceId, accessible.resourceIds),
eq(resources.orgId, orgId), eq(resources.orgId, orgId),
eq(resources.enabled, true), eq(resources.enabled, true),
eq(resources.status, "approved"),
eq(labels.orgId, orgId) eq(labels.orgId, orgId)
]; ];
if (labelNameSearch) { if (labelNameSearch) {
@@ -1511,6 +1557,7 @@ async function collectAccessibleLabels(
inArray(siteResources.siteResourceId, accessible.siteResourceIds), inArray(siteResources.siteResourceId, accessible.siteResourceIds),
eq(siteResources.orgId, orgId), eq(siteResources.orgId, orgId),
eq(siteResources.enabled, true), eq(siteResources.enabled, true),
eq(siteResources.status, "approved"),
eq(labels.orgId, orgId) eq(labels.orgId, orgId)
]; ];
if (labelNameSearch) { if (labelNameSearch) {