add role policy "canViewFederation"

This commit is contained in:
Hazelnoot 2025-08-18 16:52:06 -04:00
parent aff1603788
commit 479e6daa1d
22 changed files with 84 additions and 13 deletions

View file

@ -93,7 +93,7 @@ import { useChartTooltip } from '@/use/use-chart-tooltip.js';
import { $i } from '@/i.js';
import * as os from '@/os.js';
import { misskeyApiGet } from '@/utility/misskey-api.js';
import { instance } from '@/instance.js';
import { instance, policies } from '@/instance.js';
import { i18n } from '@/i18n.js';
import MkHeatmap from '@/components/MkHeatmap.vue';
import MkFoldableSection from '@/components/MkFoldableSection.vue';
@ -103,7 +103,7 @@ import { initChart } from '@/utility/init-chart.js';
initChart();
const shouldShowFederation = computed(() => instance.federation !== 'none' || $i?.isModerator);
const shouldShowFederation = computed(() => (instance.federation !== 'none' || $i?.isModerator) && policies.canViewFederation);
const chartLimit = 500;
const chartSpan = ref<'hour' | 'day'>('hour');

View file

@ -58,7 +58,7 @@ import MkButton from '@/components/MkButton.vue';
import { widgets as widgetDefs, federationWidgets } from '@/widgets/index.js';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
import { instance } from '@/instance.js';
import { instance, policies } from '@/instance.js';
const Sortable = defineAsyncComponent(() => import('vuedraggable').then(x => x.default));
@ -68,7 +68,7 @@ const props = defineProps<{
}>();
const _widgetDefs = computed(() => {
if (instance.federation === 'none') {
if (instance.federation === 'none' || !policies.value.canViewFederation) {
return widgetDefs.filter(x => !federationWidgets.includes(x));
} else {
return widgetDefs;