summaryrefslogtreecommitdiff
path: root/htdocs/docs/man/FS/session.html
blob: c714337be625503af54d49ff20b87765bb94836e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<HTML>
<HEAD>
<TITLE>FS::session - Object methods for session records</TITLE>
<LINK REV="made" HREF="mailto:perl@packages.debian.org">
</HEAD>

<BODY>

<A NAME="__index__"></A>
<!-- INDEX BEGIN -->

<UL>

	<LI><A HREF="#name">NAME</A></LI>
	<LI><A HREF="#synopsis">SYNOPSIS</A></LI>
	<LI><A HREF="#description">DESCRIPTION</A></LI>
	<LI><A HREF="#methods">METHODS</A></LI>
	<LI><A HREF="#version">VERSION</A></LI>
	<LI><A HREF="#bugs">BUGS</A></LI>
	<LI><A HREF="#see also">SEE ALSO</A></LI>
</UL>
<!-- INDEX END -->

<HR>
<P>
<H1><A NAME="name">NAME</A></H1>
<P>FS::session - Object methods for session records</P>
<P>
<HR>
<H1><A NAME="synopsis">SYNOPSIS</A></H1>
<PRE>
  use FS::session;</PRE>
<PRE>
  $record = new FS::session \%hash;
  $record = new FS::session {
    'portnum' =&gt; 1,
    'svcnum'  =&gt; 2,
    'login'   =&gt; $timestamp,
    'logout'  =&gt; $timestamp,
  };</PRE>
<PRE>
  $error = $record-&gt;insert;</PRE>
<PRE>
  $error = $new_record-&gt;replace($old_record);</PRE>
<PRE>
  $error = $record-&gt;delete;</PRE>
<PRE>
  $error = $record-&gt;check;</PRE>
<PRE>
  $error = $record-&gt;nas_heartbeat($timestamp);</PRE>
<P>
<HR>
<H1><A NAME="description">DESCRIPTION</A></H1>
<P>An FS::session object represents an user login session.  FS::session inherits
from FS::Record.  The following fields are currently supported:</P>
<DL>
<DT><STRONG><A NAME="item_sessionnum_%2D_primary_key">sessionnum - primary key</A></STRONG><BR>
<DD>
<DT><STRONG><A NAME="item_portnum_%2D_NAS_port_for_this_session_%2D_see_FS%3">portnum - NAS port for this session - see <A HREF=".././FS/port.html">the FS::port manpage</A></A></STRONG><BR>
<DD>
<DT><STRONG><A NAME="item_svcnum_%2D_User_for_this_session_%2D_see_FS%3A%3As">svcnum - User for this session - see <A HREF=".././FS/svc_acct.html">the FS::svc_acct manpage</A></A></STRONG><BR>
<DD>
<DT><STRONG><A NAME="item_login_%2D_timestamp_indicating_the_beginning_of_th">login - timestamp indicating the beginning of this user session.</A></STRONG><BR>
<DD>
<DT><STRONG><A NAME="item_logout_%2D_timestamp_indicating_the_end_of_this_us">logout - timestamp indicating the end of this user session.  May be null,
               which indicates a currently open session.</A></STRONG><BR>
<DD>
</DL>
<P>
<HR>
<H1><A NAME="methods">METHODS</A></H1>
<DL>
<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><BR>
<DD>
Creates a new session.  To add the session to the database, see <A HREF="#insert">insert</A>.
<P>Note that this stores the hash reference, not a distinct copy of the hash it
points to.  You can ask the object for a copy with the <EM>hash</EM> method.</P>
<P></P>
<DT><STRONG><A NAME="item_insert">insert</A></STRONG><BR>
<DD>
Adds this record to the database.  If there is an error, returns the error,
otherwise returns false.  If the `login' field is empty, it is replaced with
the current time.
<P></P>
<DT><STRONG><A NAME="item_delete">delete</A></STRONG><BR>
<DD>
Delete this record from the database.
<P></P>
<DT><STRONG><A NAME="item_replace_OLD_RECORD">replace OLD_RECORD</A></STRONG><BR>
<DD>
Replaces the OLD_RECORD with this one in the database.  If there is an error,
returns the error, otherwise returns false.  If the `logout' field is empty,
it is replaced with the current time.
<P></P>
<DT><STRONG><A NAME="item_check">check</A></STRONG><BR>
<DD>
Checks all fields to make sure this is a valid session.  If there is
an error, returns the error, otherwise returns false.  Called by the insert
and replace methods.
<P></P>
<DT><STRONG><A NAME="item_nas_heartbeat">nas_heartbeat</A></STRONG><BR>
<DD>
Heartbeats the nas associated with this session (see <A HREF=".././FS/nas.html">the FS::nas manpage</A>).
<P></P>
<DT><STRONG><A NAME="item_svc_acct">svc_acct</A></STRONG><BR>
<DD>
Returns the svc_acct record associated with this session (see <A HREF=".././FS/svc_acct.html">the FS::svc_acct manpage</A>).
<P></P></DL>
<P>
<HR>
<H1><A NAME="version">VERSION</A></H1>
<P>$Id: session.html,v 1.1 2001-04-23 12:41:57 ivan Exp $</P>
<P>
<HR>
<H1><A NAME="bugs">BUGS</A></H1>
<P>Maybe you shouldn't be able to insert a session if there's currently an open
session on that port.  Or maybe the open session on that port should be flagged
as problematic?  autoclosed?  *sigh*</P>
<P>Hmm, sessions refer to current svc_acct records... probably need to constrain
deletions to svc_acct records such that no svc_acct records are deleted which
have a session (even if long-closed).</P>
<P>
<HR>
<H1><A NAME="see also">SEE ALSO</A></H1>
<P><A HREF=".././FS/Record.html">the FS::Record manpage</A>, schema.html from the base documentation.</P>

</BODY>

</HTML>