Hallo liebe Community,
und zwar versuche ich an den PermissionService zu kommen, um dort eine Änderung an der groups.xml im ServerMonitoring unter Konfigurationen/Dienste/PermissionService vorzunehmen.
Dies möchte ich über ein ganz normales Skript im Site-Architekt tun (Server-Auftrag wäre auch denkbar). Doch wenn ich context.getConnection().getService("PermissionService") aufrufe, erhalte ich immer nur den ClientPermissionService.
Zudem bekomme ich beim speichern der GroupRoot per save() direkt den Fehler:
FSVersion=5.2.1806.76861#4442;JDK=1.8.0_161 32bit Oracle Corporation;OS=Windows 10 10.0 x86;Date=19.04.2018 11:25:06 (I)
de.espirit.firstspirit.access.script.ExecutionException: Method Invocation groupRoot.save : at Line: 43 : in file: inline evaluation of: ``__execute() { import de.espirit.firstspirit.access.*; import de.espirit.firstspi . . . '' : groupRoot .save ( )
--------------------------------------------------------------------------------------------------------------------------------------
Target exception: java.lang.SecurityException: Not an admin user!
at line 43
at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:109)
at de.espirit.firstspirit.client.gui.applications.ApplicationTabRegistry$IdentifiableExecutable.execute(ApplicationTabRegistry.java:114)
at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:106)
at de.espirit.firstspirit.common.ScriptUtil.executePrivileged(ScriptUtil.java:158)
at de.espirit.firstspirit.common.ScriptUtil.access$000(ScriptUtil.java:31)
at de.espirit.firstspirit.common.ScriptUtil$2.run(ScriptUtil.java:145)
at de.espirit.firstspirit.client.gui.util.GuiUtil$RunnableWrapper.run(GuiUtil.java:2001)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.SecurityException: Not an admin user!
at de.espirit.firstspirit.service.permission.groups.GroupRootImpl.save(GroupRootImpl.java:152)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at bsh.Reflect.invokeMethod(Reflect.java:166)
at bsh.Reflect.invokeObjectMethod(Reflect.java:99)
at bsh.Name.invokeMethod(Name.java:858)
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at bsh.BSHBlock.eval(BSHBlock.java:80)
at bsh.BSHBlock.eval(BSHBlock.java:46)
at bsh.BSHTryStatement.eval(BSHTryStatement.java:88)
at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at bsh.BSHBlock.eval(BSHBlock.java:80)
at bsh.BSHBlock.eval(BSHBlock.java:46)
at bsh.BSHForStatement.eval(BSHForStatement.java:111)
at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at bsh.BSHBlock.eval(BSHBlock.java:80)
at bsh.BshMethod.invokeImpl(BshMethod.java:371)
at bsh.BshMethod.invoke(BshMethod.java:267)
at bsh.BshMethod.invoke(BshMethod.java:170)
at bsh.PreparsedScript.invoke(PreparsedScript.java:66)
at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:100)
... 9 more
--------------------------------------------------------------------------------------------------------------------------------------
Ich bin als Admin angemeldet und habe ebenso ServerAdmin Rechte. Von daher denke ich, dass genanntes Problem eher beim Abholen des PermissionService liegt. Denn der ClientPermissionService hat anscheinend keinen schreibenden Zugriff auf die groups.xml im ServerMonitoring.
Könntet Ihr mir das weiterhelfen?
Die Skript-Umsetzung noch mal als Anhang. Danke!
Viele Grüße,
Thomas