[Résolu][Calc] Empêcher l'accès au menu "Personnaliser"

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Scap
Membre hOOnoraire
Membre hOOnoraire
Messages : 177
Inscription : 28 juil. 2010 13:21

[Résolu][Calc] Empêcher l'accès au menu "Personnaliser"

Message par Scap »

Bonjour,

Je viens de remarquer que n'importe qui peut supprimer les macros définies dans Outils > Personnaliser > Évènements !
J'aimerai cacher ce menu ou bien le bloquer dès que le document s'ouvre alors j'ai parcouru le livre de programmation à la recherche d'une info utile pour éviter ça mais à part la p.25 qui traite de comment exécuter une macro sur un évènement, je n'ai rien trouvé...

Hum... en fait sur le forum il y a bien ce sujet : http://user.services.openoffice.org/fr/ ... 13&t=18877 et celui-ci : http://user.services.openoffice.org/fr/ ... c5611.html mais je vois mal comment forcer les utilisateurs à placer ce fameux fichier OptionsDialog.xcu dans un répertoire..
Les pages 785, 786 traitent aussi des fichiers. xcu, il faut que je me concentre pour mieux comprendre le principe mais encore une fois, si ça touche l'installation et configuration d'OOo je vois mal comment gérer ça parce que si je ne suis pas admin sur la machine où tourne le programme je ne pourrai rien écrire dans le répertoire d'OOo n'est ce pas ?

N'existe t-il pas de méthode par macro ? ou bien, par protection du menu par un mot de passe ? ou encore par blocage (comme pour l'affichage de feuilles masquées lorsque le document est protégé) ?
 Ajout : Je joins un fichier exemple avec une macro qui se lance à l'ouverture du document. On voit bien que rien ne la protège. (c'est un fichier test, pas de but particulier)
InitPage.ods
 
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Scap le 14 oct. 2010 12:38, modifié 2 fois.
Windows XP professionnel SP3 + OpenOffice 3.3
Ubuntu 10.04 LTS - Le lynx Lucide + GNOME 2.30.2 + OpenOffice 3.2.1
Kubuntu 10.10 + KDE 4.5.1 + OpenOffice 3.2.0
Mac OS X - Snow Leopard + OpenOffice 3.2.1 (Intel)
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
Messages : 1527
Inscription : 28 sept. 2008 12:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [Calc] Empêcher l'accès au menu "Personnaliser"

Message par Alain de La Chaume »

Bonjour Scap, bonjour à tous

Je n'ai pas cherché de solution par macro (pas encore).
Mais voici comment je m'y prendrais *...

1. Si le fichier {répertoire utilisateur}/openoffice.org/3/user/config/soffice.cfg/modules/scalc/menubar/menubar.xml n'existe pas
Il suffit pour le créer de modifier l'un des menus en y ajoutant un item bidon.
Valider, et le supprimer ensuite s'il est inutile.

2. Si le fichier menubar.xml existe
Le copier pour le mettre en protection (par précaution) puis l'éditer (éditeur de texte simple).
Chercher la chaine "ConfigureDialog" et supprimer toute la ligne qui la contient.
Aperçu avec une ligne avant et une ligne après :

Code : Tout sélectionner

   <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
   <menu:menuitem menu:id=".uno:ConfigureDialog"/>
   <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
Après redémarrage d'OOo, "Personnaliser" ne doit plus être accessible.
... Pour cet utilisateur !
__________
(*) Attention, les chemins copiés-collés ici en exemple sont en notation Linux (slash au lieu de antislash sur Win).


______________________________________________________
Ajout le 13/10 à 19 h 50

Puisque nous sommes en section Macros, voici une petite variante.
Au lieu de supprimer purement et simplement la ligne

Code : Tout sélectionner

   <menu:menuitem menu:id=".uno:ConfigureDialog"/>
on peut la remplacer par cette ligne (oui, une seule ligne mais très longue)

Code : Tout sélectionner

   <menu:menuitem menu:id="vnd.sun.star.script:Standard.aMain.menuPersonnaliser?language=Basic&location=application" menu:helpid="vnd.sun.star.script:Standard.aMain.menuPersonnaliser?language=Basic&location=application" menu:label="Personnaliser..."/>
qui signifie : exécute la macro menuPersonnaliser du module aMain de la bibliothèque Standard de Mes macros et boîtes de dialogue

Ne pas oublier de créer ladite macro, bien entendu. Par exemple :

