Thomas1
I'm new here

Wie erhalte ich über ein Skript den PermissionService?

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

0 Kudos
3 Replies
Peter_Jodeleit
Crownpeak employee

Hallo Thomas,

Doch wenn ich context.getConnection().getService("PermissionService") aufrufe, erhalte ich immer nur den ClientPermissionService.

Das ist korrekt so.

Zudem bekomme ich beim speichern der GroupRoot per save() direkt den Fehler:

[..]
Target exception: java.lang.SecurityException: Not an admin user!

Ist der Benutzer "Server Admin"? Und der "Administrator-Modus" (Menü "Projekt") aktiviert?

Gruß, Peter

Peter
0 Kudos

Hallo Peter,

ja, dies habe ich mehrmals überprüft. Siehe Screenshots.

Admin.PNG

Admin_2.PNG

Leider bekomme ich die gleiche Fehlermeldung.

Viele Grüße,

Thomas

0 Kudos

So ad hoc habe ich dann auch keine Idee, wieso das nicht funktioniert, sorry. Wende dich am besten an unseren Support, die können dir da bestimmt am schnellsten helfen.

Peter
0 Kudos