summaryrefslogtreecommitdiff
path: root/perl/Wallet/Server.pm
diff options
context:
space:
mode:
authorRuss Allbery <rra@stanford.edu>2007-09-20 23:00:30 +0000
committerRuss Allbery <rra@stanford.edu>2007-09-20 23:00:30 +0000
commit523f7c3a446139bfb287a11f631f9526658bf116 (patch)
tree5094372890a76549c4011031779b4344cdcba4fa /perl/Wallet/Server.pm
parent516744caf3f0a46bf56528bdabb2128fef791327 (diff)
Take multiple values in the attr() method and convert it to a reference
to an array internally so that the callers don't have to be aware of the internal API.
Diffstat (limited to 'perl/Wallet/Server.pm')
-rw-r--r--perl/Wallet/Server.pm21
1 files changed, 10 insertions, 11 deletions
diff --git a/perl/Wallet/Server.pm b/perl/Wallet/Server.pm
index b646eb0..138a576 100644
--- a/perl/Wallet/Server.pm
+++ b/perl/Wallet/Server.pm
@@ -265,15 +265,15 @@ sub acl {
# Retrieves or sets an attribute on an object.
sub attr {
- my ($self, $type, $name, $attr, $values) = @_;
+ my ($self, $type, $name, $attr, @values) = @_;
undef $self->{error};
my $object = $self->retrieve ($type, $name);
return undef unless defined $object;
my $user = $self->{user};
my $host = $self->{host};
- if (defined $values) {
+ if (@values) {
return unless $self->acl_check ($object, 'setattr');
- my $result = $object->attr ($attr, $values, $user, $host);
+ my $result = $object->attr ($attr, [ @values ], $user, $host);
$self->error ($object->error) unless $result;
return $result;
} else {
@@ -713,25 +713,24 @@ be aware that anyone with show access to an object can see the membership of
ACLs associated with that object through the show() method). Returns the
human-readable description on success and undef on failure.
-=item attr(TYPE, NAME, ATTRIBUTE [, VALUES])
+=item attr(TYPE, NAME, ATTRIBUTE [, VALUE ...])
Sets or retrieves a given object attribute. Attributes are used to store
backend-specific information for a particular object type and ATTRIBUTE must
be an attribute type known to the underlying object implementation.
-If VALUES is not given, returns the values of that attribute, if any, as a
+If VALUE is not given, returns the values of that attribute, if any, as a
list. On error, returns the empty list. To distinguish between an error
and an empty return, call error() afterwards. It is guaranteed to return
undef unless there was an error. To retrieve an attribute setting, the user
must be authorized by the ADMIN ACL, the show ACL if set, or the owner ACL
if the show ACL is not set.
-If VALUES is given, sets the given ATTRIBUTE values to VALUES, which must be
-a reference to an array (even if only one value is being set). Pass a
-reference to an empty array to clear the attribute values. Returns true on
-success and false on failure. To set an attribute value, the user must be
-authorized by the ADMIN ACL, the store ACL if set, or the owner ACL if the
-store ACL is not set.
+If VALUE is given, sets the given ATTRIBUTE values to VALUE, which is one or
+more attribute values. Pass the empty string as the only VALUE to clear the
+attribute values. Returns true on success and false on failure. To set an
+attribute value, the user must be authorized by the ADMIN ACL, the store ACL
+if set, or the owner ACL if the store ACL is not set.
=item create(TYPE, NAME)