package multimonster.usermanager; import java.rmi.RemoteException; import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import multimonster.common.Action; import multimonster.common.AuthData; import multimonster.common.User; import multimonster.common.UserGroup; import multimonster.common.UserIdentifier; import multimonster.common.media.MOGroup; import multimonster.common.media.MOIdentifier; import multimonster.exceptions.MultiMonsterException; import multimonster.systemadministration.QueryManager; import org.apache.log4j.Logger; /** * * @author Marc Iseler * * @ejb.bean name = "UserManagerImpl" * display-name = "UserManagerFacade SessionBean" * description = "The Facade of the UserManager-Package of MultiMonster" * view-type = "remote" * jndi-name = "multimonster/edit/UserManagerFacade" * */ public class UserManagerImplBean implements UserManagerFacade, SessionBean { private SessionContext ctx; private Logger log; private RightsManager rightMan; private Authenticator authcator; private GroupManager groupMan; /** * @ejb.interface-method view-type = "remote" */ public boolean checkUserAuth(AuthData authData) { return authcator.checkUserAuth(authData); } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#logout(multimonster.common.UserIdentifier) */ /** * @ejb.interface-method view-type = "remote" */ public void logout(UserIdentifier uid) { log.debug("logout() - " + uid.getUid()); } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#createUser() */ /** * @ejb.interface-method view-type = "remote" */ public void createUser(UserIdentifier UserID, Object sharedSecret) { log.debug("createUser()"); String uid = UserID.getUid(); String passw = sharedSecret.toString(); QueryManager query = new QueryManager(); int connNr = query.reserveConnection(); try { query.dbOpInsert( "insert into mmUser (username, passwd) values ('" + uid + "', '" + passw + "');", connNr); } catch (MultiMonsterException e) { // TODO Auto-generated catch block e.printStackTrace(); } query.bringBackConn(connNr); } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#remUser() */ /** * @ejb.interface-method view-type = "remote" */ public boolean remUser(UserIdentifier UserID) { log.debug("remUser()"); String uid = UserID.getUid(); QueryManager query = new QueryManager(); int connNr = query.reserveConnection(); try { query.dbOpInsert( "delete mmUser where username = '" + uid + "';", connNr); } catch (MultiMonsterException e) { log.error("Was not able to remove User " + uid ); return false; } query.bringBackConn(connNr); return true; } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#createUsergroup() */ /** * @ejb.interface-method view-type = "remote" */ public int createUsergroup() { log.debug("createUsergroup()"); return groupMan.createUsergroup(); } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#remUsergroup(int) */ /** * @ejb.interface-method view-type = "remote" */ public void remUsergroup(int groupID) { log.debug("remUsergroup()"); groupMan.remUsergroup(groupID); } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#addUserToGroup(multimonster.common.UserIdentifier, int) */ /** * @ejb.interface-method view-type = "remote" */ public void addUserToGroup(UserIdentifier user, int group) { log.debug("addUserToGroup()"); } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#remUserFromGroup(multimonster.common.UserIdentifier, int) */ /** * @ejb.interface-method view-type = "remote" */ public void remUserFromGroup(UserIdentifier user, int group) { log.debug("remUserFromGroup()"); } /** * @see UserManagerFacade#getAllUsergroups() * @ejb.interface-method view-type = "remote" */ public UserGroup[] getAllUsergroups() { GroupManager grpMan = new GroupManager(); return grpMan.getAllUsergroups(); } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#allUserInGroup(int) */ /** * @ejb.interface-method view-type = "remote" */ public User[] allUserInGroup(int groupID) { log.debug("allUserInGroup()"); return groupMan.allUserInGroup(groupID); } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#isUserInGroup(multimonster.common.UserIdentifier, int) */ /** * @ejb.interface-method view-type = "remote" */ public boolean isUserInGroup(UserIdentifier user, int group) { log.debug("isUserInGroup()"); return false; } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#changeUser(multimonster.common.User) */ /** * @ejb.interface-method view-type = "remote" */ public void changeUser(User user) { log.debug("changeUser()"); } /* (non-Javadoc) * @see multimonster.usermanager.UserManagerFacade#login(multimonster.common.UserIdentifier, multimonster.common.AuthData) */ /** * @ejb.interface-method view-type = "remote" */ public boolean login(AuthData authData) { log.debug("login()"); Authenticator auth = new Authenticator(); return auth.checkUserAuth(authData); } /** * @ejb.interface-method view-type = "remote" */ public boolean isActionAllowed( UserIdentifier user, MOIdentifier mediaObject, Action action) { log.debug("isActionAllowed() - delegate to Subcomponent"); return rightMan.isActionAllowed(user, mediaObject, action); } /** * @ejb.interface-method view-type = "remote" */ public void grantRight( int usergroup, MOGroup mediaObjectGroup, Action action) { log.debug("grantRight() - delegate to Subcomponent"); rightMan.grantRight(usergroup, mediaObjectGroup, action); } /** * @ejb.interface-method view-type = "remote" */ public void revokeRight(int usergroup, MOGroup moGroup, Action newAction) { log.debug("revokeRight() - delegate to Subcomponent"); rightMan.revokeRight(usergroup, moGroup, newAction); } /* (non-Javadoc) * @see javax.ejb.SessionBean#ejbActivate() */ public void ejbActivate() throws EJBException, RemoteException { } /* (non-Javadoc) * @see javax.ejb.SessionBean#ejbPassivate() */ public void ejbPassivate() throws EJBException, RemoteException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.ejb.SessionBean#ejbRemove() */ public void ejbRemove() throws EJBException, RemoteException { // TODO Auto-generated method stub } /* (non-Javadoc) * @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext) */ public void setSessionContext(SessionContext context) throws EJBException, RemoteException { ctx = context; } /** * @ejb.create-method */ public void ejbCreate() { log = Logger.getLogger(this.getClass()); // RightsManager rightMan = new RightsManager(); // Authenticator authcator = new Authenticator(); // GroupManager groupMan = new GroupManager(); } }