[Cpan-forum-commit] rev 199 - in trunk: . bin lib/CPAN lib/CPAN/Forum/RM t/mech
svn at pti.co.il
svn at pti.co.il
Tue Aug 29 18:43:35 IDT 2006
Author: gabor
Date: 2006-08-29 18:43:33 +0300 (Tue, 29 Aug 2006)
New Revision: 199
Added:
trunk/lib/CPAN/Forum/RM/Login.pm
Modified:
trunk/
trunk/Changes
trunk/bin/upgrade_to_0_12.pl
trunk/lib/CPAN/Forum.pm
trunk/t/mech/100-auth.t
Log:
move some of the run modes to Login.pm
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:11063
+ 8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:11064
Modified: trunk/Changes
===================================================================
--- trunk/Changes 2006-08-29 15:43:22 UTC (rev 198)
+++ trunk/Changes 2006-08-29 15:43:33 UTC (rev 199)
@@ -1,6 +1,11 @@
v0.12
+ Add /author/PAUSEID to show all posts related to modules maintained by
+ PAUSEID
+
+ Move some of the run modues to be in the CPAN::Forum::RM namespace.
+
Add large button on dist page to start a new post.
Added process_missing_dist that will automatically add distributions
Modified: trunk/bin/upgrade_to_0_12.pl
===================================================================
--- trunk/bin/upgrade_to_0_12.pl 2006-08-29 15:43:22 UTC (rev 198)
+++ trunk/bin/upgrade_to_0_12.pl 2006-08-29 15:43:33 UTC (rev 199)
@@ -102,4 +102,14 @@
date TIMESTAMP
);
+CREATE TABLE subscriptions_pauseid (
+ id INTEGER PRIMARY KEY,
+ uid INTEGER NOT NULL,
+ pauseid INTEGER NOT NULL,
+ allposts BOOLEAN,
+ starters BOOLEAN,
+ followups BOOLEAN,
+ announcements BOOLEAN
+);
+
Added: trunk/lib/CPAN/Forum/RM/Login.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Login.pm 2006-08-29 15:43:22 UTC (rev 198)
+++ trunk/lib/CPAN/Forum/RM/Login.pm 2006-08-29 15:43:33 UTC (rev 199)
@@ -0,0 +1,117 @@
+package CPAN::Forum::RM::Login;
+use strict;
+use warnings;
+
+
+=head2 login
+
+Show the login form and possibly some error messages.
+
+=cut
+sub login {
+ my ($self, $errs) = @_;
+ my $q = $self->query;
+
+ $self->log->debug("Sending cookie using sid: " . $self->session->id());
+ $self->session_cookie();
+ my $t = $self->load_tmpl(
+ "login.tmpl",
+ associate => $q,
+ );
+
+ $t->param($errs) if $errs;
+ return $t->output;
+}
+
+=head2 login_process
+
+- Processing the information provided by the user,
+- calling for authentication
+- setting the session
+
+- redirecting to the page where the user wanted to go before he was diverted to the login page
+
+=cut
+
+sub login_process {
+ my $self = shift;
+ my $q = $self->query;
+
+ if (not $q->param('nickname') or not $q->param('password')) {
+ return $self->login({no_login_data => 1});
+ }
+
+ my ($user) = CPAN::Forum::Users->search({
+ username => $q->param('nickname'),
+ password => $q->param('password'),
+ });
+ if (not $user) {
+ $self->log->debug("No user found");
+ return $self->login({bad_login => 1});
+ }
+ $self->log->debug("Username: " . $user->username);
+
+ my $session = $self->session;
+ $session->param(admin => 0); # make sure it is clean
+
+ $session->param(loggedin => 1);
+ $session->param(username => $user->username);
+ $session->param(uid => $user->id);
+ $session->param(fname => $user->fname);
+ $session->param(lname => $user->lname);
+ $session->param(email => $user->email);
+ foreach my $g (CPAN::Forum::Usergroups->search_ugs($user->id)) {
+ $self->log->debug("UserGroups: " . $g->name);
+ if ($g->name eq "admin") {
+ $session->param(admin => 1);
+ }
+ }
+
+ my $request = $session->param("request") || "home";
+ $self->log->debug("Request redirection: '$request'");
+ my $response;
+ eval {
+ if ($request eq 'new_post') {
+ my $request_group = $session->param("request_group") || '';
+ $self->param("path_parameters" => [$request_group]);
+ }
+ $response = $self->$request();
+ };
+ if ($@) {
+ $self->log->error($@);
+ die $@; # TODO: send error page?
+ }
+ $session->param("request" => "");
+ $session->param("request_group" => "");
+ $session->flush();
+ $self->log->debug("Session flushed after login " . $session->param('loggedin'));
+ return $response;
+}
+
+
+=head2 logout
+
+Set the session to be logged out and remove personal information from the Session object.
+
+=cut
+
+sub logout {
+ my $self = shift;
+
+ my $session = $self->session;
+ my $username = $session->param('username');
+ $session->param(loggedin => 0);
+ $session->param(username => '');
+ $session->param(uid => '');
+ $session->param(fname => '');
+ $session->param(lname => '');
+ $session->param(email => '');
+ $session->param(admin => '');
+ $session->flush();
+ $self->log->debug("logged out '$username'");
+
+ $self->home;
+}
+
+1;
+
Modified: trunk/lib/CPAN/Forum.pm
===================================================================
--- trunk/lib/CPAN/Forum.pm 2006-08-29 15:43:22 UTC (rev 198)
+++ trunk/lib/CPAN/Forum.pm 2006-08-29 15:43:33 UTC (rev 199)
@@ -537,8 +537,11 @@
search all rss);
my %RM_MAP = (
- author => 'CPAN::Forum::RM::Author',
- dist => 'CPAN::Forum::RM::Dist',
+ author => 'CPAN::Forum::RM::Author',
+ dist => 'CPAN::Forum::RM::Dist',
+ login => 'CPAN::Forum::RM::Login',
+ login_process => 'CPAN::Forum::RM::Login',
+ logout => 'CPAN::Forum::RM::Login',
);
=head2 setup
@@ -576,6 +579,7 @@
my $rm = $self->_set_run_mode();
if ($RM_MAP{$rm}) {
+ ## no critic (ProhibitStringyEval)
eval "use base $RM_MAP{$rm}";
}
@@ -841,119 +845,7 @@
return $t;
}
-=head2 login
-Show the login form and possibly some error messages.
-
-=cut
-sub login {
- my ($self, $errs) = @_;
- my $q = $self->query;
-
- $self->log->debug("Sending cookie using sid: " . $self->session->id());
- $self->session_cookie();
- my $t = $self->load_tmpl(
- "login.tmpl",
- associate => $q,
- );
-
- $t->param($errs) if $errs;
- return $t->output;
-}
-
-=head2 login_process
-
-- Processing the information provided by the user,
-- calling for authentication
-- setting the session
-
-- redirecting to the page where the user wanted to go before he was diverted to the login page
-
-=cut
-
-sub login_process {
- my $self = shift;
- my $q = $self->query;
-
- if (not $q->param('nickname') or not $q->param('password')) {
- return $self->login({no_login_data => 1});
- }
-
- my ($user) = CPAN::Forum::Users->search({
- username => $q->param('nickname'),
- password => $q->param('password'),
- });
- if (not $user) {
- $self->log->debug("No user found");
- return $self->login({bad_login => 1});
- }
- $self->log->debug("Username: " . $user->username);
-
- my $session = $self->session;
- $session->param(admin => 0); # make sure it is clean
-
- $session->param(loggedin => 1);
- $session->param(username => $user->username);
- $session->param(uid => $user->id);
- $session->param(fname => $user->fname);
- $session->param(lname => $user->lname);
- $session->param(email => $user->email);
- foreach my $g (CPAN::Forum::Usergroups->search_ugs($user->id)) {
- $self->log->debug("UserGroups: " . $g->name);
- if ($g->name eq "admin") {
- $session->param(admin => 1);
- }
- }
-
- my $request = $session->param("request") || "home";
- $self->log->debug("Request redirection: '$request'");
- my $response;
- eval {
- if ($request eq 'new_post') {
- my $request_group = $session->param("request_group") || '';
- $self->param("path_parameters" => [$request_group]);
- }
- ## no critic (ProhibitNoStrict)
- no strict 'refs';
- $response = &$request($self);
- };
- if ($@) {
- $self->log->error($@);
- die $@; # TODO: send error page?
- }
- $session->param("request" => "");
- $session->param("request_group" => "");
- $session->flush();
- $self->log->debug("Session flushed after login " . $session->param('loggedin'));
- return $response;
-}
-
-
-=head2 logout
-
-Set the session to be logged out and remove personal information from the Session object.
-
-=cut
-
-sub logout {
- my $self = shift;
-
- my $session = $self->session;
- my $username = $session->param('username');
- $session->param(loggedin => 0);
- $session->param(username => '');
- $session->param(uid => '');
- $session->param(fname => '');
- $session->param(lname => '');
- $session->param(email => '');
- $session->param(admin => '');
- $session->flush();
- $self->log->debug("logged out '$username'");
-
- $self->home;
-}
-
-
=head2 register
Show the registration page and possibly some error messages.
Modified: trunk/t/mech/100-auth.t
===================================================================
--- trunk/t/mech/100-auth.t 2006-08-29 15:43:22 UTC (rev 198)
+++ trunk/t/mech/100-auth.t 2006-08-29 15:43:33 UTC (rev 199)
@@ -151,6 +151,7 @@
BEGIN { $tests += 6; }
}
+
{
$w_user->get_ok($url);
$w_user->content_like(qr{CPAN Forum});
More information about the Cpan-forum-commit
mailing list