This commit is contained in:
Philipinho
2026-03-02 22:09:57 +00:00
parent af92224e10
commit b1510cd6d7
5 changed files with 24 additions and 17 deletions
@@ -46,6 +46,7 @@ interface DataItem {
isCloud?: boolean;
isEnterprise?: boolean;
isAdmin?: boolean;
isOwner?: boolean;
isSelfhosted?: boolean;
showDisabledInNonEE?: boolean;
}
@@ -123,8 +124,9 @@ const groupedData: DataGroup[] = [
icon: IconHistory,
path: "/settings/audit",
isEnterprise: true,
isAdmin: true,
isOwner: true,
isSelfhosted: true,
showDisabledInNonEE: true,
},
],
},
@@ -145,7 +147,7 @@ export default function SettingsSidebar() {
const location = useLocation();
const [active, setActive] = useState(location.pathname);
const { goBack } = useSettingsNavigation();
const { isAdmin } = useUserRole();
const { isAdmin, isOwner } = useUserRole();
const [workspace] = useAtom(workspaceAtom);
const [mobileSidebarOpened] = useAtom(mobileSidebarAtom);
const toggleMobileSidebar = useToggleSidebar(mobileSidebarAtom);
@@ -154,34 +156,36 @@ export default function SettingsSidebar() {
setActive(location.pathname);
}, [location.pathname]);
const hasRoleAccess = (item: DataItem) => {
if (item.isOwner) return isOwner;
if (item.isAdmin) return isAdmin;
return true;
};
const canShowItem = (item: DataItem) => {
if (item.showDisabledInNonEE && item.isEnterprise) {
// Check admin permission regardless of license
return item.isAdmin ? isAdmin : true;
if (item.isSelfhosted && isCloud()) return false;
return hasRoleAccess(item);
}
if (item.isCloud && item.isEnterprise) {
if (!(isCloud() || workspace?.hasLicenseKey)) return false;
return item.isAdmin ? isAdmin : true;
return hasRoleAccess(item);
}
if (item.isCloud) {
return isCloud() ? (item.isAdmin ? isAdmin : true) : false;
return isCloud() ? hasRoleAccess(item) : false;
}
if (item.isSelfhosted) {
return !isCloud() ? (item.isAdmin ? isAdmin : true) : false;
return !isCloud() ? hasRoleAccess(item) : false;
}
if (item.isEnterprise) {
return workspace?.hasLicenseKey ? (item.isAdmin ? isAdmin : true) : false;
return workspace?.hasLicenseKey ? hasRoleAccess(item) : false;
}
if (item.isAdmin) {
return isAdmin;
}
return true;
return hasRoleAccess(item);
};
const isItemDisabled = (item: DataItem) => {
@@ -47,7 +47,7 @@ function retentionToDays(amount: number, unit: RetentionUnit): number {
export default function AuditLogs() {
const { t } = useTranslation();
const { isAdmin } = useUserRole();
const { isOwner } = useUserRole();
const { cursor, goNext, goPrev, resetCursor } = useCursorPaginate();
const [eventFilter, setEventFilter] = useState<string | null>(null);
@@ -86,7 +86,7 @@ export default function AuditLogs() {
const { data, isLoading } = useAuditLogsQuery(params);
if (!isAdmin) {
if (!isOwner) {
return null;
}