Committer: wisest-owl
iLJSUP-10041: Add ability to display system message for non-logged usersU trunk/cgi-bin/LJ/SiteMessages.pm U trunk/cgi-bin/LJ/Widget/SiteMessages.pm
Modified: trunk/cgi-bin/LJ/SiteMessages.pm =================================================================== --- trunk/cgi-bin/LJ/SiteMessages.pm 2012-08-23 08:47:51 UTC (rev 22722) +++ trunk/cgi-bin/LJ/SiteMessages.pm 2012-08-23 08:53:16 UTC (rev 22723) @@ -10,7 +10,7 @@ validate => sub { my ($u) = @_; - return $u->in_class('perm'); + return $u && $u->in_class('perm'); }, }, @@ -20,7 +20,7 @@ validate => sub { my ($u) = @_; - return $u->in_class('sponsored'); + return $u && $u->in_class('sponsored'); }, }, @@ -30,7 +30,7 @@ validate => sub { my ($u) = @_; - return $u->get_cap('paid'); + return $u && $u->get_cap('paid'); }, }, @@ -40,7 +40,7 @@ validate => sub { my ($u) = @_; - return $u->in_class('plus') && !$u->get_cap('paid'); + return $u && $u->in_class('plus') && !$u->get_cap('paid'); }, }, @@ -51,7 +51,7 @@ validate => sub { my ($u) = @_; - return !($u->in_class('plus') || $u->get_cap('paid')); + return $u && !($u->in_class('plus') || $u->get_cap('paid')); } }, @@ -98,7 +98,7 @@ validate => sub { my ($u) = @_; - return $u->get_cap('trynbuy'); + return $u && $u->get_cap('trynbuy'); } }, @@ -108,7 +108,7 @@ validate => sub { my ($u) = @_; - return LJ::TryNBuy->already_used($u); + return $u && LJ::TryNBuy->already_used($u); } }, @@ -118,7 +118,7 @@ validate => sub { my ($u) = @_; - return !(LJ::TryNBuy->already_used($u) || $u->get_cap('trynbuy')); + return $u && !(LJ::TryNBuy->already_used($u) || $u->get_cap('trynbuy')); } }, @@ -128,7 +128,7 @@ validate => sub { my ($u) = @_; - return $u->prop('email_faulty'); + return $u && $u->prop('email_faulty'); } }, NewPhotohosting => { @@ -136,9 +136,15 @@ group => 5, validate => sub { my ($u) = @_; - return !(LJ::Pics::Migration->user_enabled_new_photohosting($u)); + return $u && !(LJ::Pics::Migration->user_enabled_new_photohosting($u)); } }, + + Anonymous => { + value => 8192, + group => 0, + validate => sub { LJ::get_remote() ? 0 : 1 }, + }, }; # @@ -296,8 +302,6 @@ # direct the questions at the given $u, or remote if no $u given my $u = $opts{user} && LJ::isu($opts{user}) ? $opts{user} : LJ::get_remote(); - return unless $u; # there are no messages for logged out users - my @messages = $class->load_messages; @messages = $class->filter_messages($u, @messages); @messages = $class->filter_by_country($u, @messages); @@ -311,7 +315,7 @@ sub filter_messages { my $class = shift; my $u = shift; - + my @messages; MESSAGE: foreach my $m (@_) { @@ -466,15 +470,14 @@ my $class = shift; my $remote = LJ::get_remote(); - return unless $remote; # this feature only for logged in users ## tiny optimization - $remote->preload_props(qw/country closed_sm/); + $remote->preload_props(qw/country closed_sm/) if $remote; ## my @messages = $class->get_messages(user => $remote); - my $closed = $remote->prop('closed_sm'); + my $closed = $remote ? $remote->prop('closed_sm') : undef; if ($closed) { my %closed = map { $_ => 1 } split(',', $closed); @messages = grep { not $closed{$_->{mid}} } @messages; Modified: trunk/cgi-bin/LJ/Widget/SiteMessages.pm =================================================================== --- trunk/cgi-bin/LJ/Widget/SiteMessages.pm 2012-08-23 08:47:51 UTC (rev 22722) +++ trunk/cgi-bin/LJ/Widget/SiteMessages.pm 2012-08-23 08:53:16 UTC (rev 22723) @@ -15,7 +15,7 @@ my $lang; my $remote = LJ::get_remote(); - return unless $remote; + $lang = $remote->prop("browselang") if $remote; # exlude s2 context language from opportunities, # because S2 journal code executes BML::set_language($lang, \&LJ::Lang::get_text) with its own language @@ -27,7 +27,7 @@ LJ::CleanHTML::clean_event(\$text, { 'lj_sys_message_id' => $mid }); my $is_office = LJ::SiteMessages->has_mask('OfficeOnly', $message->{accounts}) ? '<b>[Only for office]</b> ' : ''; - if (LJ::SiteMessages->has_mask('NewPhotohosting', $message->{accounts})) { + if ($remote && LJ::SiteMessages->has_mask('NewPhotohosting', $message->{accounts})) { my $url = $remote->journal_base . "/pics/new_photo_service"; $text = "<a href=$url>$text</a>" }