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:
Csaba Tuncsik 2023-12-14 13:36:36 +01:00 committed by GitHub
parent fcb8b91f37
commit 329e5bf9ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 2 deletions

View file

@ -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]);

View file

@ -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) {

View file

@ -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);

View file

@ -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;
};
},
},