I have a script with a dozen functions that we use for various tasks in our work. It's always been working great, I never deployed it as a web app or an API (And I also never was able to understand what those are or how to use them). Now, I added some protection to the sheet in question. One specific function adds values to a protected range. After the protection came into effect, it's not letting my employees execute the function in question since they don't have express permission to change those protected ranges manually. (changing them through the script is allowed).
So my question as somewhat of a noob to GAS, is how do I make this specific function execute as me every time ?
P.S: I did do a lot of research on the subject but I honestly couldn't figure it out. I know I need something called doGet or doPost, but I do not know what those are, how to use them or what they do. Looking them up only got me more confused..
Would be grateful for any kind of help or guidance. I thought this wouldn't be so much of an issue, but I've been at it for the last 3 hours and it's driving me crazy.
Here's what the function looks like : (Column C is the protected Range, you can see that some code eventually crosses it at some point)
function jun() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('E2:AG2').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Expenses 2019'), true);
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).activate();
sheet = spreadsheet.getActiveSheet();
sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).createFilter();
spreadsheet.getRange('B1').activate();
var criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(['1', '2', '3', '4', '6', '7', '8', '9', '10', '11', '12', ''])
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(2, criteria);
spreadsheet.getRange('A1').activate();
criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(['Total'])
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria);
spreadsheet.getRange('245:245').activate();
spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('\'EXPENSERIZER\'!E2:AG2').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getActiveSheet().getFilter().remove();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('EXPENSERIZER'), true);
spreadsheet.getRange('C11').activate();
};