package edu.harvard.iq.dataverse;
import edu.harvard.iq.dataverse.authorization.providers.builtin.BuiltinUserServiceBean;
import edu.harvard.iq.dataverse.PermissionServiceBean.StaticPermissionQuery;
import edu.harvard.iq.dataverse.actionlogging.ActionLogRecord;
import edu.harvard.iq.dataverse.actionlogging.ActionLogServiceBean;
import edu.harvard.iq.dataverse.authorization.users.GuestUser;
import edu.harvard.iq.dataverse.authorization.users.User;
import java.io.Serializable;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
/**
*
* @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 = GuestUser.get();
}
return user;
}
public void setUser(User 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 StaticPermissionQuery on( Dataverse d ) {
return permissionsService.userOn(user, d);
}
}