Code : Tout sélectionner

sub menuPersonnaliser()
    msgBox "L'outil ""Personnaliser"" vous est interdit." & chr(13) _
         & "Veuillez contacter Madame Irma" & chr(13) _
         & "si vous voulez en savoir plus...", 16, _
         "### ZONE INTERDITE ###"
end sub
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Scap
Membre hOOnoraire
Membre hOOnoraire
Messages : 177
Inscription : 28 juil. 2010 13:21

Re: [Calc] Empêcher l'accès au menu "Personnaliser"

Message par Scap »

Alain de La Chaume a écrit :Après redémarrage d'OOo, "Personnaliser" ne doit plus être accessible.
... Pour cet utilisateur !
Hum, c'est bien là le problème... je ne peux pas faire cette manip sur toutes les machines où sera utilisé mon document :?

En ouvrant le fichier .ods avant winrar, on a accès aux paramètres du document, dans "Configurations2" il y a un dossier "menubar" vide.
Je n'ai pas de menubar.xml. Hum... je n'ai pas bien compris la manip pour créer un fichier menubar.xml.. serait-il possible de développer un peu plus svp ?

Est ce que se serait plus simple d'ôter complètement toute la barre "Fichier | Edition | ... " ?
Avatar de l’utilisateur
spYre
InconditiOOnnel
InconditiOOnnel
Messages : 888
Inscription : 29 oct. 2008 19:02
Localisation : Liège, Belgique

Re: [Calc] Empêcher l'accès au menu "Personnaliser"

Message par spYre »

Alain de La Chaume a écrit :Bonjour ScapJe n'ai pas cherché de solution par macro
Ça m'a évidemment donné envie de chercher :mrgreen: .

Ci-joint une solution fondée sur les lectures suivantes :
- Restrictions des fonctionnalités dans OpenOffice.org
- Disable Commands

Réserves d'usage : je ne maîtrise pas toutes les conséquences de ce type de manipulations.
Par ailleurs, ne vaut-il pas mieux faire crédit à l'utilisateur d'un minimum de responsabilité ? Si celui-ci a la curiosité de chipoter les propriétés/macros d'un document, il sait aussi en principe à quoi il s'expose...

Cordialement.

PS. Pour masquer complètement la barre de menu, plusieurs fils traitent déjà de cette question...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 3.3.4 + Report Builder
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
Scap
Membre hOOnoraire
Membre hOOnoraire
Messages : 177
Inscription : 28 juil. 2010 13:21

Re: [Calc] Empêcher l'accès au menu "Personnaliser"

Message par Scap »

Très intéressant, merci !

La macro du document Calc fonctionne très bien, il faut maintenant que je consacre plus de temps pour lire avec attention les liens joints.
spYre a écrit :Par ailleurs, ne vaut-il pas mieux faire crédit à l'utilisateur d'un minimum de responsabilité ? Si celui-ci a la curiosité de chipoter les propriétés/macros d'un document, il sait aussi en principe à quoi il s'expose...
C'est aussi une possibilité.. je redoute cependant que certains utilisateurs s'amusent à tester la robustesse de mon document. Comme je découvre chaque jour une nouvelle façon (en trifouillant) de faire planter OOo en cas de mauvaise utilisation ça me fait un peu peur.
Windows XP professionnel SP3 + OpenOffice 3.3
Ubuntu 10.04 LTS - Le lynx Lucide + GNOME 2.30.2 + OpenOffice 3.2.1
Kubuntu 10.10 + KDE 4.5.1 + OpenOffice 3.2.0
Mac OS X - Snow Leopard + OpenOffice 3.2.1 (Intel)
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
Messages : 1527
Inscription : 28 sept. 2008 12:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [Calc] Empêcher l'accès au menu "Personnaliser"

Message par Alain de La Chaume »

Bonjour,
Scap a écrit :Très intéressant
Je dirais même plus : très très intéressant ! :D
Avec des références non moins intéressantes dans les fichiers joints (à lire à tête reposée pour ne pas fumer).
Ce code est digne des Suprêmes. :super: :bravo:
Et pour que la fonction externe getRegistryKeyContent (dans OOO Tools) ne soit pas perdue en cours de route, peut-être faudrait-il l'inclure dans l'exemple, quitte à la renommer.
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Re: [Calc] Empêcher l'accès au menu "Personnaliser"

Message par bm92 »

