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/Server.pm | |
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/Server.pm')
-rw-r--r-- | perl/Wallet/Server.pm | 30 |
1 files changed, 15 insertions, 15 deletions
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}; |