aboutsummaryrefslogtreecommitdiff
path: root/perl
diff options
context:
space:
mode:
authorRuss Allbery <eagle@eyrie.org>2014-07-16 16:32:03 -0700
committerRuss Allbery <eagle@eyrie.org>2014-07-16 16:32:03 -0700
commit27f4e81ddb42440345e6dd01a4943cb57ee5da39 (patch)
tree3a4e9adfb0e1039c8297fbf7687acb8acd1494df /perl
parent6409733ee3b7b1910dc1c166a392cc628834146c (diff)
parent3e913fa65e9e5c1d687372b89b5467edb3e77973 (diff)
Imported Upstream version 1.1
Diffstat (limited to 'perl')
-rw-r--r--perl/lib/Wallet/Admin.pm18
-rw-r--r--perl/lib/Wallet/Object/Duo.pm4
-rwxr-xr-xperl/t/general/admin.t1
-rwxr-xr-xperl/t/general/server.t18
-rwxr-xr-xperl/t/object/duo.t2
5 files changed, 21 insertions, 22 deletions
diff --git a/perl/lib/Wallet/Admin.pm b/perl/lib/Wallet/Admin.pm
index 8481979..33e2a7d 100644
--- a/perl/lib/Wallet/Admin.pm
+++ b/perl/lib/Wallet/Admin.pm
@@ -98,20 +98,10 @@ sub initialize {
$self->default_data;
# Create a default admin ACL.
- eval {
- my $guard = $self->{schema}->txn_scope_guard;
- $self->{schema}->resultset ('Acl')->populate ([
- [ qw/ac_id ac_name/ ],
- [ 1, 'ADMIN' ],
- ]);
- $self->{schema}->resultset ('AclEntry')->populate ([
- [ qw/ae_id ae_scheme ae_identifier/ ],
- [ 1, 'krb5', $user ],
- ]);
- $guard->commit;
- };
- if ($@) {
- $self->error ("cannot add ADMIN ACL: $@");
+ my $schema = $self->{schema};
+ my $acl = Wallet::ACL->create ('ADMIN', $schema, $user, 'localhost');
+ unless ($acl->add ('krb5', $user, $user, 'localhost')) {
+ $self->error ($acl->error);
return;
}
return 1;
diff --git a/perl/lib/Wallet/Object/Duo.pm b/perl/lib/Wallet/Object/Duo.pm
index e3fe2da..6edc4fa 100644
--- a/perl/lib/Wallet/Object/Duo.pm
+++ b/perl/lib/Wallet/Object/Duo.pm
@@ -105,7 +105,7 @@ sub create {
# Create the object in Duo.
require Net::Duo::Admin::Integration;
my %data = (
- name => $name,
+ name => "$name ($Wallet::Config::DUO_TYPE)",
notes => 'Managed by wallet',
type => $Wallet::Config::DUO_TYPE,
);
@@ -190,7 +190,7 @@ sub get {
# We also need the admin server name, which we can get from the Duo object
# configuration with a bit of JSON decoding.
- my $json = JSON->new->utf8 (1);
+ my $json = JSON->new->utf8 (1)->relaxed (1);
my $config = $json->decode (scalar slurp $Wallet::Config::DUO_KEY_FILE);
# Construct the returned file.
diff --git a/perl/t/general/admin.t b/perl/t/general/admin.t
index 7c62932..47396c6 100755
--- a/perl/t/general/admin.t
+++ b/perl/t/general/admin.t
@@ -61,7 +61,6 @@ is ($server->acl_add ('ADMIN', 'base', 'foo'), 1,
' and adding a base ACL now works');
# Test re-initialization of the database.
-$Wallet::Schema::VERSION = '0.07';
is ($admin->reinitialize ('admin@EXAMPLE.COM'), 1,
' and re-initialization succeeds');
diff --git a/perl/t/general/server.t b/perl/t/general/server.t
index b270733..0a527a5 100755
--- a/perl/t/general/server.t
+++ b/perl/t/general/server.t
@@ -54,8 +54,18 @@ is ($server->acl_show ('ADMIN'),
is ($server->acl_show (1),
"Members of ACL ADMIN (id: 1) are:\n krb5 $admin\n",
' including by number');
-is ($server->acl_history ('ADMIN'), '', ' and initial history is empty');
-is ($server->acl_history (1), '', ' including by number');
+my $history = <<"EOO";
+DATE create
+ by $admin from $host
+DATE add krb5 $admin
+ by $admin from $host
+EOO
+my $result = $server->acl_history ('ADMIN');
+$result =~ s/^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d/DATE/gm;
+is ($result, $history, ' and displaying history works');
+$result = $server->acl_history (1);
+$result =~ s/^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d/DATE/gm;
+is ($result, $history, ' including by number');
is ($server->acl_create (3), undef, 'Cannot create ACL with a numeric name');
is ($server->error, 'ACL name may not be all numbers',
' and returns the right error');
@@ -107,7 +117,7 @@ is ($server->acl_add ('both', 'krb5', $user2), 1,
is ($server->acl_show ('both'),
"Members of ACL both (id: 4) are:\n krb5 $user1\n krb5 $user2\n",
' and show returns the correct result');
-my $history = <<"EOO";
+$history = <<"EOO";
DATE create
by $admin from $host
DATE add krb5 $user1
@@ -115,7 +125,7 @@ DATE add krb5 $user1
DATE add krb5 $user2
by $admin from $host
EOO
-my $result = $server->acl_history ('both');
+$result = $server->acl_history ('both');
$result =~ s/^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d/DATE/gm;
is ($result, $history, ' as does history');
is ($server->acl_add ('empty', 'krb5', $user1), 1, ' and another to empty');
diff --git a/perl/t/object/duo.t b/perl/t/object/duo.t
index 4229afe..f73fe7e 100755
--- a/perl/t/object/duo.t
+++ b/perl/t/object/duo.t
@@ -70,7 +70,7 @@ $Wallet::Config::DUO_KEY_FILE = 't/data/duo/keys.json';
# Test creating an integration.
note ('Test creating an integration');
my $expected = {
- name => 'test',
+ name => 'test (unix)',
notes => 'Managed by wallet',
type => 'unix',
};