Search the FirstSpirit Knowledge Base
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:
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?
Über Eure Hilfe würde ich mich sehr freuen!
Herzliche Grüße
Sarah Münich
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.
Viele Grüße
Rene
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
Hallo Michaela,
danke für deine Antwort!
Leider können wir unsere Kundenanfoderung nicht über die Liste lösen (das war vorher der Fall ), da es hier nicht um die Gruppe "Chefredakteure" geht.
Die Redakteure, die das Freigabe-Recht besitzen, sind von Element zu Element unterschiedlich.
Lg, Sarah
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.
Viele Grüße
Rene
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