moved qdb here because matt is lazy
[public/www-new.git] / pub / qdb / src / modules / Chirpy / Account.pm
1 ###############################################################################\r
2 # Chirpy! 0.3, a quote management system                                      #\r
3 # Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net>          #\r
4 ###############################################################################\r
5 # This program is free software; you can redistribute it and/or modify it     #\r
6 # under the terms of the GNU General Public License as published by the Free  #\r
7 # Software Foundation; either version 2 of the License, or (at your option)   #\r
8 # any later version.                                                          #\r
9 #                                                                             #\r
10 # This program is distributed in the hope that it will be useful, but WITHOUT #\r
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or       #\r
12 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for   #\r
13 # more details.                                                               #\r
14 #                                                                             #\r
15 # You should have received a copy of the GNU General Public License along     #\r
16 # with this program; if not, write to the Free Software Foundation, Inc., 51  #\r
17 # Franklin St, Fifth Floor, Boston, MA  02110-1301  USA                       #\r
18 ###############################################################################\r
19 \r
20 ###############################################################################\r
21 # $Id:: Account.pm 291 2007-02-05 21:24:46Z ceetee                          $ #\r
22 ###############################################################################\r
23 \r
24 =head1 NAME\r
25 \r
26 Chirpy::Account - Represents a user account\r
27 \r
28 =head1 SYNOPSIS\r
29 \r
30  $account = new Chirpy::Account($id, $username, $password, $level);\r
31 \r
32  $id = $account->get_id();\r
33  $account->set_id($id);\r
34 \r
35  $username = $account->get_username($username);\r
36  $account->set_username($username);\r
37 \r
38  $password = $account->get_password();\r
39  $account->set_password($password);\r
40 \r
41  $level = $account->get_level();\r
42  $account->set_level($level);\r
43 \r
44 =head1 CONSTRAINTS\r
45 \r
46 =over 4\r
47 \r
48 =item ID\r
49 \r
50 The account ID must be a positive non-zero integer.\r
51 \r
52 =item Username\r
53 \r
54 The username must be valid against the C<valid_username()> function of\r
55 L<Chirpy::Util>.\r
56 \r
57 =item Password\r
58 \r
59 Encryption is done I<before> invoking the constructor or the C<set_password()>\r
60 function. The C<get_password()> function returns the I<encrypted> password.\r
61 The password must be valid against the C<valid_password()> function and\r
62 encrypted using the C<encrypt()> function, both part of L<Chirpy::Util>.\r
63 \r
64 =item User Level\r
65 \r
66 The user level must be one of the user level constants described below.\r
67 \r
68 =back\r
69 \r
70 =head1 USER LEVEL CONSTANTS\r
71 \r
72 The following constants are recommended for use as user levels:\r
73 \r
74  Chirpy::Account::USER_LEVEL_3\r
75  Chirpy::Account::USER_LEVEL_6\r
76  Chirpy::Account::USER_LEVEL_9\r
77 \r
78 Note that the value of these is the integer representing the user level and\r
79 that the constants are only for the sake of code readability.\r
80 \r
81 =head1 AUTHOR\r
82 \r
83 Tim De Pauw E<lt>ceetee@users.sourceforge.netE<gt>\r
84 \r
85 =head1 SEE ALSO\r
86 \r
87 L<Chirpy>, L<http://chirpy.sourceforge.net/>\r
88 \r
89 =head1 COPYRIGHT\r
90 \r
91 Copyright 2005-2007 Tim De Pauw. All rights reserved.\r
92 \r
93 This program is free software; you can redistribute it and/or modify it under\r
94 the terms of the GNU General Public License as published by the Free Software\r
95 Foundation; either version 2 of the License, or (at your option) any later\r
96 version.\r
97 \r
98 This program is distributed in the hope that it will be useful, but WITHOUT ANY\r
99 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\r
100 PARTICULAR PURPOSE.  See the GNU General Public License for more details.\r
101 \r
102 =cut\r
103 \r
104 package Chirpy::Account;\r
105 \r
106 use strict;\r
107 use warnings;\r
108 \r
109 use constant USER_LEVEL_3 => 3;\r
110 use constant USER_LEVEL_6 => 6;\r
111 use constant USER_LEVEL_9 => 9;\r
112 \r
113 use vars qw($VERSION);\r
114 \r
115 $VERSION = '0.3';\r
116 \r
117 use Chirpy 0.3;\r
118 \r
119 sub new {\r
120         my ($class, $id, $username, $password, $level) = @_;\r
121         my $self = {\r
122                 'id' => $id,\r
123                 'username' => $username,\r
124                 'password' => $password,\r
125                 'level' => $level\r
126         };\r
127         return bless($self, $class);\r
128 }\r
129 \r
130 sub get_id {\r
131         my $self = shift;\r
132         return $self->{'id'};\r
133 }\r
134 \r
135 sub set_id {\r
136         my $self = shift;\r
137         return ($self->{'id'} = shift);\r
138 }\r
139 \r
140 sub get_username {\r
141         my $self = shift;\r
142         return $self->{'username'};\r
143 }\r
144 \r
145 sub set_username {\r
146         my $self = shift;\r
147         return ($self->{'username'} = shift);\r
148 }\r
149 \r
150 sub get_password {\r
151         my $self = shift;\r
152         return $self->{'password'};\r
153 }\r
154 \r
155 sub set_password {\r
156         my $self = shift;\r
157         return ($self->{'password'} = shift);\r
158 }\r
159 \r
160 sub get_level {\r
161         my $self = shift;\r
162         return $self->{'level'};\r
163 }\r
164 \r
165 sub set_level {\r
166         my $self = shift;\r
167         return ($self->{'level'} = shift);\r
168 }\r
169 \r
170 1;\r
171 \r
172 ###############################################################################