+sub logout {
+ $auth->destroy_session();
+ adminlogin();
+}
+
+sub check_auth_db_and_tables {
+ my %params;
+
+ map { $params{"db_${_}"} = $auth->{DB_config}->{$_} } keys %{ $auth->{DB_config} };
+
+ if (!$auth->check_database()) {
+ $form->{title} = $locale->text('Authentification database creation');
+ $form->header();
+ print $form->parse_html_template('admin/check_auth_database', \%params);
+
+ exit 0;
+ }
+
+ if (!$auth->check_tables()) {
+ $form->{title} = $locale->text('Authentification tables creation');
+ $form->header();
+ print $form->parse_html_template('admin/check_auth_tables', \%params);
+
+ exit 0;
+ }
+
+ if (-f $memberfile) {
+ my $memberdir = "";
+
+ if ($memberfile =~ m|^.*/|) {
+ $memberdir = $&;
+ }
+
+ my $backupdir = "${memberdir}member-file-migration";
+
+ $form->{title} = $locale->text('User data migration');
+ $form->header();
+ print $form->parse_html_template('admin/user_migration', { 'memberfile' => $memberfile,
+ 'backupdir' => $backupdir });
+
+ exit 0
+ }
+}
+
+sub create_auth_db {
+ $auth->create_database('superuser' => $form->{db_superuser},
+ 'superuser_password' => $form->{db_superuser_password},
+ 'template' => $form->{db_template});
+ login();
+}
+
+sub create_auth_tables {
+ $auth->create_tables();
+ $auth->set_session_value('rpw', $form->{rpw});
+ $auth->create_or_refresh_session();
+
+ if (!-f $memberfile) {
+ # New installation -- create a standard group with full access
+ my $group = {
+ 'name' => $locale->text('Full Access'),
+ 'description' => $locale->text('Full access to all functions'),
+ 'rights' => { map { $_ => 1 } SL::Auth::all_rights() },
+ 'members' => [ map { $_->{id} } values %members ],
+ };
+
+ $auth->save_group($group);
+ }
+
+ login();
+}
+
+sub migrate_users {
+ $lxdebug->enter_sub();
+
+ my $memberdir = "";
+
+ if ($memberfile =~ m|^.*/|) {
+ $memberdir = $&;
+ }
+
+ my $backupdir = "${memberdir}member-file-migration";
+
+ if (! -d $backupdir && !mkdir $backupdir, 0700) {
+ $form->error(sprintf($locale->text('The directory "%s" could not be created:\n%s'), $backupdir, $!));
+ }
+
+ copy $memberfile, "users/member-file-migration/members";