rclass stuff ripped out of everything but widget classes
[catagits/Reaction.git] / lib / Reaction / InterfaceModel / Action / User / ChangePassword.pm
index 6546502..f637284 100644 (file)
@@ -4,38 +4,41 @@ use Reaction::Class;
 
 use Reaction::Types::Core qw(Password);
 
-class ChangePassword is 'Reaction::InterfaceModel::Action::User::SetPassword', which {
-  has old_password => (isa => Password, is => 'rw', lazy_fail => 1);
-  
-  around error_for_attribute => sub {
-    my $super = shift;
-    my ($self, $attr) = @_;
-    if ($attr->name eq 'old_password') {
-      return "Old password incorrect"
-        unless $self->verify_old_password;
-    }
-    #return $super->(@_); #commented out because the original didn't super()
-  };
-  
-  around can_apply => sub {
-    my $super = shift;
-    my ($self) = @_;
-    return 0 unless $self->verify_old_password;
-    return $super->(@_);
-  };
+use namespace::clean -except => [ qw(meta) ];
+extends 'Reaction::InterfaceModel::Action::User::SetPassword';
+
+
+has old_password => (isa => Password, is => 'rw', lazy_fail => 1);
+
+around error_for_attribute => sub {
+  my $super = shift;
+  my ($self, $attr) = @_;
+  if ($attr->name eq 'old_password') {
+    return "Old password incorrect"
+      unless $self->verify_old_password;
+  }
+  #return $super->(@_); #commented out because the original didn't super()
+};
+
+around can_apply => sub {
+  my $super = shift;
+  my ($self) = @_;
+  return 0 unless $self->verify_old_password;
+  return $super->(@_);
+};
+sub verify_old_password {
+  my $self = shift;
+  return unless $self->has_old_password;
   
-  implements verify_old_password => as {
-    my $self = shift;
-    return unless $self->has_old_password;
-    
-    my $user = $self->target_model;
-    return $user->can("check_password") ?
+  my $user = $self->target_model;
+  return $user->can("check_password") ?
        $user->check_password($self->old_password) :
            $self->old_password eq $user->password;
-  };
-
 };
 
+__PACKAGE__->meta->make_immutable;
+
+
 1;
 
 =head1 NAME