Skip to content

Commit

Permalink
Merge pull request #3327 from G-Ambatte/experimentalBrewLocking-#3326
Browse files Browse the repository at this point in the history
Add administrative brew locking function
  • Loading branch information
calculuschild authored Mar 18, 2024
2 parents a851378 + 8b8071a commit dd6388b
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 2 deletions.
10 changes: 10 additions & 0 deletions client/homebrew/pages/errorPage/errors/errorIndex.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,16 @@ const errorIndex = (props)=>{
An error occurred while attempting to remove the user from the Homebrewery document author list!

**Brew ID:** ${props.brew.brewId}`,

// Brew locked by Administrators error
'100' : dedent`
## This brew has been locked.

Please contact the Administrators to unlock this document.

**Brew ID:** ${props.brew.brewId}

**Brew Title:** ${props.brew.brewTitle}`,
};
};

Expand Down
4 changes: 4 additions & 0 deletions server/homebrew.api.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ const api = {
});
stub = stub?.toObject();

if(stub?.lock?.locked && accessType != 'edit') {
throw { HBErrorCode: '100', code: stub.lock.code, message: stub.lock.message, brewId: stub.shareId, brewTitle: stub.title };
}

// If there is a google id, try to find the google brew
if(!stubOnly && (googleId || stub?.googleId)) {
let googleError;
Expand Down
16 changes: 14 additions & 2 deletions server/homebrew.api.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ describe('Tests for api', ()=>{
id : '123456789012345678901234567890123abcdefghijkl'
}
});

expect(googleId).toEqual('123456789012345678901234567890123');
expect(id).toEqual('abcdefghijkl');
});
Expand All @@ -128,7 +128,7 @@ describe('Tests for api', ()=>{
id : '123456789012345678901234567890123abcdefghij'
}
});

expect(googleId).toEqual('123456789012345678901234567890123');
expect(id).toEqual('abcdefghij');
});
Expand Down Expand Up @@ -298,6 +298,18 @@ describe('Tests for api', ()=>{
expect(model.get).toHaveBeenCalledWith({ shareId: '1' });
expect(google.getGoogleBrew).toHaveBeenCalledWith('2', '1', 'share');
});

it('access is denied to a locked brew', async()=>{
const lockBrew = { title: 'test brew', shareId: '1', lock: { locked: true, code: 404, message: 'brew locked' } };
model.get = jest.fn(()=>toBrewPromise(lockBrew));
api.getId = jest.fn(()=>({ id: '1', googleId: undefined }));

const fn = api.getBrew('share', false);
const req = { brew: {} };
const next = jest.fn();

await expect(fn(req, null, next)).rejects.toEqual({ 'HBErrorCode': '100', 'brewId': '1', 'brewTitle': 'test brew', 'code': 404, 'message': 'brew locked' });
});
});

describe('mergeBrewText', ()=>{
Expand Down

0 comments on commit dd6388b

Please sign in to comment.