Bonjour,
La solution de spYre, bien qu'ingénieuse, est facilement contournable (heureusement, pour raison de sécurité).
Il suffit d'ouvrir le document dans un répertoire où l'exécution de macros n'est pas autorisée. On peut alors accèder à la personnalisation.
Scap a écrit :Empêcher l'accès au menu "Personnaliser"
Empêcher l'ouverture avec Winrar (ou équivalent)
Vérifier si le répertoire est issu d'une clé USB
OpenOffice.org est un logiciel LIBRE. Cela peut être aussi interprété comme la liberté de l'utilisateur vis-à-vis d'un document:
  • décider d'ouvrir le document avec ou sans activation de ses macros (option sécurité)
  • supprimer un lancement de macro sur événement
  • supprimer ou modifier des macros non protégées
  • supprimer une bibliothèque de macro, même protégée
  • sauver un document où il le souhaite.
Si tu veux faire une application totalement fermée et protégée, le mieux est de l'écrire toi-même, avec un langage de programmation indépendant.
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
Scap
Membre hOOnoraire
Membre hOOnoraire
Messages : 177
Inscription : 28 juil. 2010 13:21

Re: [Calc] Empêcher l'accès au menu "Personnaliser"

Message par Scap »

bm92 a écrit :Si tu veux faire une application totalement fermée et protégée, le mieux est de l'écrire toi-même, avec un langage de programmation indépendant.
Ok, c'est plus clair maintenant..
En fait, Je n'avais pas bien compris ce point avec mes recherches ni avec mes questions dans mon premier sujet ici avant de me lancer sur OOo, je pensais qu'il serait possible de protéger davantage mon travail.. je me dis maintenant que j'aurai peut-être du choisir le Java mais en même temps j'avais bien réflechi avant de prendre ma décision, OOo était une bonne solution selon les contraintes que j'ai eu.
Windows XP professionnel SP3 + OpenOffice 3.3
Ubuntu 10.04 LTS - Le lynx Lucide + GNOME 2.30.2 + OpenOffice 3.2.1
Kubuntu 10.10 + KDE 4.5.1 + OpenOffice 3.2.0
Mac OS X - Snow Leopard + OpenOffice 3.2.1 (Intel)
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
Messages : 1527
Inscription : 28 sept. 2008 12:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [Résolu][Calc] Empêcher l'accès au menu "Personnaliser"

Message par Alain de La Chaume »

Bonjour,
bm92 a écrit :Il suffit d'ouvrir le document dans un répertoire où l'exécution de macros n'est pas autorisée.
Je n'imaginais pas que la macro de spYre désactivant l'item "Personnaliser..." du menu Outils serait intégrée à un document courant, mais plutôt qu'elle serait utilisée une fois pour configurer l'environnement de travail pour tous les documents à venir.
Et ce bien sûr jusqu'à suppression du profil utilisateur, qui est un autre contournement, mais à la portée seulement des utilisateurs un peu curieux qui ne sont pas légion.
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Avatar de l’utilisateur
spYre
InconditiOOnnel
InconditiOOnnel
Messages : 888
Inscription : 29 oct. 2008 19:02
Localisation : Liège, Belgique

Re: [Calc] Empêcher l'accès au menu "Personnaliser"

Message par spYre »

Bonsoir à tous,
bm92 a écrit :La solution de spYre, bien qu'ingénieuse, est facilement contournable (heureusement, pour raison de sécurité).
Tout à fait.
Par ailleurs, je reste persuadé que toute application doit parier sur l'intelligence de l'utilisateur avant tout : un manuel clair et complet sera toujours la meilleure parade contre les mésusages.
LibreOffice 3.3.4 + Report Builder
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
Scap
Membre hOOnoraire
Membre hOOnoraire
Messages : 177
Inscription : 28 juil. 2010 13:21

Re: [Calc] Empêcher l'accès au menu "Personnaliser"

Message par Scap »

spYre a écrit :Par ailleurs, je reste persuadé que toute application doit parier sur l'intelligence de l'utilisateur avant tout
Pari risqué ;)
Windows XP professionnel SP3 + OpenOffice 3.3
Ubuntu 10.04 LTS - Le lynx Lucide + GNOME 2.30.2 + OpenOffice 3.2.1
Kubuntu 10.10 + KDE 4.5.1 + OpenOffice 3.2.0
Mac OS X - Snow Leopard + OpenOffice 3.2.1 (Intel)