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