]> www.wagner.pp.ru Git - oss/vjournal.git/blobdiff - lib/VJournal/Session.pm
README added, content of config cleaned up
[oss/vjournal.git] / lib / VJournal / Session.pm
index 989c7aa3a84a15bbf47895c28fa74dfc391fbe86..99f18e12fc13144a3d177d08063a3a7a8a7a0f38 100644 (file)
@@ -124,7 +124,7 @@ sub create {
                croak("Invalid call to ".$pkg."->create");
        }       
        my %params = @_;
-       croack("User name is required by ".$pkg."->creae") unless $params{-user};
+       croack("User name is required by ".$pkg."->create") unless $params{-user};
        $params{-cgi}=CGI->new() if(!$params{-cgi});
        load_config($params{-cgi});
        my $user=$params{-user};
@@ -251,7 +251,7 @@ returns true, if current user is owner of the blog
 
 sub isowner {
        my $self=shift;
-       return $self->{-name} eq $config{-owner};
+       return $self->{-name} eq $config->{-owner};
 }
 
 =head2 _update_user
@@ -286,8 +286,10 @@ dies if config not found.
 =cut
 
 sub load_config {
-       my $path=$_[0]->path_translated();
-       my @dirs = (File::Spec->splitdir($path));
+       my $cgi = $_[0];
+       my $path=$cgi->path_translated();
+       my @dirs = File::Spec->splitdir($path);
+       my @uri = File::Spec->splitdir($cgi->path_info);
        my $found =0;
        while (@dirs) {
                my $d=File::Spec->catdir(@dirs,CONFIG_NAME);
@@ -297,13 +299,16 @@ sub load_config {
                        my $config = <F>;
                        close F;
                        eval "%config = {$d}";
+                       $config{-topdir}=File::Spec->catdir(@dirs);
+                       $config{-topurl}=$cgi->url(-base=>1).File::Spec->catdir(@uri);
                        die $@ if ($@);
                        $found = 1;
                }       
                pop @dirs;
+               pop @uri;
        }       
        die ("Cannot find config file inside $path") unless $found;
-       my @reqkeys=qw(-owner -statedir -templatedir);
+       my @reqkeys=qw(-statedir);
        foreach my $key (@reqkeys) {
                die "Required key $key missing from config" 
                        unless exists $config{$key};
@@ -313,6 +318,13 @@ sub load_config {
        $config{-userbase}||=$config{-statedir}."/user.db";
        $config{-sessiontime}||=86400*30;
        $config{-gracetime}||=86400;
+       $config{-templatedir}||=$config{-topdir}."/templates"
+       $config{-avatardir}||=$config{-topdir}."/avatars";
+       if (!$config{-owner}) {
+               my $uri=substr($config{-topurl},index($config{-topurl},"://")+2;
+               $uri =~ s/:\d+(\/.*)?$//;
+               $config{-owner} = $uri;
+       }
 }
 
 =head2 AUTOLOAD