mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-23 17:08:34 +00:00
viewbale apps issue fix
This commit is contained in:
parent
f708adc7ba
commit
14b7ba4120
3 changed files with 28 additions and 14 deletions
|
|
@ -48,14 +48,16 @@ const AppList = (props) => {
|
|||
</div>
|
||||
</div>
|
||||
)}
|
||||
{!props.isLoading && props.currentFolder.count === 0 && (
|
||||
{!props.isLoading && props.apps?.length === 0 && (
|
||||
<div className="text-center d-block">
|
||||
<EmptyFoldersIllustration className="mb-4" data-cy="empty-folder-image" />
|
||||
<span
|
||||
className={`d-block text-center text-body ${props.darkMode && 'text-white-50'}`}
|
||||
data-cy="empty-folder-text"
|
||||
>
|
||||
{t('homePage.thisFolderIsEmpty', 'This folder is empty')}
|
||||
{props.currentFolder?.count == 0
|
||||
? t('homePage.thisFolderIsEmpty', 'This folder is empty')
|
||||
: t('homePage.nonAccessibleFolderApps', 'No apps are accessible of this folder')}
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ export function viewableAppsQueryUsingPermissions(
|
|||
select?: Array<string>
|
||||
): SelectQueryBuilder<AppBase> {
|
||||
const viewableApps = userAppPermissions.hideAll
|
||||
? [...userAppPermissions.editableAppsId]
|
||||
? [null, ...userAppPermissions.editableAppsId]
|
||||
: [
|
||||
null,
|
||||
...Array.from(
|
||||
|
|
@ -40,6 +40,7 @@ export function viewableAppsQueryUsingPermissions(
|
|||
])
|
||||
),
|
||||
];
|
||||
|
||||
const viewableAppsQb = manager
|
||||
.createQueryBuilder(AppBase, 'viewable_apps')
|
||||
.innerJoin('viewable_apps.user', 'user')
|
||||
|
|
@ -55,14 +56,16 @@ export function viewableAppsQueryUsingPermissions(
|
|||
if (select) {
|
||||
viewableAppsQb.select(select.map((col) => `viewable_apps.${col}`));
|
||||
}
|
||||
const viewAll = userAppPermissions.isAllEditable || userAppPermissions.isAllViewable;
|
||||
if (!viewAll || userAppPermissions.hideAll) {
|
||||
const { isAllEditable, isAllViewable, hideAll } = userAppPermissions;
|
||||
if (isAllEditable) return viewableAppsQb;
|
||||
if ((isAllViewable && hideAll) || (!isAllViewable && !hideAll) || (!isAllViewable && hideAll)) {
|
||||
viewableAppsQb.where('viewable_apps.id IN (:...viewableApps)', {
|
||||
viewableApps,
|
||||
});
|
||||
return viewableAppsQb;
|
||||
}
|
||||
const hiddenApps = userAppPermissions.hiddenAppsId.filter((id) => !userAppPermissions.editableAppsId.includes(id));
|
||||
if (!userAppPermissions.hideAll && viewAll && hiddenApps.length > 0) {
|
||||
if (!userAppPermissions.hideAll && isAllViewable && hiddenApps.length > 0) {
|
||||
viewableAppsQb.where('viewable_apps.id NOT IN (:...hiddenApps)', {
|
||||
hiddenApps,
|
||||
});
|
||||
|
|
|
|||
|
|
@ -98,20 +98,29 @@ export class FoldersService {
|
|||
totalCount: 0,
|
||||
};
|
||||
}
|
||||
const viewableAppsTotal = Array.from(
|
||||
new Set([
|
||||
...userAppPermissions.editableAppsId,
|
||||
...userAppPermissions.viewableAppsId.filter((id) => !userAppPermissions.hiddenAppsId.includes(id)),
|
||||
])
|
||||
);
|
||||
const { isAllEditable, isAllViewable, hideAll } = userAppPermissions;
|
||||
const viewableAppsTotal = isAllEditable
|
||||
? [null, ...folderAppIds]
|
||||
: hideAll
|
||||
? [null, ...userAppPermissions.editableAppsId]
|
||||
: isAllViewable
|
||||
? [null, ...folderAppIds].filter((id) => !userAppPermissions.hiddenAppsId.includes(id))
|
||||
: [
|
||||
null,
|
||||
...Array.from(
|
||||
new Set([
|
||||
...userAppPermissions.editableAppsId,
|
||||
...userAppPermissions.viewableAppsId.filter((id) => !userAppPermissions.hiddenAppsId.includes(id)),
|
||||
])
|
||||
),
|
||||
];
|
||||
|
||||
const viewableAppIds = viewableAppsTotal.filter((id) => folderAppIds.includes(id));
|
||||
const viewableAppIds = [null, ...viewableAppsTotal.filter((id) => folderAppIds.includes(id))];
|
||||
|
||||
const viewableAppsInFolder = createQueryBuilder(AppBase, 'apps')
|
||||
.innerJoin('apps.user', 'user')
|
||||
.addSelect(['user.firstName', 'user.lastName']);
|
||||
|
||||
// if (!(userAppPermissions.isAllEditable || userAppPermissions.isAllViewable)) {
|
||||
viewableAppsInFolder.where('apps.id IN (:...viewableAppIds)', {
|
||||
viewableAppIds: viewableAppIds,
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue