mirror of https://github.com/halo-dev/halo
fix: missing permission check in plugin installation tabs and theme list tabs extension points (#4636)
Signed-off-by: Ryan Wang <i@ryanc.cc>pull/4657/head
parent
b963f3bd23
commit
9fbbd40712
|
@ -20,8 +20,10 @@ import LocalUpload from "./list-tabs/LocalUpload.vue";
|
||||||
import RemoteDownload from "./list-tabs/RemoteDownload.vue";
|
import RemoteDownload from "./list-tabs/RemoteDownload.vue";
|
||||||
import { usePluginModuleStore } from "@/stores/plugin";
|
import { usePluginModuleStore } from "@/stores/plugin";
|
||||||
import type { PluginModule, ThemeListTab } from "@halo-dev/console-shared";
|
import type { PluginModule, ThemeListTab } from "@halo-dev/console-shared";
|
||||||
|
import { usePermission } from "@/utils/permission";
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
const { currentUserHasPermission } = usePermission();
|
||||||
|
|
||||||
const props = withDefaults(
|
const props = withDefaults(
|
||||||
defineProps<{
|
defineProps<{
|
||||||
|
@ -115,7 +117,12 @@ onMounted(() => {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const items = extensionPoints["theme:list:tabs:create"]() as ThemeListTab[];
|
let items = extensionPoints["theme:list:tabs:create"]() as ThemeListTab[];
|
||||||
|
|
||||||
|
items = items.filter((item) => {
|
||||||
|
return currentUserHasPermission(item.permissions);
|
||||||
|
});
|
||||||
|
|
||||||
tabsFromPlugins.push(...items);
|
tabsFromPlugins.push(...items);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,10 @@ import type {
|
||||||
} from "@halo-dev/console-shared";
|
} from "@halo-dev/console-shared";
|
||||||
import { usePluginModuleStore } from "@/stores/plugin";
|
import { usePluginModuleStore } from "@/stores/plugin";
|
||||||
import { onMounted } from "vue";
|
import { onMounted } from "vue";
|
||||||
|
import { usePermission } from "@/utils/permission";
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
const { currentUserHasPermission } = usePermission();
|
||||||
|
|
||||||
const props = withDefaults(
|
const props = withDefaults(
|
||||||
defineProps<{
|
defineProps<{
|
||||||
|
@ -92,10 +94,14 @@ onMounted(() => {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const items = extensionPoints[
|
let items = extensionPoints[
|
||||||
"plugin:installation:tabs:create"
|
"plugin:installation:tabs:create"
|
||||||
]() as PluginInstallationTab[];
|
]() as PluginInstallationTab[];
|
||||||
|
|
||||||
|
items = items.filter((item) => {
|
||||||
|
return currentUserHasPermission(item.permissions);
|
||||||
|
});
|
||||||
|
|
||||||
tabs.value.push(...items);
|
tabs.value.push(...items);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue