n8n-editor-ui
Version:
Workflow Editor UI for n8n
50 lines (49 loc) • 2.16 kB
JavaScript
import { C as computed, It as ref } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
import { ds as getRoleBySlug, fs as getRoles, ls as createProjectRole, ps as updateProjectRole, us as deleteProjectRole } from "./useTelemetry-C797TaYa.js";
import { ko as PROJECT_OWNER_ROLE_SLUG } from "./constants-CX1ozgFz.js";
import { k as defineStore, r as useRootStore } from "./_baseOrderBy-DL6Sy5xK.js";
const useRolesStore = defineStore("roles", () => {
const rootStore = useRootStore();
const roles = ref({
global: [],
project: [],
credential: [],
workflow: []
});
const projectRoleOrder = ref([
"project:viewer",
"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).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 };