Class Session

All Implemented Interfaces:
AccessControlled, Identifiable

public class Session
extends BasicItem
A session represents the time between login and logout for a single user. Hence, a session item is automatically created when a user logs in, and is automatically updated when the user logs out.

A session said to be active when the user is logged in.

Version:
2.0
Author:
Nicklas
  • Field Details

    • TYPE

      public static final Item TYPE
      The type of item represented by this class.
      See Also:
      Item.SESSION, getType()
    • RUNTIME_FILTER

      private static final QueryRuntimeFilter RUNTIME_FILTER
      This filter will limit a query to only return sessions for the logged in user unless the logged in user has generic read permission.
  • Constructor Details

  • Method Details

    • getById

      public static Session getById​(DbControl dc, int id) throws ItemNotFoundException, PermissionDeniedException, BaseException
      Get a Session item when you know the ID.
      Parameters:
      dc - The DbControl which will be used for permission checking and database access.
      id - The ID of the item to load
      Returns:
      The Session item
      Throws:
      ItemNotFoundException - If an item with the specified ID is not found
      PermissionDeniedException - If the logged in user doesn't have Permission.READ permission to the item
      BaseException - If there is another error
    • getQuery

      public static ItemQuery<Session> getQuery​(User user)
      Get a query configured to retrieve sessions for the specified user.
      Parameters:
      user - The user to retreive sessions for or null to load all sessions.
      Returns:
      An ItemQuery object
    • autoLogout

      static int autoLogout()
      Cleanup method that sets a logout-time on all sessions that doesn't have a logout time.
      Returns:
      The number of sessions updated
      Since:
      3.18
    • getData

      SessionData getData()
      Description copied from class: BasicItem
      Get the BasicData object that holds all data for this item.
      Specified by:
      getData in class BasicItem
    • getType

      public Item getType()
      Description copied from interface: Identifiable
      Get the type of item represented by the object. The returned value is one of the values defined in the Item enumeration.
      Returns:
      A value indicating the type of item
    • initPermissions

      void initPermissions​(int granted, int denied) throws BaseException
      READ permission is granted if the logged in user is the owner of this session. All other permissions are denied.
      Overrides:
      initPermissions in class BasicItem
      Parameters:
      granted - Permissions that have been granted by the subclass
      denied - Permissions that have been denied by the subclass
      Throws:
      BaseException - If the permissions couldn't be initialised
    • getUser

      public User getUser() throws PermissionDeniedException, BaseException
      Get the user that logged in with this session.
      Returns:
      The User item
      Throws:
      PermissionDeniedException - If the logged in user doesn't have Permission.READ permission
      BaseException - If there is another error
    • getClient

      public Client getClient() throws PermissionDeniedException, BaseException
      Get the client application the user was using in this session.
      Returns:
      A Client item, or null if not known
      Throws:
      PermissionDeniedException - If the logged in user doesn't have Permission.READ permission
      BaseException - If there is another error
    • getDevice

      Get the device the user was using in this session.
      Returns:
      A UserDevice item, or null if not known
      Throws:
      PermissionDeniedException - If the logged in user doesn't have Permission.READ permission
      BaseException - If there is another error
      Since:
      3.12
    • getLoginTime

      public Date getLoginTime()
      Get the date and time the user logged in.
      Returns:
      A Date object with the login time
    • getLogoutTime

      public Date getLogoutTime()
      Get the date and time the user logged out.
      Returns:
      A Date object with the logout time
    • getLoginComment

      public String getLoginComment()
      Get the login comment.
      Returns:
      A String object with the login comment
    • getImpersonated

      public boolean getImpersonated()
      Check if another user was acting as the user of this session.
      Returns:
      TRUE if the user was impersonated, FALSE otherwise
    • getRemoteId

      public String getRemoteId()
      Get the remote ID of the host the user used for this session. Typically it is the IP-address of the user's computer.
      Returns:
      A String object with remote ID
    • getLocation

      public String getLocation()
      Get the location of the host the user used for this session.
      Returns:
      A String object with location or null if not known
      Since:
      3.12
    • getLocationLatitude

      public Float getLocationLatitude()
      Get the location latitude of the host the user used for this session.
      Returns:
      A Float object with latitude or null if not known
      Since:
      3.12
    • getLocationLongitude

      public Float getLocationLongitude()
      Get the location longitude of the host the user used for this session.
      Returns:
      A Float object with longitude or null if not known
      Since:
      3.12
    • getAuthenticationMethod

      public String getAuthenticationMethod()
      Get the authentication method that was used to login to this session.
      Since:
      3.9