1 package org
.argeo
.cms
.e4
.parts
;
3 import static org
.argeo
.cms
.ui
.util
.CmsUiUtils
.lbl
;
4 import static org
.argeo
.cms
.ui
.util
.CmsUiUtils
.txt
;
6 import java
.security
.AccessController
;
7 import java
.time
.ZonedDateTime
;
9 import javax
.annotation
.PostConstruct
;
10 import javax
.security
.auth
.Subject
;
12 import org
.argeo
.cms
.auth
.CmsSession
;
13 import org
.argeo
.cms
.auth
.CurrentUser
;
14 import org
.eclipse
.swt
.layout
.GridLayout
;
15 import org
.eclipse
.swt
.widgets
.Composite
;
16 import org
.osgi
.framework
.BundleContext
;
17 import org
.osgi
.framework
.FrameworkUtil
;
19 /** A canonical view of the logged in user. */
20 public class EgoDashboard
{
21 private BundleContext bc
= FrameworkUtil
.getBundle(EgoDashboard
.class).getBundleContext();
24 public void createPartControl(Composite p
) {
25 p
.setLayout(new GridLayout());
26 String username
= CurrentUser
.getUsername();
28 lbl(p
, "<strong>" + CurrentUser
.getDisplayName() + "</strong>");
31 roles
: for (String role
: CurrentUser
.roles()) {
32 if (username
.equals(role
))
37 Subject subject
= Subject
.getSubject(AccessController
.getContext());
38 if (subject
!= null) {
39 CmsSession cmsSession
= CmsSession
.getCmsSession(bc
, subject
);
40 ZonedDateTime loggedIndSince
= cmsSession
.getCreationTime();
42 txt(p
, cmsSession
.getUuid().toString());
43 lbl(p
, "Logged in since:");
44 txt(p
, loggedIndSince
.toString());