diff options
| author | Russ Allbery <eagle@eyrie.org> | 2014-07-16 16:32:03 -0700 | 
|---|---|---|
| committer | Russ Allbery <eagle@eyrie.org> | 2014-07-16 16:32:03 -0700 | 
| commit | 27f4e81ddb42440345e6dd01a4943cb57ee5da39 (patch) | |
| tree | 3a4e9adfb0e1039c8297fbf7687acb8acd1494df | |
| parent | 6409733ee3b7b1910dc1c166a392cc628834146c (diff) | |
| parent | 3e913fa65e9e5c1d687372b89b5467edb3e77973 (diff) | |
Imported Upstream version 1.1
| -rw-r--r-- | Makefile.in | 8 | ||||
| -rw-r--r-- | NEWS | 5 | ||||
| -rw-r--r-- | perl/lib/Wallet/Admin.pm | 18 | ||||
| -rw-r--r-- | perl/lib/Wallet/Object/Duo.pm | 4 | ||||
| -rwxr-xr-x | perl/t/general/admin.t | 1 | ||||
| -rwxr-xr-x | perl/t/general/server.t | 18 | ||||
| -rwxr-xr-x | perl/t/object/duo.t | 2 | 
7 files changed, 25 insertions, 31 deletions
| diff --git a/Makefile.in b/Makefile.in index c2357f9..0633f5e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -104,13 +104,13 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \  	$(top_srcdir)/tests/client/full-t.in \  	$(top_srcdir)/tests/client/prompt-t.in \  	$(top_srcdir)/tests/client/rekey-t.in \ -	$(top_srcdir)/portable/reallocarray.c \ -	$(top_srcdir)/portable/asprintf.c \  	$(top_srcdir)/portable/snprintf.c \ -	$(top_srcdir)/portable/setenv.c \  	$(top_srcdir)/portable/strlcpy.c \ +	$(top_srcdir)/portable/asprintf.c \ +	$(top_srcdir)/portable/strlcat.c \ +	$(top_srcdir)/portable/reallocarray.c \  	$(top_srcdir)/portable/mkstemp.c \ -	$(top_srcdir)/portable/strlcat.c $(dist_sbin_SCRIPTS) \ +	$(top_srcdir)/portable/setenv.c $(dist_sbin_SCRIPTS) \  	$(top_srcdir)/build-aux/depcomp $(dist_man_MANS) \  	$(dist_pkgdata_DATA) NEWS README TODO build-aux/ar-lib \  	build-aux/compile build-aux/depcomp build-aux/install-sh \ @@ -67,11 +67,6 @@ wallet 1.1 (2014-07-16)      are referencing.  Should fix destroy in MySQL and other database      engines that enforce referential integrity. -    The initial creation and membership of the ADMIN ACL during database -    initialization or reinitialization is no longer recorded in the -    acl_history table.  (This is fallout from making a specific type of -    upgrade testable, and may be fixed in the future.) -      The wallet server now requires Perl 5.8 or later (instead of 5.006 in      previous versions) and is now built with Module::Build instead of      ExtUtils::MakeMaker.  This should be transparent to anyone not working 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',  }; | 
