X-Git-Url: http://www.wagner.pp.ru/gitweb/?p=oss%2Fvjournal.git;a=blobdiff_plain;f=bin%2Fuserinfo;fp=bin%2Fuserinfo;h=a0dbbdecb0e3c90376fd6f64c50dea48f3ebc50b;hp=0d92d6943e9d81b4b6ca2e77e6ded9541607ca40;hb=1d84bf53fde880886b6aee02111c1c8958f5a15b;hpb=647ff52e2181b63cad3d140e038c64be35159f72 diff --git a/bin/userinfo b/bin/userinfo index 0d92d69..a0dbbde 100644 --- a/bin/userinfo +++ b/bin/userinfo @@ -32,3 +32,36 @@ If user is not logged in, returns following structure: } =cut + +use VJournal::Session; +use JSON; +use CGI; + +my $cgi=new CGI; +my $session = VJourna::Session->new($cgi); +my $out={}; +if (!defined $session) { +# User is not authenticated. Return list of providers; + $out->{state}="notlogged"; + $session=$cgi; +} else { + if ($session->isowner()) { + $out->{state}="owner"; + } elsif ($session->banned()) { + $out->{state}="banned"; + } else { + $out->{state}="guest"; + } + + $out->{url}=$session->identity(); + $out->{displayname}=$session->name(); + %avatar=$session->avatar(); + if(exists $avatar{-src}) { + $out->{avatar}={src=>$avatar{-src},-width=>$avatar{-width}, + -height=>$avatar{-height}}; + } + +} +$session->header(-content_type=>"text/json",-charset=>utf-8); +print $encode_json($out); +