aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/Roles
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2011-05-26 17:17:24 +0100
committerStruan Donald <struan@exo.org.uk>2011-05-26 17:17:24 +0100
commit860f2965f9af0699a40e022ba7c7370a304a4313 (patch)
tree3cf65ef4fedf85a343d3d290288b73d26b4585fa /perllib/FixMyStreet/Roles
parentf7a711c5b544d876928ba572f46912e09eff9b83 (diff)
use moose role for is_from_abuser method
Diffstat (limited to 'perllib/FixMyStreet/Roles')
-rw-r--r--perllib/FixMyStreet/Roles/Abuser.pm29
1 files changed, 29 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/Roles/Abuser.pm b/perllib/FixMyStreet/Roles/Abuser.pm
new file mode 100644
index 000000000..b9e951305
--- /dev/null
+++ b/perllib/FixMyStreet/Roles/Abuser.pm
@@ -0,0 +1,29 @@
+package FixMyStreet::Roles::Abuser;
+
+use Moose::Role;
+
+=head2 is_from_abuser
+
+ $bool = $alert->is_from_abuser( );
+
+Returns true if the user's email or its domain is listed in the 'abuse' table.
+
+=cut
+
+sub is_from_abuser {
+ my $self = shift;
+
+ # get the domain
+ my $email = $self->user->email;
+ my ($domain) = $email =~ m{ @ (.*) \z }x;
+
+ # search for an entry in the abuse table
+ my $abuse_rs = $self->result_source->schema->resultset('Abuse');
+
+ return
+ $abuse_rs->find( { email => $email } )
+ || $abuse_rs->find( { email => $domain } )
+ || undef;
+}
+
+1;