[prev] [thread] [next] [lurker] [Date index for 2003/11/24]
Author: gabor
Date: 2003-11-24 22:03:35 +0200 (Mon, 24 Nov 2003)
New Revision: 29
Modified:
lib/YAPC/Organizer.pm
lib/YAPC/Talk.pm
t/04-proposals.t
t/05-web-proposals.t
Log:
YAPC::Talk->proposal now expects user_id and not cookie.
Modified: lib/YAPC/Organizer.pm
===================================================================
--- lib/YAPC/Organizer.pm 2003-11-24 19:19:59 UTC (rev 28)
+++ lib/YAPC/Organizer.pm 2003-11-24 20:03:35 UTC (rev 29)
@@ -492,17 +492,10 @@
my $q = $self->query;
my $talk;
- my $cookie = $q->cookie('Yapcom');
+ my $id = $self->is_logged_in;
- my $id = YAPC::Login->get_user_id(cookie => $cookie);
- if (not $id) {
- my $t = $self->_server_page('login', "$templates_dir/login.tmpl");
- $t->param(next => 'proposal.html');
- return $t->output;
- }
-
eval {
- $talk = YAPC::Talk->propose(cookie => $cookie, $q->Vars);
+ $talk = YAPC::Talk->propose($q->Vars, user_id => $id);
};
if ($@) {
my $msg = $@;
Modified: lib/YAPC/Talk.pm
===================================================================
--- lib/YAPC/Talk.pm 2003-11-24 19:19:59 UTC (rev 28)
+++ lib/YAPC/Talk.pm 2003-11-24 20:03:35 UTC (rev 29)
@@ -19,8 +19,8 @@
my %args = @_; # cookie => subject => language => length => abstract => comment =>
delete $args{run}; # was added for CGI::Application
- $args{user_id} = YAPC::Login->get_user_id(cookie => $args{cookie});
- delete $args{cookie};
+# $args{user_id} = YAPC::Login->get_user_id(cookie => $args{cookie});
+# delete $args{cookie};
croak("Only authenticated users can submit proposals\n") if not $args{user_id};
croak("id should not be defined\n") if defined $args{id};
Modified: t/04-proposals.t
===================================================================
--- t/04-proposals.t 2003-11-24 19:19:59 UTC (rev 28)
+++ t/04-proposals.t 2003-11-24 20:03:35 UTC (rev 29)
@@ -25,6 +25,7 @@
my $login = YAPC::Login->new((email => $people[1]{email}, password => $people[1]{password}));
isa_ok($login, 'YAPC::Login', 'Login successful');
my $work_cookie = $login->cookie;
+my $work_uid = $login->user_id;
##########
# login to the account with e-mail and password, get cookie
@@ -41,7 +42,8 @@
language => 'Hebrew',
abstract => "I am going to talk about how the creature was born.\nWhy is that not a camel and how to feed it\n",
comment => "Are you serious?\n I need at least 6 minutes to talk about this subject\n",
- cookie => $work_cookie,
+ user_id => $work_uid,
+# cookie => $work_cookie,
);
###### Check if the database is empty
@@ -62,7 +64,8 @@
###### Cannot submit a proposal without a valid cookie
{
my %prop = %proposal;
- delete $prop{cookie};
+ #delete $prop{cookie};
+ delete $prop{user_id};
eval {
YAPC::Talk->propose(%prop);
};
@@ -92,6 +95,7 @@
is(@logins, 0, 'no one is logged in any more');
+=pod
###### Cannot submit a proposal after logout even with cookie that was valid once
{
my %prop = %proposal;
@@ -102,4 +106,7 @@
my @talks = YAPC::Talk->retrieve_all;
is(@talks, 2, 'There are 2 talk in the database');
}
+=cut
+
+
Modified: t/05-web-proposals.t
===================================================================
--- t/05-web-proposals.t 2003-11-24 19:19:59 UTC (rev 28)
+++ t/05-web-proposals.t 2003-11-24 20:03:35 UTC (rev 29)
@@ -26,6 +26,7 @@
my @cookies;
my @uids;
push @uids, YAPC::Test::Data::register_user(0);
+push @uids, YAPC::Test::Data::register_user(1);
push @cookies, YAPC::Test::Data::login_user(0);
@@ -158,6 +159,24 @@
}
+##### sending proposal with the user_id of someone else
+## maybe this should fail as it is or whould be logged
+{
+ local $ENV{REQUEST_URI} = '/proposal.html';
+ local $ENV{HTTP_COOKIE} = "Yapcom=$cookies[0]";
+ my %prop = %proposal;
+ $prop{run} = 'send_proposal';
+ $prop{user_id} = $uids[1];
+ my $q = CGI->new(\%prop);
+ my $webapp = YAPC::Organizer->new;
+ $webapp->query($q);
+ my $result = $webapp->run();
+ like($result, qr/Thank you for the talk proposal/, 'proposal accepted');
+ my @talks = YAPC::Talk->retrieve_all;
+ is(@talks, 2, 'There are 2 talks in the database');
+ my $talker_id = $talks[1]->user_id;
+ is($talker_id, $uids[0], 'Talk registered to the correct user (the one logged in)');
+}
Generated at 23:06 on 24 Nov 2003 by mariachi 0.51