J'ai un projet de script dans lequel des fichiers .gs
"cadenassés" sont affichés. Je ne peux ni les modifier ni les supprimer.
Je dois utiliser ces fichiers, mais la personne qui les a verrouillés n'est pas disponible.
J'essayais de déverrouiller les fichiers à l'aide de méthodes de la classe LockService
mais cela ne semble pas fonctionner de cette façon.
Comment "déverrouiller" ces fichiers pour pouvoir les modifier?
4 Réponses :
Malheureusement, seul le propriétaire du fichier ou un administrateur de votre domaine (si vous utilisez G Suite) peut le faire.
Je suis l'administrateur mais tout le code a été fait par l'autre développeur qui est parti maintenant. Et je n'ai pas accès au fichier verrouillé, je ne peux donc pas utiliser la méthode releaseLock (). Et il semble ne pas fonctionner à partir d'un fichier différent.
Je l'ai imaginé. Le cadenas ne pointe pas vers les fichiers réels avec ce script. Il existe une bibliothèque dans un script autonome contenant ces fichiers. Lorsque j'utilise le débogueur, il atteint ces fichiers à partir d'une bibliothèque autonome et ils sont affichés dans le script avec un cadenas. Ainsi, le cadenas signifie simplement que ces modules proviennent d'un fichier de script distinct! Ce n'est donc pas une serrure.
Je l'ai géré en créant les mêmes modules avec le script et en renommant simplement quelques fonctions. Je peux donc utiliser le débogage pour tous mes itinéraires.
J'ai fait apparaître le cadenas sur deux projets que je possède, et dont je suis le seul éditeur, sans comprendre pourquoi ils sont apparus pour la première fois. Ils sont apparus sur mon ordinateur portable de travail, mais pas sur mon ordinateur portable personnel. Au travail, j'avais été connecté à une fenêtre de navigateur avec mes comptes professionnels et personnels. Lors de l'ouverture de la feuille Google qui contient le script, elle s'ouvre en tant que mon compte professionnel. Cependant, lors de l'ouverture du script à partir de la feuille, le script s'est ouvert mais s'est connecté en tant que mon compte personnel (qui a également accès). Je suppose que cela ne devrait pas vraiment arriver, mais c'est le cas. La solution était simple cependant, je devais simplement utiliser le menu déroulant pour sélectionner mon compte professionnel, ce qui ouvrait une nouvelle fenêtre pour le script sans cadenas et je pouvais modifier comme d'habitude. J'ai été assez confus pendant un moment ... ouf!
J'ai eu le même problème. Il s'est avéré que rien de ce qui précède ne l'a corrigé bien que similaire mais différent de l'autre personne qui avait réparé le sien. Dans mon cas, j'ai plusieurs utilisateurs Chrome sur une seule machine. Je me connecte au niveau du navigateur. J'étais dans le navigateur de l'utilisateur A qui possédait également le fichier. Lorsque j'ai ouvert le projet de script google lié attaché au fichier de feuilles gooogle, il s'est ouvert comme il se doit, mais des verrous étaient sur chaque onglet. J'ai été confus pendant environ 10 minutes.
Dans le coin supérieur droit de l'interface, il y avait une liste déroulante qui montrait l'adresse e-mail de l'utilisateur B même si au-dessus, au niveau du navigateur, j'étais clairement dans le navigateur de l'utilisateur A. J'ai cliqué sur cette liste déroulante et j'ai changé à l'utilisateur A et les verrous ont disparu. Il semble qu'ils aient une façon étrange de gérer les utilisateurs sur ces gsp qui subvertit la connexion utilisateur au niveau du navigateur.
Il existe une méthode
setOwner ()
d'un fichier dans la classe DriveApp. Vous pouvez essayer:DriveApp.getFileById (id) .setOwner (emailAddress);
Voir également les réponses mises à jour pour publier: Transférer la propriété du fichier Même si vous ne pouvez pas modifier ou supprimer ces fichiers, si vous pouvez copier le contenu, alors vous pouvez copier le contenu dans un autre fichier gs. Vous devrez peut-être modifier les noms de fonction dans le code copié.La méthode
getScriptLock ()
fait partie de la classe LockService, qui est utilisée pour empêcher plusieurs instances d'une section de code de s'exécuter en même temps. Il s'agit de faire face aux problèmes de concurrence. Il ne déverrouille pas un fichier de script d'applications gs ou html interne. Si vous voyez un cadenas sur les fichiers, cela signifie que vous ne disposez pas d'un accès en modification au fichier, qui est contrôlé par le partage de fichiers. Si vous disposez d'un accès VIEW à un fichier Apps Script, vous pouvez cliquer sur FILE, Make Copy, et la copie du fichier vous appartiendra.Merci Sandy. Il y a effectivement un cadenas et je suis le propriétaire du fichier. Mais comment configurer ce cadenas? Même si je suis le propriétaire du fichier, je ne peux pas le supprimer.
On dirait que le projet de script associé au conteneur n'est pas le vôtre. Vous pouvez consulter plus d'informations à ce sujet dans le hub pour développeurs G Suite à l'adresse script.google.com . S'il s'agit d'un fichier de script autonome, vous devriez pouvoir accéder aux informations sur le projet à l'aide de l'API Google Drive. Sinon, vous êtes limité à l'API Apps Script.
Je l'ai imaginé. Le cadenas ne pointe pas vers les fichiers réels avec ce script. Il existe une bibliothèque dans un script autonome contenant ces fichiers. Lorsque j'utilise le débogueur, il atteint ces fichiers à partir d'une bibliothèque autonome et ils sont affichés dans le script avec un cadenas. Ainsi, le cadenas signifie simplement que ces modules proviennent d'un fichier de script distinct! Ce n'est donc pas une serrure.
Je l'ai géré en créant les mêmes modules dans le script et en renommant simplement quelques fonctions. Je peux donc utiliser le débogage pour tous mes itinéraires.
Merci, j'ai édité ma question et ajouté ma propre réponse))