//idega 2001 - Tryggvi Larusson
/*
*Copyright 2002 idega.is All Rights Reserved.
*/
package com.idega.idegaweb;
import java.security.Principal;
import java.util.Set;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import com.idega.core.accesscontrol.business.LoggedOnInfo;
import com.idega.core.accesscontrol.business.LoginBusinessBean;
import com.idega.core.accesscontrol.jaas.IWUserPrincipal;
import com.idega.presentation.IWContext;
/**
* Title: A default implementation of IWUserContext
* Description:
* Copyright: Copyright (c) 2002
* Company: idega
* @author <a href="tryggvi@idega.is">Tryggvi Larusson</a>
* @version 1.0
*/
public class IWUserContextImpl extends IWContext implements IWUserContext{
private HttpSession session;
public IWUserContextImpl(HttpSession session,ServletContext sc){
this.session=session;
this.setServletContext(sc);
}
public HttpSession getSession(){
return this.session;
}
/* (non-Javadoc)
* @see com.idega.idegaweb.IWUserContext#getUserPrincipal()
*/
public Principal getUserPrincipal() {
String userName = getRemoteUser();
if(userName != null){
return new IWUserPrincipal(userName);
} else {
return null;
}
}
/* (non-Javadoc)
* @see com.idega.idegaweb.IWUserContext#isUserInRole(java.lang.String)
*/
public boolean isUserInRole(String role) {
LoggedOnInfo lInfo = LoginBusinessBean.getLoggedOnInfo(this);
if(lInfo != null){
Set roles = lInfo.getUserRoles();
if(roles != null){
return roles.contains(role);
}
}
return false;
}
/* (non-Javadoc)
* @see com.idega.idegaweb.IWUserContext#getRemoteUser()
*/
public String getRemoteUser() {
LoggedOnInfo lInfo = LoginBusinessBean.getLoggedOnInfo(this);
if(lInfo != null){
return lInfo.getLogin();
}
return null;
}
}