body<= " unless $remote; my $authas = $GET{'authas'} || $remote->{'user'}; my $u = LJ::get_authas_user($authas); return LJ::bad_input($ML{'error.invalidauth'}) unless $u; # visibility status name mappings my %statusvis = ( "V" => "$ML{'.journalstatus.select.activated'}", "D" => "$ML{'.journalstatus.select.deleted'}" ); if ($u->is_suspended) { %statusvis = ("S" => "$ML{'.journalstatus.select.suspended'}"); } # process form submission if (LJ::did_post() && LJ::check_referer('/accountstatus.bml')) { my $ret; my $ok = sub { return "\n"; }; my $dberr = sub { return "\n"; }; return $dberr->($ML{'error.invalidform'}) unless LJ::check_form_auth(); # are they suspended? return LJ::bad_input($ML{'.error.nochange.suspend'}) if $u->is_suspended; # are they expunged? return LJ::bad_input($ML{'.error.nochange.expunged'}) if $u->is_expunged; # invalid statusvis return LJ::bad_input($ML{'.error.invalid'}) unless $POST{'statusvis'} eq 'D' || $POST{'statusvis'} eq 'V'; # no need to change? return $ok->(BML::ml('.message.nochange', {'statusvis' => $statusvis{$POST{'statusvis'}} })) if $u->statusvis eq $POST{'statusvis'}; my $res = 0; my $ip = BML::get_remote_ip(); my @date = localtime(time); my $date = sprintf("%02d:%02d %02d/%02d/%04d", @date[2,1], $date[3], $date[4]+1, $date[5]+1900); if ($POST{'statusvis'} eq 'D') { $res = $u->set_deleted; if($res) { # sending ESN status was changed LJ::Event::SecurityAttributeChanged->new($u, { action => 'account_deleted', ip => BML::get_remote_ip(), datetime => $date, })->fire; } } elsif ($POST{'statusvis'} eq 'V') { $res = $u->set_visible; if($res) { LJ::Event::SecurityAttributeChanged->new($u , { action => 'account_activated', ip => BML::get_remote_ip(), datetime => $date, })->fire; } } # error updating? return $dberr->($ML{'.error.db'}) unless $res; # success $ret .= $ok->(BML::ml('.message.success', {'statusvis' => $statusvis{$POST{'statusvis'}} })); if ($POST{statusvis} eq 'D') { $ret .= ""; # optional stuff that gets printed after deletion $ret .= LJ::run_hook("accountstatus.bml_after_deletion", $u, \%POST); } return $ret; } # update form my $ret; # authas switcher form $ret .= "
\n\n"; my $getextra = "?authas=$authas" unless $authas eq $remote->{'user'}; $ret .= "\n"; return $ret; } _code?> <=body page?>