mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
refactor: Workflow sharing bug bash fixes (#4888)
* fix: Prevent workflows with only manual trigger from being activated * fix: Fix workflow id when sharing from workflows list * fix: Update sharing modal translations * fix: Allow sharees to disable workflows and fix issue with unique key when removing a user * refactor: Improve error messages and change logging level to be less verbose * fix: Broken user removal transfer issue * feat: Implement workflow sharing BE telemetry * chore: temporarily add sharing env vars * feat: Implement BE telemetry for workflow sharing * fix: Prevent issues with possibly missing workflow id * feat: Replace WorkflowSharing flag references (no-changelog) (#4918) * ci: Block all external network calls in tests (no-changelog) (#4930) * setup nock to prevent tests from making any external requests * mock all calls to posthog sdk * feat: Replace WorkflowSharing flag references (no-changelog) Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com> * refactor: Remove temporary feature flag for workflow sharing * refactor: add sharing_role to both manual and node executions * refactor: Allow changing name, position and disabled of read only nodes * feat: Overhaul dynamic translations for local and cloud (#4943) * feat: Overhaul dynamic translations for local and cloud * fix: remove type casting * chore: remove unused translations * fix: fix workflow sharing translation * test: Fix broken test * refactor: remove unnecessary import * refactor: Minor code improvements * refactor: rename dynamicTranslations to contextBasedTranslationKeys * fix: fix type imports * refactor: Consolidate sharing feature check * feat: update cred sharing unavailable translations * feat: update upgrade message when user management not available * fix: rename plan names to Pro and Power * feat: update translations to no longer contain plan names * wip: subworkflow permissions * feat: add workflowsFromSameOwner caller policy * feat: Fix subworkflow permissions * shared entites should check for role when deleting users * refactor: remove circular dependency * role filter shouldn't be an array * fixed role issue * fix: Corrected behavior when removing users * feat: show instance owner credential sharing message only if isnt sharee * feat: update workflow caller policy caller ids labels * feat: update upgrade plan links to contain instance ids * fix: show check errors below creds message only to owner * fix(editor): Hide usage page on cloud * fix: update credential validation error message for sharee * fix(core): Remove duplicate import * fix(editor): Extending deployment types * feat: Overhaul contextual translations (#4992) feat: update how contextual translations work * refactor: improve messageing for subworkflow permissions * test: Fix issue with user deletion and transfer * fix: Explicitly throw error message so it can be displayed in UI Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com> Co-authored-by: freyamade <freya@n8n.io> Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
This commit is contained in:
@@ -1,7 +1,22 @@
|
||||
<template>
|
||||
<div :class="$style.container">
|
||||
<div v-if="isDefaultUser">
|
||||
<div v-if="!isSharingEnabled">
|
||||
<n8n-action-box
|
||||
:heading="
|
||||
$locale.baseText(contextBasedTranslationKeys.credentials.sharing.unavailable.title)
|
||||
"
|
||||
:description="
|
||||
$locale.baseText(contextBasedTranslationKeys.credentials.sharing.unavailable.description)
|
||||
"
|
||||
:buttonText="
|
||||
$locale.baseText(contextBasedTranslationKeys.credentials.sharing.unavailable.button)
|
||||
"
|
||||
@click="goToUpgrade"
|
||||
/>
|
||||
</div>
|
||||
<div v-else-if="isDefaultUser">
|
||||
<n8n-action-box
|
||||
:heading="$locale.baseText('credentialEdit.credentialSharing.isDefaultUser.title')"
|
||||
:description="
|
||||
$locale.baseText('credentialEdit.credentialSharing.isDefaultUser.description')
|
||||
"
|
||||
@@ -23,8 +38,13 @@
|
||||
</template>
|
||||
</n8n-info-tip>
|
||||
<n8n-info-tip
|
||||
v-if="
|
||||
!credentialPermissions.isOwner &&
|
||||
!credentialPermissions.isSharee &&
|
||||
credentialPermissions.isInstanceOwner
|
||||
"
|
||||
class="mb-s"
|
||||
:bold="false"
|
||||
v-if="!credentialPermissions.isOwner && credentialPermissions.isInstanceOwner"
|
||||
>
|
||||
{{ $locale.baseText('credentialEdit.credentialSharing.info.instanceOwner') }}
|
||||
</n8n-info-tip>
|
||||
@@ -53,13 +73,16 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { IUser } from '@/Interface';
|
||||
import { IUser, UIState } from '@/Interface';
|
||||
import mixins from 'vue-typed-mixins';
|
||||
import { showMessage } from '@/mixins/showMessage';
|
||||
import { mapStores } from 'pinia';
|
||||
import { useUsersStore } from '@/stores/users';
|
||||
import { useSettingsStore } from '@/stores/settings';
|
||||
import { useUIStore } from '@/stores/ui';
|
||||
import { useCredentialsStore } from '@/stores/credentials';
|
||||
import { VIEWS } from '@/constants';
|
||||
import { useUsageStore } from '@/stores/usage';
|
||||
import { EnterpriseEditionFeature, VIEWS } from '@/constants';
|
||||
|
||||
export default mixins(showMessage).extend({
|
||||
name: 'CredentialSharing',
|
||||
@@ -72,10 +95,16 @@ export default mixins(showMessage).extend({
|
||||
'modalBus',
|
||||
],
|
||||
computed: {
|
||||
...mapStores(useCredentialsStore, useUsersStore),
|
||||
...mapStores(useCredentialsStore, useUsersStore, useUsageStore, useUIStore, useSettingsStore),
|
||||
isDefaultUser(): boolean {
|
||||
return this.usersStore.isDefaultUser;
|
||||
},
|
||||
contextBasedTranslationKeys(): UIState['contextBasedTranslationKeys'] {
|
||||
return this.uiStore.contextBasedTranslationKeys;
|
||||
},
|
||||
isSharingEnabled(): boolean {
|
||||
return this.settingsStore.isEnterpriseFeatureEnabled(EnterpriseEditionFeature.Sharing);
|
||||
},
|
||||
usersList(): IUser[] {
|
||||
return this.usersStore.allUsers.filter((user: IUser) => {
|
||||
const isCurrentUser = user.id === this.usersStore.currentUser?.id;
|
||||
@@ -138,6 +167,14 @@ export default mixins(showMessage).extend({
|
||||
this.$router.push({ name: VIEWS.USERS_SETTINGS });
|
||||
this.modalBus.$emit('close');
|
||||
},
|
||||
goToUpgrade() {
|
||||
let linkUrl = this.$locale.baseText(this.contextBasedTranslationKeys.upgradeLinkUrl);
|
||||
if (linkUrl.includes('subscription')) {
|
||||
linkUrl = this.usageStore.viewPlansUrl;
|
||||
}
|
||||
|
||||
window.open(linkUrl, '_blank');
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.loadUsers();
|
||||
|
||||
Reference in New Issue
Block a user