n8n-editor-ui
Version:
Workflow Editor UI for n8n
52 lines (51 loc) • 2.38 kB
JavaScript
import { C as computed, It as ref } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
import { Fs as createProjectRole, Is as deleteProjectRole, Ls as getRoleBySlug, Rs as getRoles, gs as useSettingsStore, zs as updateProjectRole } from "./builder.store-sBTWwxRU.js";
import { Ao as PROJECT_CHAT_USER_ROLE_SLUG, jo as PROJECT_OWNER_ROLE_SLUG } from "./constants-BbpucWL4.js";
import { k as defineStore, r as useRootStore } from "./_baseOrderBy-B_6CV8x6.js";
const useRolesStore = defineStore("roles", () => {
const rootStore = useRootStore();
const settingsStore = useSettingsStore();
const roles = ref({
global: [],
project: [],
credential: [],
workflow: []
});
const projectRoleOrder = ref([
"project:viewer",
"project:chatUser",
"project:editor",
"project:admin"
]);
const projectRoleOrderMap = computed(() => new Map(projectRoleOrder.value.map((role, idx) => [role, idx])));
const processedProjectRoles = computed(() => roles.value.project.filter((role) => role.slug !== PROJECT_OWNER_ROLE_SLUG).filter((role) => settingsStore.isChatFeatureEnabled || role.slug !== "project:chatUser").sort((a, b) => (projectRoleOrderMap.value.get(a.slug) ?? Number.MAX_SAFE_INTEGER) - (projectRoleOrderMap.value.get(b.slug) ?? Number.MAX_SAFE_INTEGER)));
const processedCredentialRoles = computed(() => roles.value.credential.filter((role) => role.slug !== "credential:owner"));
const processedWorkflowRoles = computed(() => roles.value.workflow.filter((role) => role.slug !== "workflow:owner"));
const fetchRoles = async () => {
roles.value = await getRoles(rootStore.restApiContext);
};
const createProjectRole$1 = async (body) => {
return await createProjectRole(rootStore.restApiContext, body);
};
const fetchRoleBySlug = async (payload) => {
return await getRoleBySlug(rootStore.restApiContext, payload);
};
const deleteProjectRole$1 = async (slug) => {
return await deleteProjectRole(rootStore.restApiContext, slug);
};
const updateProjectRole$1 = async (slug, body) => {
return await updateProjectRole(rootStore.restApiContext, slug, body);
};
return {
roles,
processedProjectRoles,
processedCredentialRoles,
processedWorkflowRoles,
fetchRoles,
createProjectRole: createProjectRole$1,
fetchRoleBySlug,
updateProjectRole: updateProjectRole$1,
deleteProjectRole: deleteProjectRole$1
};
});
export { useRolesStore as t };