diff src/main/java/edu/harvard/iq/dataverse/DataverseSession.java @ 10:a50cf11e5178

Rewrite LGDataverse completely upgrading to dataverse4.0
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 08 Sep 2015 17:00:21 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/edu/harvard/iq/dataverse/DataverseSession.java	Tue Sep 08 17:00:21 2015 +0200
@@ -0,0 +1,60 @@
+package edu.harvard.iq.dataverse;
+
+import edu.harvard.iq.dataverse.authorization.providers.builtin.BuiltinUserServiceBean;
+import edu.harvard.iq.dataverse.PermissionServiceBean.PermissionQuery;
+import edu.harvard.iq.dataverse.actionlogging.ActionLogRecord;
+import edu.harvard.iq.dataverse.actionlogging.ActionLogServiceBean;
+import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
+import edu.harvard.iq.dataverse.authorization.users.GuestUser;
+import edu.harvard.iq.dataverse.authorization.users.User;
+import edu.harvard.iq.dataverse.authorization.users.UserRequestMetadata;
+import java.io.Serializable;
+import javax.ejb.EJB;
+import javax.enterprise.context.SessionScoped;
+import javax.faces.context.FacesContext;
+import javax.inject.Named;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ *
+ * @author gdurand
+ */
+@Named
+@SessionScoped
+public class DataverseSession implements Serializable{
+    
+	private User user;
+	
+	@EJB
+	PermissionServiceBean permissionsService;
+	
+	@EJB
+	BuiltinUserServiceBean usersSvc;
+	
+    @EJB 
+    ActionLogServiceBean logSvc;
+    
+    public User getUser() {
+        if ( user == null ) {
+            user = new GuestUser();
+        }
+        
+        if (FacesContext.getCurrentInstance() != null) {
+            user.setRequestMetadata( new UserRequestMetadata((HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest()) );
+        }
+        return user;
+    }
+
+    public void setUser(AuthenticatedUser aUser) {
+        logSvc.log( 
+                new ActionLogRecord(ActionLogRecord.ActionType.SessionManagement,(aUser==null) ? "logout" : "login")
+                    .setUserIdentifier((aUser!=null) ? aUser.getIdentifier() : (user!=null ? user.getIdentifier() : "") ));
+        
+        this.user = aUser;
+    }
+
+	public PermissionQuery on( Dataverse d ) {
+		return permissionsService.userOn(user, d);
+	}
+
+}