sarahfinkel
Elite Observer

Probleme bei Gruppenausschluß in Workflows

Jump to solution

Liebe Community,

bei unserem Workflow "Freigabe anfordern" haben wir folgende Anforderung.

Wird eine Freigabe angefordert, so soll die E-Mail nur an die zugehörigen Chefredakteure, die das Recht "Freigabe" auf dem entsprechenden Element besitzen, gesendet werden.

Dies wurde gelöst, indem die E-Mail an den "Bearbeiter" gesendet wird, da für die folgende Tranistion zum Prüfen der Freigabeanforderung das benötigte Recht "Freigabe" am Zielobjekt gesetzt ist.

Allerdins ist es nun so, dass die Gruppe "Administrators" auf alle Elemente das Freigabe-Recht besitzt und deswegen bei einer Freigabeanforderung auch immer die entsprechenden E-Mail bekommt. Die E-Mail soll aber nur an die zugehörigen Chefredakteure gehen, die Administratoren sollen aber das Recht auf Freigabe behalten.

Wir haben versucht dies über den Gruppenausschluß der Transition zu lösen:

rechte_transition_pruefen.jpg

Leider wird die E-Mail trotzdem noch an die Administrators-Gruppe gesendet (die Gruppe wird ebenfalls noch als nächster Bearbeiter im Arbeitsablauf angezeigt).

Geht die Anforderung überhaupt über den Gruppenausschluß? Geht diese Anforderung überhaupt? Smiley Wink

Über Eure Hilfe würde ich mich sehr freuen!

Herzliche Grüße

Sarah Münich

0 Kudos
1 Solution

Accepted Solutions

Hallo Sarah,

Du kannst Dein Anwendungsfall mit einem zwischengeschalteten Skript lösen. Du ermittelst alle in Deinem Projekt existierenden Gruppen und prüfst mit Hilfe der getPermission(Group group) Methode welche Gruppen auf Deinem freizugebenden Element das Recht 'CAN_RELEASE' haben. Anschließend sendest du den Gruppenmitgliedern eine E-Mail. Das könnte dann in etwa wie folgt aussehen:

//!Beanshell

import de.espirit.firstspirit.access.Connection;

import de.espirit.firstspirit.access.project.Project;

import de.espirit.firstspirit.access.project.Group;

import de.espirit.firstspirit.access.store.Permission;

element = context.getElement();

connection = context.getConnection();

project = connection.getProjectById(11);

groups = project.getGroups();

for(Group group : groups) {

  if (element.getPermission(group).canRelease()) {

    context.logInfo(group.getName() + " canRelease = true");

  }

}

// TODO E-Mail

EDIT: Die Gruppe Administrator solltest Du dann natürlich ausschließen. Smiley Happy

Viele Grüße

Rene

View solution in original post

0 Kudos
4 Replies
MichaelaReydt
Community Manager

Hallo Sarah,

im Email-Tab existiert im Bereich "Verteiler" ein Feld "Liste". Meines Wissens nach muss für die Umsetzung deiner Anforderung an dieser Stelle lediglich die Gruppe "Chefredakteure" ausgewählt werden, während die anderen Checkboxen deaktiviert sind.

Für weitere Informationen siehe auch Kapitel 4.5.4.2 des Handbuchs für Entwickler (Grundlagen).

Viele Grüße

Michaela

0 Kudos

Hallo Michaela,

danke für deine Antwort!

Leider können wir unsere Kundenanfoderung nicht über die Liste lösen (das war vorher der Fall Smiley Wink), da es hier nicht um die Gruppe "Chefredakteure" geht.

Die Redakteure, die das Freigabe-Recht besitzen, sind von Element zu Element unterschiedlich.

Lg, Sarah

0 Kudos

Hallo Sarah,

Du kannst Dein Anwendungsfall mit einem zwischengeschalteten Skript lösen. Du ermittelst alle in Deinem Projekt existierenden Gruppen und prüfst mit Hilfe der getPermission(Group group) Methode welche Gruppen auf Deinem freizugebenden Element das Recht 'CAN_RELEASE' haben. Anschließend sendest du den Gruppenmitgliedern eine E-Mail. Das könnte dann in etwa wie folgt aussehen:

//!Beanshell

import de.espirit.firstspirit.access.Connection;

import de.espirit.firstspirit.access.project.Project;

import de.espirit.firstspirit.access.project.Group;

import de.espirit.firstspirit.access.store.Permission;

element = context.getElement();

connection = context.getConnection();

project = connection.getProjectById(11);

groups = project.getGroups();

for(Group group : groups) {

  if (element.getPermission(group).canRelease()) {

    context.logInfo(group.getName() + " canRelease = true");

  }

}

// TODO E-Mail

EDIT: Die Gruppe Administrator solltest Du dann natürlich ausschließen. Smiley Happy

Viele Grüße

Rene

0 Kudos

Hallo Rene,

vielen Dank für den Tipp!

Wir werden dies versuchen.

Weißt du auch warum das nicht über den Gruppenausschluß funktioniert?

Lg, Sarah

0 Kudos