moved qdb here because matt is lazy
[public/www-new.git] / pub / qdb / src / modules / Chirpy / UI / WebApp / Captcha.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:: Captcha.pm 292 2007-02-05 21:28:55Z ceetee                          $ #\r
22 ###############################################################################\r
23 \r
24 =head1 NAME\r
25 \r
26 Chirpy::UI::WebApp::Captcha - Captcha provider interface\r
27 \r
28 =head1 AUTHOR\r
29 \r
30 Tim De Pauw E<lt>ceetee@users.sourceforge.netE<gt>\r
31 \r
32 =head1 SEE ALSO\r
33 \r
34 L<Chirpy::UI::WebApp>, L<Chirpy>, L<http://chirpy.sourceforge.net/>\r
35 \r
36 =head1 COPYRIGHT\r
37 \r
38 Copyright 2005-2007 Tim De Pauw. All rights reserved.\r
39 \r
40 This program is free software; you can redistribute it and/or modify it under\r
41 the terms of the GNU General Public License as published by the Free Software\r
42 Foundation; either version 2 of the License, or (at your option) any later\r
43 version.\r
44 \r
45 This program is distributed in the hope that it will be useful, but WITHOUT ANY\r
46 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\r
47 PARTICULAR PURPOSE.  See the GNU General Public License for more details.\r
48 \r
49 =cut\r
50 \r
51 package Chirpy::UI::WebApp::Captcha;\r
52 \r
53 use strict;\r
54 use warnings;\r
55 \r
56 use vars qw($VERSION);\r
57 \r
58 $VERSION = '0.3';\r
59 \r
60 use Chirpy 0.3;\r
61 use Chirpy::Util 0.3;\r
62 \r
63 sub new {\r
64         my ($class, $parent, $hash) = @_;\r
65         my $self = {\r
66                 'parent' => $parent,\r
67                 'hash' => $hash\r
68         };\r
69         return bless($self, $class);\r
70 }\r
71 \r
72 sub parent {\r
73         my $self = shift;\r
74         return $self->{'parent'};\r
75 }\r
76 \r
77 sub hash {\r
78         my ($self, $hash) = @_;\r
79         $self->{'hash'} = $hash if (defined $hash);\r
80         return $self->{'hash'};\r
81 }\r
82 \r
83 sub data_path {\r
84         my $self = shift;\r
85         my $path = $self->parent()->configuration()->get('general', 'base_path')\r
86                 . '/cache/captcha';\r
87         Chirpy::Util::ensure_writable_directory($path);\r
88         return $path;\r
89 }\r
90 \r
91 sub base_path {\r
92         my $self = shift;\r
93         my $path = $self->param('captcha_path');\r
94         return $path if (defined $path);\r
95         return $self->parent()->configuration()->get('general', 'base_path')\r
96                 . '/../res/captcha';\r
97 }\r
98 \r
99 sub base_url {\r
100         my $self = shift;\r
101         my $url = $self->param('captcha_url');\r
102         return $url if (defined $url);\r
103         return $self->param('site_url') . '/res/captcha';\r
104 }\r
105 \r
106 sub param {\r
107         my ($self, $name) = @_;\r
108         return $self->parent()->param($name); \r
109 }\r
110 \r
111 *create = \&Chirpy::Util::abstract_method;\r
112 \r
113 *verify = \&Chirpy::Util::abstract_method;\r
114 \r
115 1;\r
116 \r
117 ###############################################################################