Alexander_Haufl
I'm new here

Scripte als Admin laufen lassen

Jump to solution

Hallo zusammen,

ich möchte ein Script welches vom Editor ausgeführt werden kann als Admin laufen lassen. Ich habe mir das so gedacht, dass wenn ich mir den AdminService hole und mit dem dann einen neue Connection dass es dann eigentlich gehen müsste. Wenn ich den User im Script ausgebe dann liefert die Connection den aktuell eingelogten User zurück.

Ist diese in dem Moment mit Adminrechten ausgestatet, bzw wie kann ich ein Script als Admin laufen lassen auch wenn dieses nicht als Admin gestartet wird?

        Connection connection = context.getConnection();

        Connection adminConnection = connection.getAdminService().getConnection();

        long projectId = context.getProject().getId();

        Content2 dataSource = (Content2) context.getStoreElement();

        String dataSourceName = dataSource.getEntityType().toString();

        Project project = adminConnection.getProjectById(projectId);

        UserService userService = project.getUserService();

        Store contentStore = userService.getStore(Type.CONTENTSTORE,false);

        Content2 content = ((ContentStoreRoot) contentStore).getContent2ByName(dataSourceName);

Gruß Alex

0 Kudos
1 Solution

Accepted Solutions
gockel
Crownpeak employee
Connection adminConnection = connection.getAdminService().getConnection();

liefert die aktuelle Connection und keine neue.

Es muss für diesen Fall eine "neue" Connection über den ConnectionManager erstellt werden. Ich würde empfehlen hierfür dann einen technischen Benutzer im Projekt vorzusehen, der dann auch nur mit den entsprechenden Rechten (ggfls. Projektadminrechten) ausgestattet ist, sofern keine Funktionen aufgerufen werden sollen, für die Serveradminrechte benötigt werden.

View solution in original post

0 Kudos
1 Reply
gockel
Crownpeak employee
Connection adminConnection = connection.getAdminService().getConnection();

liefert die aktuelle Connection und keine neue.

Es muss für diesen Fall eine "neue" Connection über den ConnectionManager erstellt werden. Ich würde empfehlen hierfür dann einen technischen Benutzer im Projekt vorzusehen, der dann auch nur mit den entsprechenden Rechten (ggfls. Projektadminrechten) ausgestattet ist, sofern keine Funktionen aufgerufen werden sollen, für die Serveradminrechte benötigt werden.

0 Kudos