mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-09 22:24:05 -08:00
fix(editor): Add back credential use
permission (#8023)
## Summary A shared credential is not selectable in NDV Aim If a credential is shared with a user they should be able to select it in node details view
This commit is contained in:
parent
fcb8b91f37
commit
329e5bf9ee
|
@ -98,6 +98,26 @@ describe('Sharing', { disableAutoLogin: true }, () => {
|
|||
ndv.actions.close();
|
||||
});
|
||||
|
||||
it('should open W1, add node using C2 as U2', () => {
|
||||
cy.signin(INSTANCE_MEMBERS[0]);
|
||||
|
||||
cy.visit(workflowsPage.url);
|
||||
workflowsPage.getters.workflowCards().should('have.length', 2);
|
||||
workflowsPage.getters.workflowCard('Workflow W1').click();
|
||||
workflowPage.actions.addNodeToCanvas('Airtable', true, true);
|
||||
ndv.getters.credentialInput().find('input').should('have.value', 'Credential C2');
|
||||
ndv.actions.close();
|
||||
workflowPage.actions.saveWorkflowOnButtonClick();
|
||||
|
||||
workflowPage.actions.openNode('Notion');
|
||||
ndv.getters
|
||||
.credentialInput()
|
||||
.find('input')
|
||||
.should('have.value', 'Credential C1')
|
||||
.should('be.enabled');
|
||||
ndv.actions.close();
|
||||
});
|
||||
|
||||
it('should not have access to W2, as U3', () => {
|
||||
cy.signin(INSTANCE_MEMBERS[1]);
|
||||
|
||||
|
|
|
@ -420,7 +420,7 @@ export function useNodeHelpers() {
|
|||
.getCredentialsByType(credentialTypeDescription.name)
|
||||
.filter((credential: ICredentialsResponse) => {
|
||||
const permissions = getCredentialPermissions(currentUser, credential);
|
||||
return permissions.read;
|
||||
return permissions.use;
|
||||
});
|
||||
|
||||
if (userCredentials === null) {
|
||||
|
|
|
@ -101,6 +101,10 @@ export const getCredentialPermissions = (user: IUser | null, credential: ICreden
|
|||
test: (permissions) =>
|
||||
hasPermission(['rbac'], { rbac: { scope: 'credential:delete' } }) || !!permissions.isOwner,
|
||||
},
|
||||
{
|
||||
name: 'use',
|
||||
test: (permissions) => !!permissions.isOwner || !!permissions.isSharee,
|
||||
},
|
||||
];
|
||||
|
||||
return parsePermissionsTable(user, table);
|
||||
|
|
|
@ -95,7 +95,7 @@ export const useUsersStore = defineStore(STORES.USERS, {
|
|||
return (resource: ICredentialsResponse): boolean => {
|
||||
const permissions = getCredentialPermissions(this.currentUser, resource);
|
||||
|
||||
return permissions.read;
|
||||
return permissions.use;
|
||||
};
|
||||
},
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue