+after qw/insert update delete/ => sub {
+ my ($self) = @_;
+ Gruntmaster::Data::purge '/us/';
+ Gruntmaster::Data::purge '/us/' . $self->id;
+};
+
+use Authen::Passphrase;
+use Authen::Passphrase::BlowfishCrypt;
+
+sub check_passphrase {
+ my ($self, $pw) = @_;
+ Authen::Passphrase->from_rfc2307($self->passphrase)->match($pw)
+}
+
+sub set_passphrase {
+ my ($self, $pw) = @_;
+ $self->update({passphrase => Authen::Passphrase::BlowfishCrypt->new(
+ cost => 10,
+ passphrase => $pw,
+ salt_random => 1,
+ )->as_rfc2307});
+}