diff options
| author | Russ Allbery <rra@stanford.edu> | 2013-03-27 15:19:46 -0700 | 
|---|---|---|
| committer | Russ Allbery <rra@stanford.edu> | 2013-03-27 15:19:46 -0700 | 
| commit | 6871bae8e26beadaff5035de56b4f70a78961dc9 (patch) | |
| tree | 366943055e3db5c26a9415d1d2ea1486054e8177 /perl/Wallet/Schema | |
| parent | 61c348a8cc08e90c73993e09dc175b44c5a65681 (diff) | |
| parent | 06c44c9eb5efb00bb9368ed3709106c91b0b36b5 (diff) | |
Imported Upstream version 1.0
Diffstat (limited to 'perl/Wallet/Schema')
| -rw-r--r-- | perl/Wallet/Schema/Result/Acl.pm | 110 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/AclEntry.pm | 74 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/AclHistory.pm | 112 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/AclScheme.pm | 84 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/Enctype.pm | 45 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/Flag.pm | 62 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/KeytabEnctype.pm | 53 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/KeytabSync.pm | 53 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/Object.pm | 266 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/ObjectHistory.pm | 135 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/SyncTarget.pm | 48 | ||||
| -rw-r--r-- | perl/Wallet/Schema/Result/Type.pm | 75 | 
12 files changed, 1117 insertions, 0 deletions
| diff --git a/perl/Wallet/Schema/Result/Acl.pm b/perl/Wallet/Schema/Result/Acl.pm new file mode 100644 index 0000000..226738a --- /dev/null +++ b/perl/Wallet/Schema/Result/Acl.pm @@ -0,0 +1,110 @@ +# Wallet schema for an ACL. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::Acl; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=for stopwords +ACL + +=head1 NAME + +Wallet::Schema::Result::Acl - Wallet schema for an ACL + +=head1 DESCRIPTION + +=cut + +__PACKAGE__->table("acls"); + +=head1 ACCESSORS + +=head2 ac_id + +  data_type: 'integer' +  is_auto_increment: 1 +  is_nullable: 0 + +=head2 ac_name + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=cut + +__PACKAGE__->add_columns( +  "ac_id", +  { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, +  "ac_name", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +); +__PACKAGE__->set_primary_key("ac_id"); +__PACKAGE__->add_unique_constraint("ac_name", ["ac_name"]); + +__PACKAGE__->has_one( +                     'acl_entries', +                     'Wallet::Schema::Result::AclEntry', +                     { 'foreign.ae_id' => 'self.ac_id' }, +                     { cascade_copy => 0, cascade_delete => 0 }, +                    ); +__PACKAGE__->has_many( +                      'acl_history', +                      'Wallet::Schema::Result::AclHistory', +                      { 'foreign.ah_id' => 'self.ac_id' }, +                      { cascade_copy => 0, cascade_delete => 0 }, +                     ); + +# References for all of the various potential ACLs in owners. +__PACKAGE__->has_many( +                        'acls_owner', +                        'Wallet::Schema::Result::Object', +                        { 'foreign.ob_owner' => 'self.ac_id' }, +                       ); +__PACKAGE__->has_many( +                        'acls_get', +                        'Wallet::Schema::Result::Object', +                        { 'foreign.ob_acl_get' => 'self.ac_id' }, +                       ); +__PACKAGE__->has_many( +                        'acls_store', +                        'Wallet::Schema::Result::Object', +                        { 'foreign.ob_acl_store' => 'self.ac_id' }, +                       ); +__PACKAGE__->has_many( +                        'acls_show', +                        'Wallet::Schema::Result::Object', +                        { 'foreign.ob_acl_show' => 'self.ac_id' }, +                       ); +__PACKAGE__->has_many( +                        'acls_destroy', +                        'Wallet::Schema::Result::Object', +                        { 'foreign.ob_acl_destroy' => 'self.ac_id' }, +                       ); +__PACKAGE__->has_many( +                        'acls_flags', +                        'Wallet::Schema::Result::Object', +                        { 'foreign.ob_acl_flags' => 'self.ac_id' }, +                       ); + +# Override the insert method so that we can automatically create history +# items. +#sub insert { +#    my ($self, @args) = @_; +#    my $ret = $self->next::method (@args); +#    print "ID: ".$self->ac_id."\n"; +#    use Data::Dumper; print Dumper (@args); + +#    return $self; +#} + +1; diff --git a/perl/Wallet/Schema/Result/AclEntry.pm b/perl/Wallet/Schema/Result/AclEntry.pm new file mode 100644 index 0000000..a33a98c --- /dev/null +++ b/perl/Wallet/Schema/Result/AclEntry.pm @@ -0,0 +1,74 @@ +# Wallet schema for an entry in an ACL. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::AclEntry; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=for stopwords +ACL + +=head1 NAME + +Wallet::Schema::Result::AclEntry - Wallet schema for an entry in an ACL + +=head1 DESCRIPTION + +=cut + +__PACKAGE__->table("acl_entries"); + +=head1 ACCESSORS + +=head2 ae_id + +  data_type: 'integer' +  is_nullable: 0 + +=head2 ae_scheme + +  data_type: 'varchar' +  is_nullable: 0 +  size: 32 + +=head2 ae_identifier + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=cut + +__PACKAGE__->add_columns( +  "ae_id", +  { data_type => "integer", is_nullable => 0 }, +  "ae_scheme", +  { data_type => "varchar", is_nullable => 0, size => 32 }, +  "ae_identifier", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +); +__PACKAGE__->set_primary_key("ae_id", "ae_scheme", "ae_identifier"); + +__PACKAGE__->belongs_to( +                      'acls', +                      'Wallet::Schema::Result::Acl', +                      { 'foreign.ac_id' => 'self.ae_id' }, +                      { is_deferrable => 1, on_delete => 'CASCADE', +                        on_update => 'CASCADE' }, +                     ); + +__PACKAGE__->has_one( +                     'acl_scheme', +                     'Wallet::Schema::Result::AclScheme', +                     { 'foreign.as_name' => 'self.ae_scheme' }, +                     { cascade_delete => 0 }, +                    ); +1; diff --git a/perl/Wallet/Schema/Result/AclHistory.pm b/perl/Wallet/Schema/Result/AclHistory.pm new file mode 100644 index 0000000..d3ef901 --- /dev/null +++ b/perl/Wallet/Schema/Result/AclHistory.pm @@ -0,0 +1,112 @@ +# Wallet schema for ACL history. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::AclHistory; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +__PACKAGE__->load_components("InflateColumn::DateTime"); + +=for stopwords +ACL + +=head1 NAME + +Wallet::Schema::Result::AclHistory - Wallet schema for ACL history + +=head1 DESCRIPTION + +=cut + +__PACKAGE__->table("acl_history"); + +=head1 ACCESSORS + +=head2 ah_id + +  data_type: 'integer' +  is_auto_increment: 1 +  is_nullable: 0 + +=head2 ah_acl + +  data_type: 'integer' +  is_nullable: 0 + +=head2 ah_action + +  data_type: 'varchar' +  is_nullable: 0 +  size: 16 + +=head2 ah_scheme + +  data_type: 'varchar' +  is_nullable: 1 +  size: 32 + +=head2 ah_identifier + +  data_type: 'varchar' +  is_nullable: 1 +  size: 255 + +=head2 ah_by + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 ah_from + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 ah_on + +  data_type: 'datetime' +  datetime_undef_if_invalid: 1 +  is_nullable: 0 + +=cut + +__PACKAGE__->add_columns( +  "ah_id", +  { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, +  "ah_acl", +  { data_type => "integer", is_nullable => 0 }, +  "ah_action", +  { data_type => "varchar", is_nullable => 0, size => 16 }, +  "ah_scheme", +  { data_type => "varchar", is_nullable => 1, size => 32 }, +  "ah_identifier", +  { data_type => "varchar", is_nullable => 1, size => 255 }, +  "ah_by", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "ah_from", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "ah_on", +  { +    data_type => "datetime", +    datetime_undef_if_invalid => 1, +    is_nullable => 0, +  }, +); +__PACKAGE__->set_primary_key("ah_id"); + +__PACKAGE__->might_have( +                        'acls', +                        'Wallet::Schema::Result::Acl', +                        { 'foreign.ac_id' => 'self.ah_id' }, +                       ); + +1; diff --git a/perl/Wallet/Schema/Result/AclScheme.pm b/perl/Wallet/Schema/Result/AclScheme.pm new file mode 100644 index 0000000..91a58b2 --- /dev/null +++ b/perl/Wallet/Schema/Result/AclScheme.pm @@ -0,0 +1,84 @@ +# Wallet schema for ACL scheme. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::AclScheme; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; +__PACKAGE__->load_components (qw//); + +=for stopwords +ACL verifier APIs + +=head1 NAME + +Wallet::Schema::Result::AclScheme - Wallet schema for ACL scheme + +=head1 DESCRIPTION + +This is a normalization table used to constrain the values in other +tables.  It contains the types of ACL schemes that Wallet will +recognize, and the modules that govern each of those schemes. + +By default it contains the following entries: + +  insert into acl_schemes (as_name, as_class) +      values ('krb5', 'Wallet::ACL::Krb5'); +  insert into acl_schemes (as_name, as_class) +      values ('krb5-regex', 'Wallet::ACL::Krb5::Regex'); +  insert into acl_schemes (as_name, as_class) +      values ('ldap-attr', 'Wallet::ACL::LDAP::Attribute'); +  insert into acl_schemes (as_name, as_class) +      values ('netdb', 'Wallet::ACL::NetDB'); +  insert into acl_schemes (as_name, as_class) +      values ('netdb-root', 'Wallet::ACL::NetDB::Root'); + +If you have extended the wallet to support additional ACL schemes, you +will want to add additional rows to this table mapping those schemes +to Perl classes that implement the ACL verifier APIs. + +=cut + +__PACKAGE__->table("acl_schemes"); + +=head1 ACCESSORS + +=head2 as_name + +  data_type: 'varchar' +  is_nullable: 0 +  size: 32 + +=head2 as_class + +  data_type: 'varchar' +  is_nullable: 1 +  size: 64 + +=cut + +__PACKAGE__->add_columns( +  "as_name", +  { data_type => "varchar", is_nullable => 0, size => 32 }, +  "as_class", +  { data_type => "varchar", is_nullable => 1, size => 64 }, +); +__PACKAGE__->set_primary_key("as_name"); + +#__PACKAGE__->resultset->populate ([ +#                       [ qw/as_name as_class/ ], +#                       [ 'krb5',       'Wallet::ACL::Krb5'            ], +#                       [ 'krb5-regex', 'Wallet::ACL::Krb5::Regex'     ], +#                       [ 'ldap-attr',  'Wallet::ACL::LDAP::Attribute' ], +#                       [ 'netdb',      'Wallet::ACL::NetDB'           ], +#                       [ 'netdb-root', 'Wallet::ACL::NetDB::Root'     ], +#                      ]); + +1; diff --git a/perl/Wallet/Schema/Result/Enctype.pm b/perl/Wallet/Schema/Result/Enctype.pm new file mode 100644 index 0000000..5733669 --- /dev/null +++ b/perl/Wallet/Schema/Result/Enctype.pm @@ -0,0 +1,45 @@ +# Wallet schema for Kerberos encryption type. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::Enctype; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=for stopwords +Kerberos + +=head1 NAME + +Wallet::Schema::Result::Enctype - Wallet schema for Kerberos encryption type + +=head1 DESCRIPTION + +=cut + +__PACKAGE__->table("enctypes"); + +=head1 ACCESSORS + +=head2 en_name + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=cut + +__PACKAGE__->add_columns( +  "en_name", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +); +__PACKAGE__->set_primary_key("en_name"); + +1; diff --git a/perl/Wallet/Schema/Result/Flag.pm b/perl/Wallet/Schema/Result/Flag.pm new file mode 100644 index 0000000..e223ff8 --- /dev/null +++ b/perl/Wallet/Schema/Result/Flag.pm @@ -0,0 +1,62 @@ +# Wallet schema for object flags. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::Flag; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 NAME + +Wallet::Schema::Result::Flag - Wallet schema for object flags + +=head1 DESCRIPTION + +=cut + +__PACKAGE__->table("flags"); + +=head1 ACCESSORS + +=head2 fl_type + +  data_type: 'varchar' +  is_nullable: 0 +  size: 16 + +=head2 fl_name + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 fl_flag + +  data_type: 'varchar' +  is_nullable: 0 +  size: 32 + +=cut + +__PACKAGE__->add_columns( +  "fl_type" => +  { data_type => "varchar", is_nullable => 0, size => 16 }, +  "fl_name" => +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "fl_flag" => { +      data_type => 'enum', +      is_enum   => 1, +      extra     => { list => [qw/locked unchanging/] }, +  }, +); +__PACKAGE__->set_primary_key("fl_type", "fl_name", "fl_flag"); + + +1; diff --git a/perl/Wallet/Schema/Result/KeytabEnctype.pm b/perl/Wallet/Schema/Result/KeytabEnctype.pm new file mode 100644 index 0000000..daea724 --- /dev/null +++ b/perl/Wallet/Schema/Result/KeytabEnctype.pm @@ -0,0 +1,53 @@ +# Wallet schema for keytab enctype. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::KeytabEnctype; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=for stopwords +keytab enctype + +=head1 NAME + +Wallet::Schema::Result::KeytabEnctype - Wallet schema for keytab enctype + +=head1 DESCRIPTION + +=cut + +__PACKAGE__->table("keytab_enctypes"); + +=head1 ACCESSORS + +=head2 ke_name + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 ke_enctype + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=cut + +__PACKAGE__->add_columns( +  "ke_name", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "ke_enctype", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +); +__PACKAGE__->set_primary_key("ke_name", "ke_enctype"); + +1; diff --git a/perl/Wallet/Schema/Result/KeytabSync.pm b/perl/Wallet/Schema/Result/KeytabSync.pm new file mode 100644 index 0000000..ca84277 --- /dev/null +++ b/perl/Wallet/Schema/Result/KeytabSync.pm @@ -0,0 +1,53 @@ +# Wallet schema for keytab synchronization. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::KeytabSync; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=for stopwords +keytab + +=head1 NAME + +Wallet::Schema::Result::KeytabSync - Wallet schema for keytab synchronization + +=head1 DESCRIPTION + +=cut + +__PACKAGE__->table("keytab_sync"); + +=head1 ACCESSORS + +=head2 ks_name + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 ks_target + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=cut + +__PACKAGE__->add_columns( +  "ks_name", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "ks_target", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +); +__PACKAGE__->set_primary_key("ks_name", "ks_target"); + +1; diff --git a/perl/Wallet/Schema/Result/Object.pm b/perl/Wallet/Schema/Result/Object.pm new file mode 100644 index 0000000..fd64e1b --- /dev/null +++ b/perl/Wallet/Schema/Result/Object.pm @@ -0,0 +1,266 @@ +# Wallet schema for an object. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::Object; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +__PACKAGE__->load_components("InflateColumn::DateTime"); + +=head1 NAME + +Wallet::Schema::Result::Object - Wallet schema for an object + +=head1 DESCRIPTION + +=cut + +__PACKAGE__->table("objects"); + +=head1 ACCESSORS + +=head2 ob_type + +  data_type: 'varchar' +  is_nullable: 0 +  size: 16 + +=head2 ob_name + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 ob_owner + +  data_type: 'integer' +  is_nullable: 1 + +=head2 ob_acl_get + +  data_type: 'integer' +  is_nullable: 1 + +=head2 ob_acl_store + +  data_type: 'integer' +  is_nullable: 1 + +=head2 ob_acl_show + +  data_type: 'integer' +  is_nullable: 1 + +=head2 ob_acl_destroy + +  data_type: 'integer' +  is_nullable: 1 + +=head2 ob_acl_flags + +  data_type: 'integer' +  is_nullable: 1 + +=head2 ob_expires + +  data_type: 'datetime' +  datetime_undef_if_invalid: 1 +  is_nullable: 1 + +=head2 ob_created_by + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 ob_created_from + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 ob_created_on + +  data_type: 'datetime' +  datetime_undef_if_invalid: 1 +  is_nullable: 0 + +=head2 ob_stored_by + +  data_type: 'varchar' +  is_nullable: 1 +  size: 255 + +=head2 ob_stored_from + +  data_type: 'varchar' +  is_nullable: 1 +  size: 255 + +=head2 ob_stored_on + +  data_type: 'datetime' +  datetime_undef_if_invalid: 1 +  is_nullable: 1 + +=head2 ob_downloaded_by + +  data_type: 'varchar' +  is_nullable: 1 +  size: 255 + +=head2 ob_downloaded_from + +  data_type: 'varchar' +  is_nullable: 1 +  size: 255 + +=head2 ob_downloaded_on + +  data_type: 'datetime' +  datetime_undef_if_invalid: 1 +  is_nullable: 1 + +=head2 ob_comment + +  data_type: 'varchar' +  is_nullable: 1 +  size: 255 + +=cut + +__PACKAGE__->add_columns( +  "ob_type", +  { data_type => "varchar", is_nullable => 0, size => 16 }, +  "ob_name", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "ob_owner", +  { data_type => "integer", is_nullable => 1 }, +  "ob_acl_get", +  { data_type => "integer", is_nullable => 1 }, +  "ob_acl_store", +  { data_type => "integer", is_nullable => 1 }, +  "ob_acl_show", +  { data_type => "integer", is_nullable => 1 }, +  "ob_acl_destroy", +  { data_type => "integer", is_nullable => 1 }, +  "ob_acl_flags", +  { data_type => "integer", is_nullable => 1 }, +  "ob_expires", +  { +    data_type => "datetime", +    datetime_undef_if_invalid => 1, +    is_nullable => 1, +  }, +  "ob_created_by", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "ob_created_from", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "ob_created_on", +  { +    data_type => "datetime", +    datetime_undef_if_invalid => 1, +    is_nullable => 0, +  }, +  "ob_stored_by", +  { data_type => "varchar", is_nullable => 1, size => 255 }, +  "ob_stored_from", +  { data_type => "varchar", is_nullable => 1, size => 255 }, +  "ob_stored_on", +  { +    data_type => "datetime", +    datetime_undef_if_invalid => 1, +    is_nullable => 1, +  }, +  "ob_downloaded_by", +  { data_type => "varchar", is_nullable => 1, size => 255 }, +  "ob_downloaded_from", +  { data_type => "varchar", is_nullable => 1, size => 255 }, +  "ob_downloaded_on", +  { +    data_type => "datetime", +    datetime_undef_if_invalid => 1, +    is_nullable => 1, +  }, +  "ob_comment", +  { data_type => "varchar", is_nullable => 1, size => 255 }, +); +__PACKAGE__->set_primary_key("ob_name", "ob_type"); + +__PACKAGE__->has_one( +                     'types', +                     'Wallet::Schema::Result::Type', +                     { 'foreign.ty_name' => 'self.ob_type' }, +                    ); + +__PACKAGE__->has_many( +                      'flags', +                      'Wallet::Schema::Result::Flag', +                      { 'foreign.fl_type' => 'self.ob_type', +                        'foreign.fl_name' => 'self.ob_name' }, +                      { cascade_copy => 0, cascade_delete => 0 }, +                     ); + +__PACKAGE__->has_many( +                      'object_history', +                      'Wallet::Schema::Result::ObjectHistory', +                      { 'foreign.oh_type' => 'self.ob_type', +                        'foreign.oh_name' => 'self.ob_name' }, +                      { cascade_copy => 0, cascade_delete => 0 }, +                     ); + +__PACKAGE__->has_many( +                      'keytab_enctypes', +                      'Wallet::Schema::Result::KeytabEnctype', +                      { 'foreign.ke_name' => 'self.ob_name' }, +                      { cascade_copy => 0, cascade_delete => 0 }, +                     ); + +__PACKAGE__->has_many( +                      'keytab_sync', +                      'Wallet::Schema::Result::KeytabSync', +                      { 'foreign.ks_name' => 'self.ob_name' }, +                      { cascade_copy => 0, cascade_delete => 0 }, +                     ); + +# References for all of the various potential ACLs. +__PACKAGE__->belongs_to( +                        'acls_owner', +                        'Wallet::Schema::Result::Acl', +                        { 'foreign.ac_id' => 'self.ob_owner' }, +                       ); +__PACKAGE__->belongs_to( +                        'acls_get', +                        'Wallet::Schema::Result::Acl', +                        { 'foreign.ac_id' => 'self.ob_acl_get' }, +                       ); +__PACKAGE__->belongs_to( +                        'acls_store', +                        'Wallet::Schema::Result::Acl', +                        { 'foreign.ac_id' => 'self.ob_acl_store' }, +                       ); +__PACKAGE__->belongs_to( +                        'acls_show', +                        'Wallet::Schema::Result::Acl', +                        { 'foreign.ac_id' => 'self.ob_acl_show' }, +                       ); +__PACKAGE__->belongs_to( +                        'acls_destroy', +                        'Wallet::Schema::Result::Acl', +                        { 'foreign.ac_id' => 'self.ob_acl_destroy' }, +                       ); +__PACKAGE__->belongs_to( +                        'acls_flags', +                        'Wallet::Schema::Result::Acl', +                        { 'foreign.ac_id' => 'self.ob_acl_flags' }, +                       ); + +1; diff --git a/perl/Wallet/Schema/Result/ObjectHistory.pm b/perl/Wallet/Schema/Result/ObjectHistory.pm new file mode 100644 index 0000000..9cbb159 --- /dev/null +++ b/perl/Wallet/Schema/Result/ObjectHistory.pm @@ -0,0 +1,135 @@ +# Wallet schema for object history. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::ObjectHistory; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +__PACKAGE__->load_components("InflateColumn::DateTime"); + +=head1 NAME + +Wallet::Schema::Result::ObjectHistory - Wallet schema for object history + +=head1 DESCRIPTION + +=cut + +__PACKAGE__->table("object_history"); + +=head1 ACCESSORS + +=head2 oh_id + +  data_type: 'integer' +  is_auto_increment: 1 +  is_nullable: 0 + +=head2 oh_type + +  data_type: 'varchar' +  is_nullable: 0 +  size: 16 + +=head2 oh_name + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 oh_action + +  data_type: 'varchar' +  is_nullable: 0 +  size: 16 + +=head2 oh_field + +  data_type: 'varchar' +  is_nullable: 1 +  size: 16 + +=head2 oh_type_field + +  data_type: 'varchar' +  is_nullable: 1 +  size: 255 + +=head2 oh_old + +  data_type: 'varchar' +  is_nullable: 1 +  size: 255 + +=head2 oh_new + +  data_type: 'varchar' +  is_nullable: 1 +  size: 255 + +=head2 oh_by + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 oh_from + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=head2 oh_on + +  data_type: 'datetime' +  datetime_undef_if_invalid: 1 +  is_nullable: 0 + +=cut + +__PACKAGE__->add_columns( +  "oh_id", +  { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, +  "oh_type", +  { data_type => "varchar", is_nullable => 0, size => 16 }, +  "oh_name", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "oh_action", +  { data_type => "varchar", is_nullable => 0, size => 16 }, +  "oh_field", +  { data_type => "varchar", is_nullable => 1, size => 16 }, +  "oh_type_field", +  { data_type => "varchar", is_nullable => 1, size => 255 }, +  "oh_old", +  { data_type => "varchar", is_nullable => 1, size => 255 }, +  "oh_new", +  { data_type => "varchar", is_nullable => 1, size => 255 }, +  "oh_by", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "oh_from", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +  "oh_on", +  { +    data_type => "datetime", +    datetime_undef_if_invalid => 1, +    is_nullable => 0, +  }, +); +__PACKAGE__->set_primary_key("oh_id"); + +__PACKAGE__->might_have( +                        'objects', +                        'Wallet::Schema::Result::Object', +                        { 'foreign.ob_type' => 'self.oh_type', +                          'foreign.ob_name' => 'self.oh_name' }, +                       ); + +1; diff --git a/perl/Wallet/Schema/Result/SyncTarget.pm b/perl/Wallet/Schema/Result/SyncTarget.pm new file mode 100644 index 0000000..4300a54 --- /dev/null +++ b/perl/Wallet/Schema/Result/SyncTarget.pm @@ -0,0 +1,48 @@ +# Wallet schema for synchronization targets. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::SyncTarget; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 NAME + +Wallet::Schema::Result::SyncTarget - Wallet schema for synchronization targets + +=head1 DESCRIPTION + +=cut + +__PACKAGE__->table("sync_targets"); + +=head1 ACCESSORS + +=head2 st_name + +  data_type: 'varchar' +  is_nullable: 0 +  size: 255 + +=cut + +__PACKAGE__->add_columns( +  "st_name", +  { data_type => "varchar", is_nullable => 0, size => 255 }, +); +__PACKAGE__->set_primary_key("st_name"); + +#__PACKAGE__->has_many( +#                      'keytab_sync', +#                      'Wallet::Schema::Result::KeytabSync', +#                      { 'foreign.ks_target' => 'self.st_name' }, +#                      { cascade_copy => 0, cascade_delete => 0 }, +#                     ); +1; diff --git a/perl/Wallet/Schema/Result/Type.pm b/perl/Wallet/Schema/Result/Type.pm new file mode 100644 index 0000000..748a8a8 --- /dev/null +++ b/perl/Wallet/Schema/Result/Type.pm @@ -0,0 +1,75 @@ +# Wallet schema for object types. +# +# Written by Jon Robertson <jonrober@stanford.edu> +# Copyright 2012, 2013 +#     The Board of Trustees of the Leland Stanford Junior University +# +# See LICENSE for licensing terms. + +package Wallet::Schema::Result::Type; + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=for stopwords +APIs + +=head1 NAME + +Wallet::Schema::Result::Type - Wallet schema for object types + +=head1 DESCRIPTION + +This is a normalization table used to constrain the values in other +tables.  It contains the types of wallet objects that are considered +valid, and the modules that govern each. + +By default it contains the following entries: + +  insert into types (ty_name, ty_class) +      values ('file', 'Wallet::Object::File'); +  insert into types (ty_name, ty_class) +      values ('keytab', 'Wallet::Object::Keytab'); + +If you have extended the wallet to support additional object types , +you will want to add additional rows to this table mapping those types +to Perl classes that implement the object APIs. + +=cut + +__PACKAGE__->table("types"); + +=head1 ACCESSORS + +=head2 ty_name + +  data_type: 'varchar' +  is_nullable: 0 +  size: 16 + +=head2 ty_class + +  data_type: 'varchar' +  is_nullable: 1 +  size: 64 + +=cut + +__PACKAGE__->add_columns( +  "ty_name", +  { data_type => "varchar", is_nullable => 0, size => 16 }, +  "ty_class", +  { data_type => "varchar", is_nullable => 1, size => 64 }, +); +__PACKAGE__->set_primary_key("ty_name"); + +#__PACKAGE__->has_many( +#                      'objects', +#                      'Wallet::Schema::Result::Object', +#                      { 'foreign.ob_type' => 'self.ty_name' }, +#                      { cascade_copy => 0, cascade_delete => 0 }, +#                     ); + +1; | 
