From 26f9d7c2b32bbee60b2f8b602688f1d0654e217c Mon Sep 17 00:00:00 2001 From: Matthew Musgrove Date: Tue, 8 Mar 2011 19:22:49 -0600 Subject: [PATCH] Trigger captcha when sending spies. Rename Captcha::Spies to Captcha::AssignSpies. Removed Captcha::Ships from LoadWithSpies since it was not being triggered. --- lib/Lacuna/RPC/Building/Intelligence.pm | 2 +- lib/Lacuna/RPC/Building/SpacePort.pm | 2 ++ .../Role/Captcha/{Spies.pm => AssignSpies.pm} | 2 +- lib/Lacuna/Role/Captcha/SendSpies.pm | 22 +++++++++++++++++++ lib/Lacuna/Role/Ship/Send/LoadWithSpies.pm | 2 -- 5 files changed, 26 insertions(+), 4 deletions(-) rename lib/Lacuna/Role/Captcha/{Spies.pm => AssignSpies.pm} (86%) create mode 100644 lib/Lacuna/Role/Captcha/SendSpies.pm diff --git a/lib/Lacuna/RPC/Building/Intelligence.pm b/lib/Lacuna/RPC/Building/Intelligence.pm index be9d4226..277775af 100644 --- a/lib/Lacuna/RPC/Building/Intelligence.pm +++ b/lib/Lacuna/RPC/Building/Intelligence.pm @@ -6,7 +6,7 @@ no warnings qw(uninitialized); extends 'Lacuna::RPC::Building'; use Lacuna::Util qw(randint); -with 'Lacuna::Role::Captcha::Spies'; +with 'Lacuna::Role::Captcha::AssignSpies'; sub app_url { return '/intelligence'; diff --git a/lib/Lacuna/RPC/Building/SpacePort.pm b/lib/Lacuna/RPC/Building/SpacePort.pm index ace947e2..61cbee45 100644 --- a/lib/Lacuna/RPC/Building/SpacePort.pm +++ b/lib/Lacuna/RPC/Building/SpacePort.pm @@ -8,6 +8,8 @@ use Lacuna::Constants qw(SHIP_TYPES); use Lacuna::Util qw(format_date); use feature "switch"; +with 'Lacuna::Role::Captcha::AssignSpies'; + sub app_url { return '/spaceport'; } diff --git a/lib/Lacuna/Role/Captcha/Spies.pm b/lib/Lacuna/Role/Captcha/AssignSpies.pm similarity index 86% rename from lib/Lacuna/Role/Captcha/Spies.pm rename to lib/Lacuna/Role/Captcha/AssignSpies.pm index bcef1e94..7b912777 100644 --- a/lib/Lacuna/Role/Captcha/Spies.pm +++ b/lib/Lacuna/Role/Captcha/AssignSpies.pm @@ -1,4 +1,4 @@ -package Lacuna::Role::Captcha::Spies; +package Lacuna::Role::Captcha::AssignSpies; use Moose::Role; diff --git a/lib/Lacuna/Role/Captcha/SendSpies.pm b/lib/Lacuna/Role/Captcha/SendSpies.pm new file mode 100644 index 00000000..375a6232 --- /dev/null +++ b/lib/Lacuna/Role/Captcha/SendSpies.pm @@ -0,0 +1,22 @@ +package Lacuna::Role::Captcha::SendSpies; + +use Moose::Role; + +before 'prepare_send_spies' => sub { + my ($self, $session_id, $on_body_id, $to_body_id) = @_; + my $empire = $self->get_empire_by_session($session_id); + unless ($empire->current_session->check_captcha()) { + confess [1016,'Needs to solve a captcha.']; + } +}; + +before 'send_spies' => sub { + my ($self, $session_id, $on_body_id, $to_body_id, $ship_id, $spy_ids) = @_; + my $empire = $self->get_empire_by_session($session_id); + unless ($empire->current_session->check_captcha()) { + confess [1016,'Needs to solve a captcha.']; + } +}; + + +1; diff --git a/lib/Lacuna/Role/Ship/Send/LoadWithSpies.pm b/lib/Lacuna/Role/Ship/Send/LoadWithSpies.pm index 2b764970..57c42a29 100644 --- a/lib/Lacuna/Role/Ship/Send/LoadWithSpies.pm +++ b/lib/Lacuna/Role/Ship/Send/LoadWithSpies.pm @@ -3,8 +3,6 @@ package Lacuna::Role::Ship::Send::LoadWithSpies; use strict; use Moose::Role; -with 'Lacuna::Role::Captcha::Ships'; - after send => sub { my $self = shift; return if $self->payload->{spies}[0]; -- 2.51.2