X-Git-Url: http://www.wagner.pp.ru/gitweb/?p=oss%2Fvjournal.git;a=blobdiff_plain;f=lib%2FVJournal%2FSession.pm;fp=lib%2FVJournal%2FSession.pm;h=99f18e12fc13144a3d177d08063a3a7a8a7a0f38;hp=989c7aa3a84a15bbf47895c28fa74dfc391fbe86;hb=226b9593b28fc6eacf1b1f27cb76838f77716ed2;hpb=56541badf563d33a49d480a6e965c007e79d5d75 diff --git a/lib/VJournal/Session.pm b/lib/VJournal/Session.pm index 989c7aa..99f18e1 100644 --- a/lib/VJournal/Session.pm +++ b/lib/VJournal/Session.pm @@ -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 = ; 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