001: package org.apache.turbine.services.session;
002:
003: /*
004: * Licensed to the Apache Software Foundation (ASF) under one
005: * or more contributor license agreements. See the NOTICE file
006: * distributed with this work for additional information
007: * regarding copyright ownership. The ASF licenses this file
008: * to you under the Apache License, Version 2.0 (the
009: * "License"); you may not use this file except in compliance
010: * with the License. You may obtain a copy of the License at
011: *
012: * http://www.apache.org/licenses/LICENSE-2.0
013: *
014: * Unless required by applicable law or agreed to in writing,
015: * software distributed under the License is distributed on an
016: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017: * KIND, either express or implied. See the License for the
018: * specific language governing permissions and limitations
019: * under the License.
020: */
021:
022: import java.util.Collection;
023: import javax.servlet.http.HttpSession;
024:
025: import org.apache.turbine.om.security.User;
026: import org.apache.turbine.services.pull.ApplicationTool;
027:
028: /**
029: * A pull tool for accessing the SessionService from a velocity template.
030: *
031: * @author <a href="mailto:quintonm@bellsouth.net">Quinton McCombs</a>
032: * @version $Id: SessionTool.java 534527 2007-05-02 16:10:59Z tv $
033: */
034: public class SessionTool implements ApplicationTool {
035: public void init(Object o) {
036: }
037:
038: public void refresh() {
039: }
040:
041: /**
042: * Gets a list of the active sessions
043: *
044: * @return List of HttpSession objects
045: */
046: public Collection getActiveSessions() {
047: return TurbineSession.getActiveSessions();
048: }
049:
050: /**
051: * Adds a session to the current list. This method should only be
052: * called by the listener.
053: *
054: * @param session Session to add
055: */
056: public void addSession(HttpSession session) {
057: TurbineSession.addSession(session);
058: }
059:
060: /**
061: * Removes a session from the current list. This method should only be
062: * called by the listener.
063: *
064: * @param session Session to remove
065: */
066: public void removeSession(HttpSession session) {
067: TurbineSession.removeSession(session);
068: }
069:
070: /**
071: * Determines if a given user is currently logged in. The actual
072: * implementation of the User object must implement the equals()
073: * method. By default, Torque based objects (liek TurbineUser)
074: * have an implementation of equals() that will compare the
075: * result of getPrimaryKey().
076: *
077: * @param user User to check for
078: * @return true if the user is logged in on one of the
079: * active sessions.
080: */
081: public boolean isUserLoggedIn(User user) {
082: return TurbineSession.isUserLoggedIn(user);
083: }
084:
085: /**
086: * Gets a collection of all user objects representing the users currently
087: * logged in. This will exclude any instances of anonymous user that
088: * Turbine will use before the user actually logs on.
089: *
090: * @return collection of org.apache.turbine.om.security.User objects
091: */
092: public Collection getActiveUsers() {
093: return TurbineSession.getActiveUsers();
094: }
095:
096: /**
097: * Gets the User object of the the specified HttpSession.
098: *
099: * @param session
100: * @return
101: */
102: public User getUserFromSession(HttpSession session) {
103: return TurbineSession.getUserFromSession(session);
104: }
105:
106: /**
107: * Get a collection of all session on which the given user
108: * is logged in.
109: *
110: * @param user the user
111: * @return Collection of HtttSession objects
112: */
113: public Collection getSessionsForUser(User user) {
114: return TurbineSession.getSessionsForUser(user);
115: }
116: }
|