diff --git a/lib/NGCP/Schema/Result/admin_password_journal.pm b/lib/NGCP/Schema/Result/admin_password_journal.pm new file mode 100644 index 00000000..dc93457c --- /dev/null +++ b/lib/NGCP/Schema/Result/admin_password_journal.pm @@ -0,0 +1,146 @@ +package NGCP::Schema::Result::admin_password_journal; + +use strict; +use warnings; + +use Scalar::Util qw(blessed); +use parent 'DBIx::Class::Core'; + +our $VERSION = '2.007'; + +__PACKAGE__->load_components("InflateColumn::DateTime", "Helper::Row::ToJSON"); + +__PACKAGE__->table("billing.admin_password_journal"); + +__PACKAGE__->add_columns( + "id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_auto_increment => 1, + is_nullable => 0, + }, + "admin_id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_foreign_key => 1, + is_nullable => 0, + }, + "value", + { data_type => "char", is_nullable => 1, size => 54 }, + "created_at", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + default_value => \"current_timestamp", + is_nullable => 0, + }, +); + +__PACKAGE__->set_primary_key("id"); + +__PACKAGE__->belongs_to( + "admin", + "NGCP::Schema::Result::admins", + { id => "admin_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); + +sub TO_JSON { + my ($self) = @_; + return { + map { blessed($_) && $_->isa('DateTime') ? $_->datetime : $_ } %{ $self->next::method } + }; +} + +1; +__END__ + +=encoding UTF-8 + +=head1 NAME + +NGCP::Schema::Result::admin_password_journal + +=head1 DESCRIPTION + +This module is a schema class for the NGCP database table "billing.admin_password_journal". + +=head1 COMPONENTS LOADED + +=over 4 + +=item * L + +=item * L + +=back + +=head1 TABLE: C + +=head1 ACCESSORS + +=head2 id + + data_type: 'integer' + extra: {unsigned => 1} + is_auto_increment: 1 + is_nullable: 0 + +=head2 admin_id + + data_type: 'integer' + extra: {unsigned => 1} + is_foreign_key: 1 + is_nullable: 0 + +=head2 value + + data_type: 'char' + is_nullable: 1 + size: 54 + +=head2 created_at + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + default_value: 'current_timestamp' + is_nullable: 0 + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=head1 RELATIONS + +=head2 admin + +Type: belongs_to + +Related object: L + +=head1 AUTHOR + +Sipwise Development Team C<< >> + +=head1 LICENSE + +This software is Copyright © 224 by Sipwise GmbH, Austria. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this package. If not, see . diff --git a/lib/NGCP/Schema/Result/admins.pm b/lib/NGCP/Schema/Result/admins.pm index ec93c755..4d90a412 100644 --- a/lib/NGCP/Schema/Result/admins.pm +++ b/lib/NGCP/Schema/Result/admins.pm @@ -76,6 +76,13 @@ __PACKAGE__->add_columns( { data_type => "tinyint", default_value => 1, is_nullable => 0 }, "is_system", { data_type => "tinyint", default_value => 0, is_nullable => 0 }, + "saltedpass_modify_timestamp", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + default_value => \"current_timestamp", + is_nullable => 0, + }, ); __PACKAGE__->set_primary_key("id"); @@ -105,6 +112,13 @@ __PACKAGE__->belongs_to( { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); +__PACKAGE__->has_many( + "last_passwords", + "NGCP::Schema::Result::admin_password_journal", + { "foreign.admin_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + sub TO_JSON { my ($self) = @_; return { @@ -220,6 +234,13 @@ This module is a schema class for the NGCP database table "billing.admins". extra: {unsigned => 1} is_nullable: 1 +=head2 saltedpass_modify_timestamp + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + default_value: current_timestamp + is_nullable: 0 + =head1 PRIMARY KEY =over 4 diff --git a/lib/NGCP/Schema/Result/provisioning_voip_subscribers.pm b/lib/NGCP/Schema/Result/provisioning_voip_subscribers.pm index dedab58b..9f4f7645 100644 --- a/lib/NGCP/Schema/Result/provisioning_voip_subscribers.pm +++ b/lib/NGCP/Schema/Result/provisioning_voip_subscribers.pm @@ -85,6 +85,20 @@ __PACKAGE__->add_columns( default_value => "0000-00-00 00:00:00", is_nullable => 0, }, + "password_modify_timestamp", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + default_value => \"current_timestamp", + is_nullable => 0, + }, + "webpassword_modify_timestamp", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + default_value => \"current_timestamp", + is_nullable => 0, + }, ); __PACKAGE__->set_primary_key("id"); @@ -277,6 +291,20 @@ __PACKAGE__->has_one( { cascade_copy => 0, cascade_delete => 0 }, ); +__PACKAGE__->has_many( + "last_passwords", + "NGCP::Schema::Result::voip_subscriber_password_journal", + { "foreign.subscriber_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + +__PACKAGE__->has_many( + "last_webpasswords", + "NGCP::Schema::Result::voip_subscriber_webpassword_journal", + { "foreign.subscriber_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); + __PACKAGE__->belongs_to( "contract", "NGCP::Schema::Result::contracts", @@ -482,6 +510,20 @@ This module is a schema class for the NGCP database table "provisioning.voip_sub default_value: '0000-00-00 00:00:00' is_nullable: 0 +=head2 password_modify_timestamp + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + default_value: current_timestamp + is_nullable: 0 + +=head2 webpassword_modify_timestamp + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + default_value: current_timestamp + is_nullable: 0 + =head1 PRIMARY KEY =over 4 @@ -648,6 +690,18 @@ Type: might_have Related object: L +=head2 last_passwords + +Type: has_many + +Related object: L + +=head2 last_webpasswords + +Type: has_many + +Related object: L + =head1 AUTHOR Sipwise Development Team C<< >> diff --git a/lib/NGCP/Schema/Result/voip_subscriber_password_journal.pm b/lib/NGCP/Schema/Result/voip_subscriber_password_journal.pm new file mode 100644 index 00000000..1ae84042 --- /dev/null +++ b/lib/NGCP/Schema/Result/voip_subscriber_password_journal.pm @@ -0,0 +1,146 @@ +package NGCP::Schema::Result::voip_subscriber_password_journal; + +use strict; +use warnings; + +use Scalar::Util qw(blessed); +use parent 'DBIx::Class::Core'; + +our $VERSION = '2.007'; + +__PACKAGE__->load_components("InflateColumn::DateTime", "Helper::Row::ToJSON"); + +__PACKAGE__->table("provisioning.voip_subscriber_password_journal"); + +__PACKAGE__->add_columns( + "id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_auto_increment => 1, + is_nullable => 0, + }, + "subscriber_id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_foreign_key => 1, + is_nullable => 0, + }, + "value", + { data_type => "char", is_nullable => 1, size => 56 }, + "created_at", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + default_value => \"current_timestamp", + is_nullable => 0, + }, +); + +__PACKAGE__->set_primary_key("id"); + +__PACKAGE__->belongs_to( + "subscriber", + "NGCP::Schema::Result::provisioning_voip_subscribers", + { id => "subscriber_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); + +sub TO_JSON { + my ($self) = @_; + return { + map { blessed($_) && $_->isa('DateTime') ? $_->datetime : $_ } %{ $self->next::method } + }; +} + +1; +__END__ + +=encoding UTF-8 + +=head1 NAME + +NGCP::Schema::Result::voip_subscriber_password_journal + +=head1 DESCRIPTION + +This module is a schema class for the NGCP database table "provisioning.voip_subscriber_password_journal". + +=head1 COMPONENTS LOADED + +=over 4 + +=item * L + +=item * L + +=back + +=head1 TABLE: C + +=head1 ACCESSORS + +=head2 id + + data_type: 'integer' + extra: {unsigned => 1} + is_auto_increment: 1 + is_nullable: 0 + +=head2 subscriber_id + + data_type: 'integer' + extra: {unsigned => 1} + is_foreign_key: 1 + is_nullable: 0 + +=head2 value + + data_type: 'char' + is_nullable: 1 + size: 56 + +=head2 created_at + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + default_value: 'current_timestamp' + is_nullable: 0 + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=head1 RELATIONS + +=head2 subcsriber + +Type: belongs_to + +Related object: L + +=head1 AUTHOR + +Sipwise Development Team C<< >> + +=head1 LICENSE + +This software is Copyright © 224 by Sipwise GmbH, Austria. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this package. If not, see . diff --git a/lib/NGCP/Schema/Result/voip_subscriber_webpassword_journal.pm b/lib/NGCP/Schema/Result/voip_subscriber_webpassword_journal.pm new file mode 100644 index 00000000..4431e51a --- /dev/null +++ b/lib/NGCP/Schema/Result/voip_subscriber_webpassword_journal.pm @@ -0,0 +1,146 @@ +package NGCP::Schema::Result::voip_subscriber_webpassword_journal; + +use strict; +use warnings; + +use Scalar::Util qw(blessed); +use parent 'DBIx::Class::Core'; + +our $VERSION = '2.007'; + +__PACKAGE__->load_components("InflateColumn::DateTime", "Helper::Row::ToJSON"); + +__PACKAGE__->table("provisioning.voip_subscriber_webpassword_journal"); + +__PACKAGE__->add_columns( + "id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_auto_increment => 1, + is_nullable => 0, + }, + "subscriber_id", + { + data_type => "integer", + extra => { unsigned => 1 }, + is_foreign_key => 1, + is_nullable => 0, + }, + "value", + { data_type => "char", is_nullable => 1, size => 56 }, + "created_at", + { + data_type => "timestamp", + datetime_undef_if_invalid => 1, + default_value => \"current_timestamp", + is_nullable => 0, + }, +); + +__PACKAGE__->set_primary_key("id"); + +__PACKAGE__->belongs_to( + "subscriber", + "NGCP::Schema::Result::provisioning_voip_subscribers", + { id => "subscriber_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); + +sub TO_JSON { + my ($self) = @_; + return { + map { blessed($_) && $_->isa('DateTime') ? $_->datetime : $_ } %{ $self->next::method } + }; +} + +1; +__END__ + +=encoding UTF-8 + +=head1 NAME + +NGCP::Schema::Result::voip_subscriber_webpassword_journal + +=head1 DESCRIPTION + +This module is a schema class for the NGCP database table "provisioning.voip_subscriber_webpassword_journal". + +=head1 COMPONENTS LOADED + +=over 4 + +=item * L + +=item * L + +=back + +=head1 TABLE: C + +=head1 ACCESSORS + +=head2 id + + data_type: 'integer' + extra: {unsigned => 1} + is_auto_increment: 1 + is_nullable: 0 + +=head2 subscriber_id + + data_type: 'integer' + extra: {unsigned => 1} + is_foreign_key: 1 + is_nullable: 0 + +=head2 value + + data_type: 'char' + is_nullable: 1 + size: 56 + +=head2 created_at + + data_type: 'timestamp' + datetime_undef_if_invalid: 1 + default_value: 'current_timestamp' + is_nullable: 0 + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=back + +=head1 RELATIONS + +=head2 subcsriber + +Type: belongs_to + +Related object: L + +=head1 AUTHOR + +Sipwise Development Team C<< >> + +=head1 LICENSE + +This software is Copyright © 224 by Sipwise GmbH, Austria. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this package. If not, see .