+#
+# actions: database administration
+#
+
+sub action_database_administration {
+ my ($self) = @_;
+
+ $::form->{dbhost} ||= $::auth->{DB_config}->{host} || 'localhost';
+ $::form->{dbport} ||= $::auth->{DB_config}->{port} || 5432;
+ $::form->{dbuser} ||= $::auth->{DB_config}->{user} || 'kivitendo';
+ $::form->{dbpasswd} ||= $::auth->{DB_config}->{password};
+ $::form->{dbdefault} ||= 'template1';
+
+ $self->render('admin/dbadmin', title => t8('Database Administration'));
+}
+
+sub action_create_dataset {
+ my ($self) = @_;
+ $self->create_dataset_form;
+}
+
+sub action_do_create_dataset {
+ my ($self) = @_;
+
+ my @errors;
+ push @errors, t8("Dataset missing!") if !$::form->{db};
+ push @errors, t8("Default currency missing!") if !$::form->{defaultcurrency};
+
+ if (@errors) {
+ flash('error', @errors);
+ return $self->create_dataset_form;
+ }
+
+ $::form->{encoding} = 'UNICODE';
+ User->new->dbcreate($::form);
+
+ flash_later('info', t8("The dataset #1 has been created.", $::form->{db}));
+ $self->redirect_to(action => 'database_administration');
+}
+
+sub action_delete_dataset {
+ my ($self) = @_;
+ $self->delete_dataset_form;
+}
+
+sub action_do_delete_dataset {
+ my ($self) = @_;
+
+ my @errors;
+ push @errors, t8("Dataset missing!") if !$::form->{db};
+
+ if (@errors) {
+ flash('error', @errors);
+ return $self->create_dataset_form;
+ }
+
+ User->new->dbdelete($::form);
+
+ flash_later('info', t8("The dataset #1 has been deleted.", $::form->{db}));
+ $self->redirect_to(action => 'database_administration');
+}
+