diff options
author | Russ Allbery <rra@stanford.edu> | 2007-08-30 17:52:49 +0000 |
---|---|---|
committer | Russ Allbery <rra@stanford.edu> | 2007-08-30 17:52:49 +0000 |
commit | 100779a7b7f71749b10fe078b8f38307319ef88f (patch) | |
tree | d17684239bca7f167ccf78785eb3d6289d84a59f /perl/Wallet | |
parent | 0ec04f853bd1a436b33ddad0feac10e61c791f39 (diff) |
Properly clean up errors from exceptions. Properly catch exceptions when
creating ACL objects in Wallet::Server. Don't return the ACL object from
the acl_create method of Wallet::Server -- it's a layering violation.
Diffstat (limited to 'perl/Wallet')
-rw-r--r-- | perl/Wallet/ACL.pm | 10 | ||||
-rw-r--r-- | perl/Wallet/Object/Base.pm | 12 | ||||
-rw-r--r-- | perl/Wallet/Server.pm | 30 |
3 files changed, 26 insertions, 26 deletions
diff --git a/perl/Wallet/ACL.pm b/perl/Wallet/ACL.pm index 6226585..63e76aa 100644 --- a/perl/Wallet/ACL.pm +++ b/perl/Wallet/ACL.pm @@ -159,7 +159,7 @@ sub rename { if ($@) { $self->{error} = "cannot rename ACL $self->{id} to $name: $@"; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; $self->{dbh}->rollback; return undef; } @@ -185,7 +185,7 @@ sub destroy { if ($@) { $self->{error} = "cannot destroy ACL $self->{id}: $@"; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; $self->{dbh}->rollback; return undef; } @@ -214,7 +214,7 @@ sub add { if ($@) { $self->{error} = "cannot add $scheme:$identifier to $self->{id}: $@"; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; $self->{dbh}->rollback; return undef; } @@ -245,7 +245,7 @@ sub remove { my $entry = "$scheme:$identifier"; $self->{error} = "cannot remove $entry from $self->{id}: $@"; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; $self->{dbh}->rollback; return undef; } @@ -275,7 +275,7 @@ sub list { if ($@) { $self->{error} = "cannot retrieve ACL $self->{id}: $@"; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return (undef); } else { return @entries; diff --git a/perl/Wallet/Object/Base.pm b/perl/Wallet/Object/Base.pm index 389bbef..bc4bc26 100644 --- a/perl/Wallet/Object/Base.pm +++ b/perl/Wallet/Object/Base.pm @@ -143,7 +143,7 @@ sub log_action { my $id = $self->{type} . ':' . $self->{name}; $self->{error} = "cannot update history for $id: $@"; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; $self->{dbh}->rollback; return undef; } @@ -238,7 +238,7 @@ sub owner { if ($@) { $self->{error} = $@; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } return $self->_set_internal ('owner', $acl->id, $user, $host, $time); @@ -254,7 +254,7 @@ sub acl { if ($type !~ /^(get|store|show|destroy|flags)\z/) { $self->{error} = "invalid ACL type $type"; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return; } my $attr = "acl_$type"; @@ -264,7 +264,7 @@ sub acl { if ($@) { $self->{error} = $@; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } return $self->_set_internal ($attr, $acl->id, $user, $host, $time); @@ -340,7 +340,7 @@ sub show { if ($@) { $self->{error} = "cannot retrieve data for ${type}:${name}: $@"; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } my $output = ''; @@ -378,7 +378,7 @@ sub destroy { if ($@) { $self->{error} = "cannot destroy ${type}:${name}: $@"; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; $self->{dbh}->rollback; return undef; } diff --git a/perl/Wallet/Server.pm b/perl/Wallet/Server.pm index 7c1443c..76ec097 100644 --- a/perl/Wallet/Server.pm +++ b/perl/Wallet/Server.pm @@ -148,7 +148,7 @@ sub create { if ($@) { $self->{error} = $@; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } else { return $object; @@ -168,7 +168,7 @@ sub retrieve { if ($@) { $self->{error} = $@; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } else { return $object; @@ -209,7 +209,7 @@ sub acl_check { if ($@) { $self->{error} = $@; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } my $status = $acl->check ($self->{user}); @@ -321,8 +321,8 @@ sub destroy { # ACL methods ############################################################################## -# Create a new empty ACL in the database. Returns the new ACL object on -# success and undef on failure, setting the internal error. +# Create a new empty ACL in the database. Returns true on success and undef +# on failure, setting the internal error. sub acl_create { my ($self, $name) = @_; unless ($self->{admin}->check ($self->{user})) { @@ -336,10 +336,10 @@ sub acl_create { if ($@) { $self->{error} = $@; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } else { - return $acl; + return 1; } } @@ -364,11 +364,11 @@ sub acl_rename { $self->acl_error ($id, 'rename'); return undef; } - my $acl = { Wallet::ACL->new ($id, $self->{dbh}) }; + my $acl = eval { Wallet::ACL->new ($id, $self->{dbh}) }; if ($@) { $self->{error} = $@; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } unless ($acl->rename ($name)) { @@ -386,11 +386,11 @@ sub acl_destroy { $self->acl_error ($id, 'destroy'); return undef; } - my $acl = { Wallet::ACL->new ($id, $self->{dbh}) }; + my $acl = eval { Wallet::ACL->new ($id, $self->{dbh}) }; if ($@) { $self->{error} = $@; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } unless ($acl->destroy ($self->{user}, $self->{host})) { @@ -408,11 +408,11 @@ sub acl_add { $self->acl_error ($id, 'add'); return undef; } - my $acl = { Wallet::ACL->new ($id, $self->{dbh}) }; + my $acl = eval { Wallet::ACL->new ($id, $self->{dbh}) }; if ($@) { $self->{error} = $@; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } unless ($acl->add ($scheme, $identifier, $self->{user}, $self->{host})) { @@ -430,11 +430,11 @@ sub acl_remove { $self->acl_error ($id, 'remove'); return undef; } - my $acl = { Wallet::ACL->new ($id, $self->{dbh}) }; + my $acl = eval { Wallet::ACL->new ($id, $self->{dbh}) }; if ($@) { $self->{error} = $@; chomp $self->{error}; - $self->{error} =~ / at .*$/; + $self->{error} =~ s/ at .*$//; return undef; } my $user = $self->{user}; |