[Libreoffice-commits] core.git: Branch 'feature/cib_contract3756' - scripting/java

Samuel Mehrbrodt (via logerrit) logerrit at kemper.freedesktop.org
Fri Nov 8 10:28:36 UTC 2019


 scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptEditorForBeanShell.java |   29 ++++++++++
 1 file changed, 29 insertions(+)

New commits:
commit dd5c4dc4a42d513f61e20e6614cb0c5aa74c65c1
Author:     Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
AuthorDate: Fri Nov 8 09:32:36 2019 +0100
Commit:     Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
CommitDate: Fri Nov 8 11:27:22 2019 +0100

    Respect DisableMacrosExecution option in beanshell editor
    
    Change-Id: I0713b3d1ab45519aef25b5bd3d912baf2252d37b
    Reviewed-on: https://gerrit.libreoffice.org/82263
    Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
    Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>

diff --git a/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptEditorForBeanShell.java b/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptEditorForBeanShell.java
index 36b9bf9839ff..5c12bc775786 100644
--- a/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptEditorForBeanShell.java
+++ b/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptEditorForBeanShell.java
@@ -17,11 +17,17 @@
  */
 package com.sun.star.script.framework.provider.beanshell;
 
+import com.sun.star.beans.NamedValue;
+import com.sun.star.configuration.theDefaultProvider;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XMultiServiceFactory;
 import com.sun.star.script.framework.container.ScriptMetaData;
 import com.sun.star.script.framework.provider.ClassLoaderFactory;
 import com.sun.star.script.framework.provider.ScriptEditor;
 import com.sun.star.script.framework.provider.SwingInvocation;
 import com.sun.star.script.provider.XScriptContext;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
 
 import java.awt.BorderLayout;
 import java.awt.FlowLayout;
@@ -172,10 +178,33 @@ public class ScriptEditorForBeanShell implements ScriptEditor, ActionListener {
      *
      */
     public Object execute() throws Exception {
+        if (!isMacroExectionEnabled()) {
+            showErrorMessage("Macro Execution has been disabled.");
+            return null;
+        }
+
         frame.toFront();
         return model.execute(context, cl);
     }
 
+    private boolean isMacroExectionEnabled() {
+        XNameAccess xNameAccess = null;
+        try {
+            String sAccess = "com.sun.star.configuration.ConfigurationAccess";
+            XMultiServiceFactory xMSFCfg = theDefaultProvider.get(context.getComponentContext());
+            Object oAccess = xMSFCfg.createInstanceWithArguments(sAccess,
+                    new Object[] { new NamedValue("nodepath", "org.openoffice.Office.Common/Security/Scripting") });
+            xNameAccess = UnoRuntime.queryInterface(XNameAccess.class, oAccess);
+            Object result = xNameAccess.getByName("DisableMacrosExecution");
+            boolean bMacrosDisabled = AnyConverter.toBoolean(result);
+            if (bMacrosDisabled)
+                return false;
+        } catch (com.sun.star.uno.Exception e) {
+            return false;
+        }
+        return true;
+    }
+
     /**
      *  Opens an editor window for the specified ScriptMetaData.
      *  If an editor window is already open for that data it will be


More information about the Libreoffice-commits mailing list