diff --git a/client/homebrew/pages/errorPage/errors/errorIndex.js b/client/homebrew/pages/errorPage/errors/errorIndex.js index c2de04142..7c7a3ae7f 100644 --- a/client/homebrew/pages/errorPage/errors/errorIndex.js +++ b/client/homebrew/pages/errorPage/errors/errorIndex.js @@ -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}`, }; }; diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 20e13ec71..e55bf20a0 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -54,6 +54,13 @@ const api = { }); stub = stub?.toObject(); + if(stub.lock?.state) { + // State 1 : Locked for everything + // State 2 : Edit only + if(stub.lock.state == 1 || (stub.lock.state == 2 && accessType != 'edit')) + throw { HBErrorCode: '100', code: stub.lock.code, message: stub.lock.message, brewId: accessType === 'edit' ? stub.editId : stub.shareId, brewTitle: stub.title }; + } + // If there is a google id, try to find the google brew if(!stubOnly && (googleId || stub?.googleId)) { let googleError;