/*
* $Id: IWUserContext.java,v 1.11 2007/03/28 10:09:35 civilis Exp $
* Created in 2002 by Tryggvi Larusson
*
* Copyright (C) 2002-2005 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package com.idega.idegaweb;
import java.security.Principal;
import java.util.Locale;
import javax.servlet.http.HttpSession;
//import com.idega.core.accesscontrol.business.AccessController;
//import com.idega.core.component.data.ICObject;
import com.idega.user.data.User;
//import com.idega.presentation.PresentationObject;
import com.idega.user.business.UserProperties;
/**
* <p>
* This Context object lives on in "session" scope
* and gives access to some idegaWeb specific session
* bound instances such as the idegaWeb User object.
* </p>
*
* Last modified: $Date: 2007/03/28 10:09:35 $ by $Author: civilis $
*
* @author <a href="mailto:tryggvil@idega.com">Tryggvi Larusson</a>
* @version $Revision: 1.11 $
*/
public interface IWUserContext extends java.io.Serializable{
public Object getSessionAttribute(String attributeName);
public void setSessionAttribute(String attributeName,Object attribute);
public String getSessionId();
public void removeSessionAttribute(String attributeName);
public Locale getCurrentLocale();
public void setCurrentLocale(Locale locale);
/**
* @deprecated Replaced with getCurrentUser()
**/
public com.idega.core.user.data.User getUser();
//public AccessController getAccessController();
public IWApplicationContext getApplicationContext();
public UserProperties getUserProperties();
/**
* Gets the current user associated with this context
* <br>This method is meant to replace getUser()
* @return The current user if there is one associated with the current context. If there is none the method returns null.
**/
public User getCurrentUser();
/**
* @see javax.servlet.http.HttpServletRequest#getUserPrincipal()
* @return Returns the user principal for the current user or null if he is not logged in
*/
public Principal getUserPrincipal();
/**
* @see javax.servlet.http.HttpServletRequest#getRemoteUser()
* @return Returns the loginname of the current user or null if he is not logged in
*/
public String getRemoteUser();
/**
* @see javax.servlet.http.HttpServletRequest#isUserInRole(java.lang.String)
* @return Returns true if user is in role, else false;
*/
public boolean isUserInRole(String role);
//temp
/*public boolean hasPermission(String permissionKey, PresentationObject obj);
public boolean hasViewPermission(PresentationObject obj);
public boolean hasEditPermission(PresentationObject obj);
public boolean hasPermission(List groupIds, String permissionKey, PresentationObject obj);
public boolean hasFilePermission(String permissionKey, int id);
public boolean hasDataPermission(String permissionKey, ICObject obj, int entityRecordId);
public boolean hasViewPermission(List groupIds, PresentationObject obj);
public boolean hasEditPermission(List groupIds, PresentationObject obj);*/
public boolean isSuperAdmin();
public boolean isLoggedOn();
public abstract HttpSession getSession();
}