- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
User-Klasse nicht in der Api vorhanden
Hallo zusammen,
wenn man in der Beanshell (GuiScriptContext) folgende Zeile ausfรผhrt:
context.getConnection().getService(AdminService.class).getUserStorage().getUserByLogin(name).getClass();
erhรคlt man:
class de.espirit.firstspirit.server.usermanagement.UserImpl
fรผhrt man die selbe Zeile in einem WorkflowScript (WorkflowScriptContext) aus erhรคlt man:
class de.espirit.firstspirit.access.UserImpl
Die erste von beiden Klassen existiert in der Api nicht, ein import dieser ist auch nicht mรถglich (Klasse nicht bekannt).
Der Hintergrund ist der, dass die Ergebnisse die man beim Weiterverarbeiten bekommt sehr unterschiedlich sind.
Weiร jemand wieso das so ist und wie ich an die Klasse ran komme und wo ich diese finde, hab auch schon in der Developer-Api nachgeschaut.
Wir haben die Version 4.2.468
Mit freundlichen Grรผรen
Alexander Haufler
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
am besten sollte man hier gegen das Interface arbeiten nicht gegen die Implementierungs-Klasse.
also de.espirit.firstspirit.access.User
de.espirit.firstspirit.server.usermanagement.UserImpl ist vom Typ de.espirit.firstspirit.access.User
siehe auch JavaDoc der API - hier liefert UserStorage#getUserByID(long id) => de.espirit.firstspirit.access.User
bei einer println "DEbug-Ausgabe" zur Laufzeit wird natuerlich die konkrete Implementierungs-Klasse ausgegeben.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ja das mag schon sein, aber die User (de.espirit.firstspirit.access.User) haben keine Zugehรถrigkeit zu externen Gruppen.
Die User (de.espirit.firstspirit.server.usermanagement.UserImpl) allerdings schon.
Ich mรถchte prรผfen ob ein User einer bestimmten externen (LDAP) Gruppe angehรถrt.
An dieser stelle scheitert man allerdings mit dem access.User.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
> aber die User (de.espirit.firstspirit.access.User) haben keine Zugehรถrigkeit zu externen Gruppen.
doch habe diese nur leider kommt man da nicht ueber die API dran bzw. ueber diese Weg ran.
man koennte natuerlich den weg ueber dss PRojekt bzw. Gruppen gehen, also in etwa ...
Project.getGroups(User user) und Group hat dann u.a. die Methode isExternal() ....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hier geht es aber nicht um die Gruppe sondern um den User, der User (de.espirit.firstspirit.access.User) gehรถrt in dem Fall nicht zur externen Gruppe, das ist ja das Problem.
Es gibt zwar in der Api die entsprechenden Methoden, die ich mittlerweile alle ausprobiert habe, auch das Beispiel รผber den Project zu gehen, der "fehlerhafte" Parameter in dem Fall ist ja auch nicht die Methode, sondern der User!!!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
> Ich mรถchte prรผfen ob ein User einer bestimmten externen (LDAP) Gruppe angehรถrt.
... Gruppen des User's holen, dann prรผfen, ich sehen das PRoblem nicht, denn de.espirit.firstspirit.server.usermanagement.UserImpl ist vom Typ de.espirit.firstspirit.access.User
> der "fehlerhafte" Parameter in dem Fall ist ja auch nicht die Methode, sondern der User!!!
wie sieht denn der Stack aus?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
das ist ja das Problem, der User hat keine Zugehรถrigkeit zu der externen Gruppe.
Ich mach das ja nicht seit gestern, und habe schon alle mรถglichen Api-Konstelationen ausprobiert.
Egal ich habe das Problem mittlerweile gelรถst, werde die Lรถsung hier aber nicht posten, da ich mich mit der Lรถsung eher in der Grauzone bewege.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Herr Haufler,
fรผr ein Projekt kรถnnen externe Gruppen definiert werden (Server- und Projektkonfigurationen / Projekt / Eigenschaften รคndern / Gruppen).
Fรผr die externe Gruppe kann der entsprechende LDAP-DN im Eingabefeld Externe Bezeichnung hinterlegt werden.
Zusรคtzlich kann fรผr die externe Gruppe festgelegt werden, ob die Gruppe als (Projekt-)Administratorengruppe gelten soll oder nicht.
Im einem Arbeitsablaufsskript kรถnnen im Anschluss die Gruppen des angemeldeten Benutzers mit dem folgenden Aufruf ermittelt werden:
context.getUserGroups()
(siehe auch Access-API Interface de.espirit.firstspirit.access.store.templatestore.WorkflowScriptContext bzw. de.espirit.firstspirit.access.ClientScriptContext#getUserGroups())
Fรผr jede Gruppe des angemeldeten Benutzers kann mit der Methode .isExternal() geprรผft werden, ob es sich bei der Gruppe um eine externe Gruppe handelt (oder nicht).
(siehe auch Access-API Interface de.espirit.firstspirit.access.project.Group#isExternal())
Viele Grรผรe,
Sascha Rusch
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Externe Gruppen unsterstรผtzen die Auflistung ihrer Benutzer nicht. Fรผr externe Gruppen ist es nur die Prรผfung mรถglich, ob ein bestimmter Benutzer in der Gruppe enthalten ist. Das geht รผber die Methode "Group.isMember(User)".

