X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2FUiAdminUtils.java;h=14762632ecb86153775577b29d450afa564b0396;hb=89ad04528a66488eb3ad6f51c198d5df3c81b04c;hp=d1596190a906b3a7812046a13268dc833fa0a974;hpb=94c54deff25c97eb8143594c15c2a3dea06c5811;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java index d1596190a..14762632e 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java @@ -1,23 +1,32 @@ package org.argeo.security.ui.admin.internal; -import java.security.AccessController; -import java.security.Principal; +import javax.transaction.UserTransaction; -import javax.security.auth.Subject; -import javax.security.auth.x500.X500Principal; +import org.argeo.ArgeoException; +import org.argeo.security.ui.admin.internal.providers.UserTransactionProvider; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.services.ISourceProviderService; /** First effort to centralize back end methods used by the user admin UI */ public class UiAdminUtils { - public final static String getUsername() { - Subject subject = Subject.getSubject(AccessController.getContext()); - Principal principal = subject.getPrincipals(X500Principal.class) - .iterator().next(); - return principal.getName(); - - } - /* * INTERNAL METHODS: Below methods are meant to stay here and are not part * of a potential generic backend to manage the useradmin */ + /** Easily notify the ActiveWindow that the transaction had a state change */ + public final static void notifyTransactionStateChange( + UserTransaction userTransaction) { + try { + IWorkbenchWindow aww = PlatformUI.getWorkbench() + .getActiveWorkbenchWindow(); + ISourceProviderService sourceProviderService = (ISourceProviderService) aww + .getService(ISourceProviderService.class); + UserTransactionProvider esp = (UserTransactionProvider) sourceProviderService + .getSourceProvider(UserTransactionProvider.TRANSACTION_STATE); + esp.fireTransactionStateChange(); + } catch (Exception e) { + throw new ArgeoException("Unable to begin transaction", e); + } + } } \ No newline at end of file