diff options
| author | Russ Allbery <eagle@eyrie.org> | 2014-07-16 16:20:10 -0700 | 
|---|---|---|
| committer | Russ Allbery <rra@stanford.edu> | 2014-07-16 16:25:56 -0700 | 
| commit | 3e913fa65e9e5c1d687372b89b5467edb3e77973 (patch) | |
| tree | ecfeb207313538ebc32dde39fda9e929582515c3 /perl | |
| parent | 8d66c66be27f795df314a69aeb49c75d075c8016 (diff) | |
Go back to recording the ADMIN ACL in history
This turned out to not be necessary for testing since I was already
using sqlite3 to load an unversioned schema.  Remove the offending
line and restore the old code with some cleanup.
Change-Id: I282b6f3b4754e4899222be6366b77a47f0cb7189
Reviewed-on: https://gerrit.stanford.edu/1575
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>
Diffstat (limited to 'perl')
| -rw-r--r-- | perl/lib/Wallet/Admin.pm | 18 | ||||
| -rwxr-xr-x | perl/t/general/admin.t | 1 | ||||
| -rwxr-xr-x | perl/t/general/server.t | 18 | 
3 files changed, 18 insertions, 19 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/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'); | 
