[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