| SessionImpl |

    1   /*
    2    *  SessionImpl.java
    3    *
    4    *  Copyright (c) 1998-2001, The University of Sheffield.
    5    *
    6    *  This file is part of GATE (see http://gate.ac.uk/), and is free
    7    *  software, licenced under the GNU Library General Public License,
    8    *  Version 2, June 1991 (in the distribution as file licence.html,
    9    *  and also available at http://gate.ac.uk/gate/licence.html).
    10   *
    11   *  Marin Dimitrov, 19/Sep/2001
    12   *
    13   *  $Id: SessionImpl.java,v 1.7 2001/10/30 12:45:40 valyt Exp $
    14   */
    15
    16  package gate.security;
    17
    18  import junit.framework.*;
    19
    20  import gate.persist.PersistenceException;
    21
    22  public class SessionImpl implements Session {
    23
    24    /** ID of the session */
    25    private Long  id;
    26
    27    /** User associated with the session */
    28    private User  user;
    29
    30    /** Group associated with the session
    31     *  a user may be member of many groups, but at
    32     *  login time only one could be specified */
    33    private Group group;
    34
    35    /** sesion timeout (in minutes)
    36     *  @see  AccessControllerImpl.DEFAULT_SESSION_TIMEOUT_MIN
    37     *  */
    38    private int   timeout;
    39
    40    /** TRUE if user associated with the session is in the
    41     *  ADMINS user group, otherwise FALSE */
    42    private boolean isPrivileged;
    43
    44    /** --- */
    45    public SessionImpl(Long id,User usr,Group grp, int timeout, boolean isPrivileged) {
    46
    47      this.id = id;
    48      this.user = usr;
    49      this.group = grp;
    50      this.timeout = timeout;
    51      this.isPrivileged = isPrivileged;
    52    }
    53
    54    /* Session interface */
    55
    56    /** returns the session ID */
    57    public Long getID() {
    58
    59      return this.id;
    60    }
    61
    62    /** returns the user associated with the session */
    63    public User getUser() {
    64
    65      return this.user;
    66    }
    67
    68    /**
    69     *  returns the group associated with the session
    70     *  a user may be member of many groups, but at
    71     *  login time only one could be specified
    72     *
    73     */
    74    public Group getGroup() {
    75
    76      return this.group;
    77    }
    78
    79    /** TRUE if user associated with the session is in the
    80     *  ADMINS user group, otherwise FALSE */
    81    public boolean isPrivilegedSession() {
    82
    83      return this.isPrivileged;
    84    }
    85
    86
    87
    88    /* misc methods */
    89
    90
    91    /** returns the timeout (in minutes) of the session
    92     *
    93     *  @see  AccessControllerImpl.DEFAULT_SESSION_TIMEOUT_MIN
    94     *
    95     *  */
    96    public int getTimeout() {
    97
    98      return this.timeout;
    99    }
    100
    101
    102   /**
    103    *
    104    *  this one is necessary for the contains() operations in Lists
    105    *  It is possible that two users have two different GroupImpl that refer
    106    *  to the very same GATE group in the DB, because they got it from the security
    107    *  factory at different times. So we assume that two instances refer the same
    108    *  GATE group if NAME1==NAME2
    109    *
    110    *  */
    111   public boolean equals(Object obj)
    112   {
    113     Assert.assertTrue(obj instanceof Session);
    114
    115     Session s2 = (Session)obj;
    116
    117     return (this.id.equals(s2.getID()));
    118   }
    119
    120 }
    121

| SessionImpl |