[APPSCRIPT] Masquer une feuille seulement pour certains utilisateurs

Bonjour à tous,

Je souhaiterais pouvoir protéger une feuille de calcul en la masquant exclusivement pour certains utilisateurs (qui continueraient à avoir accès au reste des feuilles). Malheureusement, les options basiques de protections des feuilles et plages de GoogleSheet ne permettent pas de réaliser ce que je souhaite.
Je suis novice en appscript, pensez-vous que cela soit réalisable avec feuille.hideSheet(); ?
J'ai trouvé ce début de script sur sheets-pratique :

function masquer() {
const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Exemple');
feuille.hideSheet();
}

Est-il possible d'y ajouter une condition : masquer la feuille pour les utilisateurs A, B, C grâce à leurs adresse mail par exemple ?

Merci d'avance pour vos retours !

Bonjour,

Une petite idée,

function masquer(utilisateur) {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Exemple');
  if((utilisateur=="A"||utilisateur=="B")||utilisateur=="C"){//Si utilisateur = A ou = B ou = C, masquer la feuille, sinon afficher la feuille
    feuille.hideSheet();
  }else{
    feuille.showSheet();
  }
}

function onOpen(){//A l'ouverture du document
  const nom = Browser.inputBox('Identification', 'Entrez votre nom d\'utilisateur', Browser.Buttons.OK_CANCEL);//Demande le nom d'utilisateur
  masquer(nom);//fonction masquer
}

Bonne Journée

Bonjour,

Merci pour votre retour ! C'est une bonne idée, mais il faudrait que je puisse faire sans inputbox. En me basant sur le début du code j'ai essayé ceci :

function masquer(utilisateur) {
var utilisateur = Session.getActiveUser().getEmail();
var feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Feuille 1');

if (utilisateur=="prenom.nom@gmail.com") {
feuille.hideSheet();
}
else{
feuille.showSheet();
}
}

Mais cela ne fonctionne pas, une idée de pourquoi ?

Merci !

Bonjour,

En effet, les règles de confidentialité de google ont évolué, et l'accès à l'email via getEmail() n'est pas systématique !

https://developers.google.com/apps-script/reference/base/user?hl=fr

Gets the user's email address, if available. If security policies do not allow access to the user's email address, this method returns a blank string. The circumstances in which the email address is available vary: for example, the user's email address is not available in any context that allows a script to run without that user's authorization, like a simple onOpen(e) or onEdit(e) trigger, a custom function in Google Sheets, or a web app deployed to "execute as me" (that is, authorized by the developer instead of the user).

donc ne fonctionne pas avec onOpen() sauf pour celui qui a écrit le script !

Rechercher des sujets similaires à "appscript masquer feuille seulement certains utilisateurs"