From: Nick J. <nje...@us...> - 2002-02-05 07:23:44
|
Update of /cvsroot/sandweb/sandweb/bin In directory usw-pr-cvs1:/tmp/cvs-serv20162 Modified Files: sandweb.cgi Log Message: * reverted back to old copy, going with a unified $user->* data struct. instead of seperatating them all out. (user prefs, module, repository). General waste of 3 hours :) Index: sandweb.cgi =================================================================== RCS file: /cvsroot/sandweb/sandweb/bin/sandweb.cgi,v retrieving revision 1.153 retrieving revision 1.154 diff -U2 -r1.153 -r1.154 --- sandweb.cgi 2002/02/05 06:43:04 1.153 +++ sandweb.cgi 2002/02/05 07:23:40 1.154 @@ -48,13 +48,9 @@ # these variables are declared here, they will be # instantiated below ( if needed ) -my $userprefs; # user data loaded from users prefs config file -my $repository_settings; # repository data loaded from users prefs config file -my $module_settings; # module data loaded from users prefs config file +my $user; # user data loaded from users config file # internal variable configs for development ease # -my $prefs_config = 'prefs.cfg'; -my $repository_config = 'repository.cfg'; -my $module_config = 'module.cfg'; +my $user_cfg = 'user.cfg'; ############################################################################### @@ -100,14 +96,15 @@ } # has valid auth cookie - my $repository_selected = CGI::param('repository_selected'); - my $repo_name = CGI::param('repo_name'); - my $repo_server = CGI::param('repo_server'); - my $repo_username = CGI::param('repo_username'); - my $repo_type = CGI::param('repo_type'); - my $repo_connection = CGI::param('repo_connection'); - my $repo_root = CGI::param('repo_root'); - my $new_repository = CGI::param('new_repository'); - my $submit = CGI::param('Submit'); + my $repository_selected = CGI::param('repository_selected'); + my $repo_name = CGI::param('repo_name'); + my $repo_server = CGI::param('repo_server'); + my $repo_username = CGI::param('repo_username'); + my $repo_type = CGI::param('repo_type'); + my $repo_connection = CGI::param('repo_connection'); + my $repo_root = CGI::param('repo_root'); + my $new_repository = CGI::param('new_repository'); + my $submit = CGI::param('Submit'); + ####################################################### # Process Action parameter to specified menu @@ -120,5 +117,5 @@ else { # User is logged in; load prefs - load_settings(1); + load_config(1); $log->debug("loading prefs"); @@ -229,29 +226,29 @@ } elsif ( $action eq 'repository_menu' ) { - if ($submit) { - repository_commit( - ck_auth => $ck_auth, - repository_selected => $repository_selected, - repo_name => $repo_name, - repo_server => $repo_server, - repo_username => $repo_username, - repo_type => $repo_type, - repo_connection => $repo_connection, - repo_root => $repo_root, - new_repository => $new_repository, - ); - } else { - repository_menu( - ck_auth => $ck_auth, - repository_selected => $repository_selected, - repo_name => $repo_name, - repo_server => $repo_server, - repo_username => $repo_username, - repo_type => $repo_type, - repo_connection => $repo_connection, - repo_root => $repo_root, - new_repository => $new_repository, - ); - } + if ($submit) { + repository_commit( + ck_auth => $ck_auth, + repository_selected => $repository_selected, + repo_name => $repo_name, + repo_server => $repo_server, + repo_username => $repo_username, + repo_type => $repo_type, + repo_connection => $repo_connection, + repo_root => $repo_root, + new_repository => $new_repository, + ); + } else { + repository_menu( + ck_auth => $ck_auth, + repository_selected => $repository_selected, + repo_name => $repo_name, + repo_server => $repo_server, + repo_username => $repo_username, + repo_type => $repo_type, + repo_connection => $repo_connection, + repo_root => $repo_root, + new_repository => $new_repository, + ); + } } else { @@ -279,10 +276,7 @@ ############################################################################### -#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# ############################################################################### ## Menus -############################################################################### -#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# -############################################################################### +## ############################################################################### @@ -375,7 +369,7 @@ exit 0; } - load_settings(1); + load_config(1); - my $content = Dumper($config, $auth, $ui, $log, $userprefs); + my $content = Dumper($config, $auth, $ui, $log, $user); $content = "Data Dump<br /><pre>" . $content . "</pre>"; @@ -411,11 +405,12 @@ $log->debug("entering sandbox_menu()"); + $log->debug('dump', $user); unless ($ck_auth) { &login_menu(); exit 0; } - load_settings(1); + load_config(1); - my @modules = sort keys %{$module_settings}; + my @modules = sort keys %{$user->{'module'}}; if ($#modules < 0) { $no_modules = 1; @@ -425,6 +420,6 @@ my %entry; $entry{'MODULE_NAME'} = $module; - $entry{'MODULE_DESC'} = $module_settings->{$module}->{'description'}; - $entry{'REPOSITORY'} = $module_settings->{$module}->{'repository'}; + $entry{'MODULE_DESC'} = $user->{'module'}->{$module}->{'description'} || ''; + $entry{'REPOSITORY'} = $user->{'module'}->{$module}->{'repository'} || ''; push @module_loop, \%entry; } @@ -472,5 +467,5 @@ exit 0; } - if (! load_settings()) { + if (! load_config()) { # no existing user config, forward to prefs menu preferences_menu( ck_auth => $ck_auth ); @@ -479,10 +474,10 @@ my $template_dir = $config->{'paths'}->{'template_dir'}; my $users_dir = $config->{'paths'}->{'users_dir'}; - my $server = $userprefs->{'repository'}->{'server'}; - my $vcs_username = $userprefs->{'repository'}->{'username'}; - my $repo_type = $userprefs->{'repository'}->{'repo_type'}; - my $connection = $userprefs->{'repository'}->{'connection'}; - my $root = $userprefs->{'repository'}->{'root'}; - my $sandbox = $userprefs->{'paths'}->{'users_dir'}; + my $server = $user->{'repository'}->{'server'}; + my $vcs_username = $user->{'repository'}->{'username'}; + my $repo_type = $user->{'repository'}->{'repo_type'}; + my $connection = $user->{'repository'}->{'connection'}; + my $root = $user->{'repository'}->{'root'}; + my $sandbox = $user->{'paths'}->{'users_dir'}; my $vcsroot; @@ -569,5 +564,5 @@ exit 0; } - if (! load_settings()) { + if (! load_config()) { # no existing user config, forward to prefs menu preferences_menu( ck_auth => $ck_auth ); @@ -591,10 +586,10 @@ my $template_dir = $config->{'paths'}->{'template_dir'}; my $users_dir = $config->{'paths'}->{'users_dir'}; - my $server = $userprefs->{'repository'}->{'server'}; - my $vcs_username = $userprefs->{'repository'}->{'username'}; - my $repo_type = $userprefs->{'repository'}->{'repo_type'}; - my $connection = $userprefs->{'repository'}->{'connection'}; - my $root = $userprefs->{'repository'}->{'root'}; - my $sandbox = $userprefs->{'paths'}->{'users_dir'}; + my $server = $user->{'repository'}->{'server'}; + my $vcs_username = $user->{'repository'}->{'username'}; + my $repo_type = $user->{'repository'}->{'repo_type'}; + my $connection = $user->{'repository'}->{'connection'}; + my $root = $user->{'repository'}->{'root'}; + my $sandbox = $user->{'paths'}->{'users_dir'}; my $vcsroot; @@ -897,5 +892,5 @@ exit 0; } - if (! load_settings()) { + if (! load_config()) { # no existing user config, forward to prefs menu preferences_menu( ck_auth => $ck_auth ); @@ -915,10 +910,10 @@ my $users_dir = $config->{'paths'}->{'users_dir'}; my %return; - my $server = $userprefs->{'repository'}->{'server'}; - my $vcs_username = $userprefs->{'repository'}->{'username'}; - my $repo_type = $userprefs->{'repository'}->{'repo_type'}; - my $connection = $userprefs->{'repository'}->{'connection'}; - my $root = $userprefs->{'repository'}->{'root'}; - my $sandbox = $userprefs->{'paths'}->{'users_dir'}; + my $server = $user->{'repository'}->{'server'}; + my $vcs_username = $user->{'repository'}->{'username'}; + my $repo_type = $user->{'repository'}->{'repo_type'}; + my $connection = $user->{'repository'}->{'connection'}; + my $root = $user->{'repository'}->{'root'}; + my $sandbox = $user->{'paths'}->{'users_dir'}; my @vcs_output = (); my @vcs_error = (); @@ -1052,8 +1047,8 @@ } - load_settings(1); # load prefs and do not log error msg + load_config(1); # load prefs and do not log error msg my $username = $auth->get_userinfo('username'); - my $full_name = $userprefs->{'personal'}->{'full_name'}; - my $work_dir = $userprefs->{'personal'}->{'work_dir'}; + my $full_name = $user->{'personal'}->{'full_name'}; + my $work_dir = $user->{'personal'}->{'work_dir'}; my $content = $ui->get_menu( @@ -1094,151 +1089,151 @@ ############################################################################### sub repository_menu { - my %args = @_; - my $ck_auth = $args{'ck_auth'}; - my $repository_selected = $args{'repository_selected'}; - my $repo_name = $args{'repo_name'}; - my $repo_server = $args{'repo_server'}; - my $repo_username = $args{'repo_username'}; - my $repo_type = $args{'repo_type'}; - my $repo_connection = $args{'repo_connection'}; - my $repo_root = $args{'repo_root'}; - my $new_repository = $args{'new_repository'} ? 1 : 0; - my $submit = $args{'submit'} ? 1 : 0; - - $log->debug("entering repository_menu\n"); - - $log->debug("<pre>" . Dumper(\%args) . "</pre>"); - # check cookie - unless ($ck_auth) { - $log->debug("bad cookie '$ck_auth'\n"); - &login_menu(); - exit 0; - } - - my $new_string = 'Add a new repository'; - my $username = $auth->get_userinfo('username'); - my $users_dir = $config->{'paths'}->{'users_dir'}; - my @repos = sort keys %{$repository_settings}; # get list of repositories - $log->debug("<pre>" . Dumper(\%{$repository_settings}) . "</pre>"); - - if (($repository_selected) && ($repository_selected != $new_string)) { - my $valid = 0; - # verify repository name - foreach my $repo (@repos) { - if ($repository_selected eq $repo) { - $repo_name = $repo; - $valid = 1; - } - } - if (!$valid) { - # bad repository name - set_error("Invalid repository name: $repository_selected\n"); - $repository_selected = $new_string; - $repo_name = ''; - } - } - - if (($repository_selected eq $new_string) && (!$new_repository)) { - # repository selected was 'add new repository' - # new repository display - } elsif ($repository_selected) { - # display existing repository - $repo_server = - $repository_settings->{$repository_selected}->{'repo_server'}; - $repo_username = - $repository_settings->{$repository_selected}->{'repo_username'}; - $repo_connection = - $repository_settings->{$repository_selected}->{'repo_connection'}; - $repo_type = - $repository_settings->{$repository_selected}->{'repo_type'}; - $repo_root = - $repository_settings->{$repository_selected}->{'repo_root'}; - } - - # selected repository data - my $vcsroot; - - my $repository = SandWeb::Repository->new( - root => "", - repo_type => "", - sandbox => "$users_dir/$username", - ); - - my @connections = $repository->get_connections(); - my @repo_types = $repository->get_repo_types(); - $repository_selected = ($repository_selected) ? $repository_selected : $repos[0]; # default for pulldown - - # loop data - my @loop_repo_connection = (); - my @loop_repository_select = (); - my @loop_repo_type = (); - - foreach my $repo (@repos) { - my %entries; - if (($repository_selected eq $repo) && ($repository_selected != $new_string)) { - $entries{REPOSITORY_ENTRY} = "<option selected>$repo</option>"; - } else { - $entries{REPOSITORY_ENTRY} = "<option>$repo</option>"; - } - push (@loop_repository_select, \%entries); - } - # add new repo - my %tmp; - if ($repository_selected eq $new_string) { - $tmp{REPOSITORY_ENTRY} = "<option selected>$new_string</option>"; - - } else { - $tmp{REPOSITORY_ENTRY} = "<option>$new_string</option>"; - - } - push (@loop_repository_select, \%tmp); - - - foreach my $type (@connections) { - my %row_data; - if ($type eq $repo_connection) { - $row_data{REPO_CONNECTION} = "<option selected>$type</option>"; - } - else { - $row_data{REPO_CONNECTION} = "<option>$type</option>"; - } - push (@loop_repo_connection, \%row_data); - } - - foreach my $type (@repo_types) { - my %row_data; - if ($type eq $repo_type) { - $row_data{REPO_TYPE} = "<option selected>$type</option>"; - } - else { - $row_data{REPO_TYPE} = "<option>$type</option>"; - } - push (@loop_repo_type, \%row_data); - } - - - my $content = $ui->get_menu( - MENU => 'repository', - PROGNAME => $progname, - LOOP_REPO_CONNECTION => \@loop_repo_connection, - LOOP_REPO_TYPE => \@loop_repo_type, - LOOP_REPOSITORY_SELECT => \@loop_repository_select, - REPOSITORY_SELECTED => $repository_selected, - REPO_ROOT => $repo_root, - REPO_NAME => $repo_name, - REPO_SERVER => $repo_server, - REPO_USERNAME => $repo_username, - ); - - print CGI::header( -cookie => $ck_auth ); - $ui->print_screen( - TITLE=> 'SandWeb : repository', - MENU_TITLE => 'SandWeb', - SUBMENU_TITLE => 'repository', - FOOTER => '', - CONTENT => $content, - ERROR => $error, - ); - exit 0; + my %args = @_; + my $ck_auth = $args{'ck_auth'}; + my $repository_selected = $args{'repository_selected'}; + my $repo_name = $args{'repo_name'}; + my $repo_server = $args{'repo_server'}; + my $repo_username = $args{'repo_username'}; + my $repo_type = $args{'repo_type'}; + my $repo_connection = $args{'repo_connection'}; + my $repo_root = $args{'repo_root'}; + my $new_repository = $args{'new_repository'} ? 1 : 0; + my $submit = $args{'submit'} ? 1 : 0; + + $log->debug("entering repository_menu\n"); + + $log->debug("<pre>" . Dumper(\%args) . "</pre>"); + # check cookie + unless ($ck_auth) { + $log->debug("bad cookie '$ck_auth'\n"); + &login_menu(); + exit 0; + } + + my $new_string = 'Add a new repository'; + my $username = $auth->get_userinfo('username'); + my $users_dir = $config->{'paths'}->{'users_dir'}; + my @repos = sort keys %{$user->{'repo'}}; # get list of repositories + $log->debug("<pre>" . Dumper(\%{$user->{'repo'}}) . "</pre>"); + + if (($repository_selected) && ($repository_selected != $new_string)) { + my $valid = 0; + # verify repository name + foreach my $repo (@repos) { + if ($repository_selected eq $repo) { + $repo_name = $repo; + $valid = 1; + } + } + if (!$valid) { + # bad repository name + set_error("Invalid repository name: $repository_selected\n"); + $repository_selected = $new_string; + $repo_name = ''; + } + } + + if (($repository_selected eq $new_string) && (!$new_repository)) { + # repository selected was 'add new repository' + # new repository display + } elsif ($repository_selected) { + # display existing repository + $repo_server = + $user->{'repo'}->{$repository_selected}->{'repo_server'}; + $repo_username = + $user->{'repo'}->{$repository_selected}->{'repo_username'}; + $repo_connection = + $user->{'repo'}->{$repository_selected}->{'repo_connection'}; + $repo_type = + $user->{'repo'}->{$repository_selected}->{'repo_type'}; + $repo_root = + $user->{'repo'}->{$repository_selected}->{'repo_root'}; + } + + # selected repository data + my $vcsroot; + + my $repository = SandWeb::Repository->new( + root => "", + repo_type => "", + sandbox => "$users_dir/$username", + ); + + my @connections = $repository->get_connections(); + my @repo_types = $repository->get_repo_types(); + $repository_selected = ($repository_selected) ? $repository_selected : $repos[0]; # default for pulldown + + # loop data + my @loop_repo_connection = (); + my @loop_repository_select = (); + my @loop_repo_type = (); + + foreach my $repo (@repos) { + my %entries; + if (($repository_selected eq $repo) && ($repository_selected != $new_string)) { + $entries{REPOSITORY_ENTRY} = "<option selected>$repo</option>"; + } else { + $entries{REPOSITORY_ENTRY} = "<option>$repo</option>"; + } + push (@loop_repository_select, \%entries); + } + # add new repo + my %tmp; + if ($repository_selected eq $new_string) { + $tmp{REPOSITORY_ENTRY} = "<option selected>$new_string</option>"; + + } else { + $tmp{REPOSITORY_ENTRY} = "<option>$new_string</option>"; + + } + push (@loop_repository_select, \%tmp); + + + foreach my $type (@connections) { + my %row_data; + if ($type eq $repo_connection) { + $row_data{REPO_CONNECTION} = "<option selected>$type</option>"; + } + else { + $row_data{REPO_CONNECTION} = "<option>$type</option>"; + } + push (@loop_repo_connection, \%row_data); + } + + foreach my $type (@repo_types) { + my %row_data; + if ($type eq $repo_type) { + $row_data{REPO_TYPE} = "<option selected>$type</option>"; + } + else { + $row_data{REPO_TYPE} = "<option>$type</option>"; + } + push (@loop_repo_type, \%row_data); + } + + + my $content = $ui->get_menu( + MENU => 'repository', + PROGNAME => $progname, + LOOP_REPO_CONNECTION => \@loop_repo_connection, + LOOP_REPO_TYPE => \@loop_repo_type, + LOOP_REPOSITORY_SELECT => \@loop_repository_select, + REPOSITORY_SELECTED => $repository_selected, + REPO_ROOT => $repo_root, + REPO_NAME => $repo_name, + REPO_SERVER => $repo_server, + REPO_USERNAME => $repo_username, + ); + + print CGI::header( -cookie => $ck_auth ); + $ui->print_screen( + TITLE=> 'SandWeb : repository', + MENU_TITLE => 'SandWeb', + SUBMENU_TITLE => 'repository', + FOOTER => '', + CONTENT => $content, + ERROR => $error, + ); + exit 0; } @@ -1260,13 +1255,13 @@ } - load_settings(1); # load prefs and do not log error msg + load_config(1); # load prefs and do not log error msg my $username = $auth->get_userinfo('username'); - my $name = $userprefs->{'repository'}->{'name'}; - my $server = $userprefs->{'repository'}->{'server'}; - my $vcs_username = $userprefs->{'repository'}->{'username'}; - my $root = $userprefs->{'repository'}->{'root'}; + my $name = $user->{'repository'}->{'name'}; + my $server = $user->{'repository'}->{'server'}; + my $vcs_username = $user->{'repository'}->{'username'}; + my $root = $user->{'repository'}->{'root'}; my $users_dir = $config->{'paths'}->{'users_dir'}; - my $repo_type = $userprefs->{'repository'}->{'repo_type'}; - my $connection = $userprefs->{'repository'}->{'connection'}; + my $repo_type = $user->{'repository'}->{'repo_type'}; + my $connection = $user->{'repository'}->{'connection'}; my $vcsroot; @@ -1335,10 +1330,7 @@ ############################################################################### -#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# ############################################################################### ## Commit Menu Data -############################################################################### -#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# -############################################################################### +## ############################################################################### @@ -1358,5 +1350,5 @@ } - load_settings(1); # load prefs and do not log error msg + load_config(1); # load prefs and do not log error msg my @personal_params = ( 'full_name', @@ -1364,16 +1356,31 @@ ); + my @repository_params = ( + 'name', + 'server', + 'username', + 'repo_type', + 'connection', + 'root', + ); + foreach my $param (@personal_params) { if ( CGI::param("$param") ) { - $userprefs->{'personal'}->{"$param"} = param("$param"); + $user->{'personal'}->{"$param"} = param("$param"); } } + foreach my $param (@repository_params) { + if ( CGI::param("$param") ) { + $user->{'repository'}->{"$param"} = param("$param"); + } + } + my $username = $auth->get_userinfo('username'); - # write config data into the .$prefs_config file in the users directory - $log->debug('dump', $userprefs); - my ($return, $msg) = $userprefs->write_preferences_config( + # write config data into the .$user_cfg file in the users directory + $log->debug('dump', $user); + my ($return, $msg) = $user->write_preferences_config( 'config_dir' => $config->{'paths'}->{'users_dir'} . "/$username", - 'config_file' => ".$prefs_config", + 'config_file' => ".$user_cfg", ); @@ -1390,75 +1397,66 @@ sub repository_commit { - my %args = @_; - my $ck_auth = $args{'ck_auth'}; - my $repository_selected = $args{'repository_selected'}; - my $repo_name = $args{'repo_name'}; - my $repo_server = $args{'server'}; - my $repo_username = $args{'usr_name'}; - my $repo_type = $args{'repo_type'}; - my $repo_connection = $args{'connection'}; - my $repo_root = $args{'root'}; - my $new_repository = $args{'new_repository'} ? 1 : 0; - unless ($ck_auth) { - &login_menu(); - exit 0; - } - my $new_string = 'Add a new repository'; - - load_settings(1); # load prefs and do not log error msg - $log->debug("<pre>" . Dumper(\%args) . "</pre>"); - - if (! $repo_name) { - # cannot commit without repository name - $log->error("cannot commit without repository name!\n"); - set_error("cannot commit without repository name!\n"); - repository_menu( ck_auth => $ck_auth ); - exit(0); - } - # commit data to file - $repository_settings->{$repo_name}->{'name'} = $repo_name; - $repository_settings->{$repo_name}->{'server'} = $repo_server; - $repository_settings->{$repo_name}->{'username'} = $repo_username; - $repository_settings->{$repo_name}->{'connection'} = $repo_connection; - $repository_settings->{$repo_name}->{'type'} = $repo_type; - $repository_settings->{$repo_name}->{'root'} = $repo_root; - - my $username = $auth->get_userinfo('username'); - # write config data into the .$prefs_config file in the users directory - $log->debug('dump', $userprefs); - my ($return, $msg) = $userprefs->write_preferences_config( - 'config_dir' => $config->{'paths'}->{'users_dir'} . "/$username", - 'config_file' => ".$prefs_config", - ); - - - if (! $return) { - # uh oh, problem occured - $log->error("$msg"); - set_error("$msg"); - repository_menu( ck_auth => $ck_auth ); - } - # when finished go to repository menu. (this should be dynamic probably, - # so it returns to whichever menu they wanted to go to in the first - # place). - repository_menu( ck_auth => $ck_auth, repository_selected => $repo_name ); + my %args = @_; + my $ck_auth = $args{'ck_auth'}; + my $repository_selected = $args{'repository_selected'}; + my $repo_name = $args{'repo_name'}; + my $repo_server = $args{'server'}; + my $repo_username = $args{'usr_name'}; + my $repo_type = $args{'repo_type'}; + my $repo_connection = $args{'connection'}; + my $repo_root = $args{'root'}; + my $new_repository = $args{'new_repository'} ? 1 : 0; + unless ($ck_auth) { + &login_menu(); + exit 0; + } + my $new_string = 'Add a new repository'; + + load_config(1); # load prefs and do not log error msg + $log->debug("<pre>" . Dumper(\%args) . "</pre>"); + + if (! $repo_name) { + # cannot commit without repository name + $log->error("cannot commit without repository name!\n"); + set_error("cannot commit without repository name!\n"); + repository_menu( ck_auth => $ck_auth ); + exit(0); + } + # commit data to file + $user->{'repo'}->{$repo_name}->{'name'} = $repo_name; + $user->{'repo'}->{$repo_name}->{'server'} = $repo_server; + $user->{'repo'}->{$repo_name}->{'username'} = $repo_username; + $user->{'repo'}->{$repo_name}->{'connection'} = $repo_connection; + $user->{'repo'}->{$repo_name}->{'type'} = $repo_type; + $user->{'repo'}->{$repo_name}->{'root'} = $repo_root; + + my $username = $auth->get_userinfo('username'); + # write config data into the .$user_cfg file in the users directory + $log->debug('dump', $user->{'repo'}); + my ($return, $msg) = $user->write_preferences_config( + 'config_dir' => $config->{'paths'}->{'users_dir'} . "/$username", + 'config_file' => ".$user_cfg", + ); + + if (! $return) { + # uh oh, problem occured + $log->error("$msg"); + set_error("$msg"); + repository_menu( ck_auth => $ck_auth ); + } + # when finished go to repository menu. (this should be dynamic probably, + # so it returns to whichever menu they wanted to go to in the first + # place). + repository_menu( ck_auth => $ck_auth, repository_selected => $repo_name ); } + ############################################################################### -#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# ############################################################################### ## Functions -############################################################################### -#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# -############################################################################### -sub load_settings { - my $no_error = shift; - load_user_config($no_error); - load_repository_config($no_error); - load_module_config($no_error); -} +## ############################################################################### -# load user settings +# load prefs # # check user prefs config file, if it doesn't exist, @@ -1469,19 +1467,22 @@ # ############################################################################### -sub load_user_config { +sub load_config { my $no_error = shift; my $username = $auth->get_userinfo('username'); - if (! -f "$config->{'paths'}->{'users_dir'}/$username/.$prefs_config") { + if (! -f "$config->{'paths'}->{'users_dir'}/$username/.$user_cfg") { # user doesn't have a preferences file! # load user preferences from default config in config dir - $userprefs = SandWeb::Config::->new( + $user = SandWeb::Config::->new( 'config_dir' => $config_dir, - 'config_file' => "$prefs_config", + 'config_file' => "$user_cfg", 'log_obj' => $log, ); + $user->{'repo'} = {}; + $user->{'module'} = {}; + # if $no_error is true, ignore this error msgs if (! $no_error) { - set_error("No config file found for '$username', enter preferences."); + set_error("No config file cound for '$username', enter preferences."); } return 0; @@ -1489,66 +1490,33 @@ # load users preferences from users dir - $userprefs = SandWeb::Config::->new( + $user = SandWeb::Config::->new( 'config_dir' => $config->{'paths'}->{'users_dir'} . "/$username", - 'config_file' => ".$prefs_config", + 'config_file' => ".$user_cfg", 'log_obj' => $log, ); - return 1; -} - -sub load_repository_config { - my $no_error = shift; - my $username = $auth->get_userinfo('username'); - if ( -f "$config->{'paths'}->{'users_dir'}/$username/.$repository_config") { - # load users preferences from users dir - $repository_settings = SandWeb::Config::->new( - 'config_dir' => $config->{'paths'}->{'users_dir'} . "/$username", - 'config_file' => ".$repository_config", - 'log_obj' => $log, - ); - } - $log->debug("verifying repository data structure"); # make sure data structure containing repositories is consistent - if ( ($repository_settings->{'repo_type'}) && - (ref(\$repository_settings->{'repo_type'}) eq 'SCALAR')) { + if ( ($user->{'repo'}->{'repo_type'}) && + (ref(\$user->{'repo'}->{'repo_type'}) eq 'SCALAR')) { - my %temp = %{$repository_settings}; - %{$repository_settings} = (); - %{$repository_settings}->{$temp{'name'}} = %temp; + my %temp = %{$user->{'repo'}}; + %{$user->{'repo'}} = (); + %{$user->{'repo'}->{$temp{'name'}}} = %temp; } - $log->debug("<pre>" . Dumper($repository_settings) . "</pre>"); - - return 1; -} - -sub load_module_config { - my $no_error = shift; - my $username = $auth->get_userinfo('username'); - if (-f "$config->{'paths'}->{'users_dir'}/$username/.$module_config") { - # load users preferences from users dir - $module_settings = SandWeb::Config::->new( - 'config_dir' => $config->{'paths'}->{'users_dir'} . "/$username", - 'config_file' => ".$module_config", - 'log_obj' => $log, - ); - } - $log->debug("verifying modules data structure"); # make sure data structure containing repositories is consistent - if ( ($module_settings->{'name'}) && - (ref(\$module_settings->{'name'}) eq 'SCALAR')) { + if ( ($user->{'module'}->{'name'}) && + (ref(\$user->{'module'}->{'name'}) eq 'SCALAR')) { - my %temp = %{$module_settings}; - %{$module_settings} = (); - %{$module_settings}->{$temp{'name'}} = %temp; + my %temp = %{$user->{'module'}}; + %{$user->{'module'}} = (); + %{$user->{'module'}->{$temp{'name'}}} = %temp; } - $log->debug("<pre>" . Dumper($module_settings) . "</pre>"); + return 1; } - ############################################################################### # login @@ -1579,5 +1547,5 @@ login_menu(); } - if (! load_settings()) { + if (! load_config()) { # no existing user config, forward to prefs menu preferences_menu( ck_auth => $ck_auth ); |