Hiding Worksheets From Specific Users Inside A Spreadsheet
Solution 1:
Your project has two main problems
- Authorization
- Algorithm
Authorization
You are missing the restrictions of onOpen
and Class Session
.
onOpen
is a reserved name for the open simple trigger. When it's triggered by an open event, then can't execute methods that require authorization.
Session.getEffectiveUser().getEmail()
and Session.getActiveUser().getEmail()
might work when the owner open the spreadsheet but will return an empty string when the spreadsheet is opened by an editor. Related question: Session.getActiveUser().getEmail() returns no Value
One trick to use a custom menu to save the active user email address on the User Properties store, then onOpen
could get the user email address from there instead of using Class Session
. Related question: Determine current user in Apps Script
Algorithm
onOpen
will be executed every time the owner or an editor, any editor, opens the spreadsheet no matter if another user is active, so if brs@test.com
opens de the spreadsheet and few moments later amw22test.com
do the same, the first user will see all the sheets.
Maybe instead of using one spreadsheet for all users you should create one spreadsheet for each group and one master spreadsheet for the admin group.
Other related questions
Post a Comment for "Hiding Worksheets From Specific Users Inside A Spreadsheet"