body<= " unless $remote; return "" if $remote->is_identity; # Warn them if logged in and not validated if ($remote->{'status'} ne 'A') { return " "href='$LJ::SITEROOT/register.bml'" } ) . " p?>"; } # load user props LJ::load_user_props( $remote, { use_master => 1 }, # we will change them on this page qw/secret_question_text/ ); # may not retrieve answer my $system_question = LJ::SecretQuestions->get_system_questions(); foreach my $id (keys %$system_question) { $system_question->{$id} = $ML{ $system_question->{$id}->{'ml_key'} }; } my $password_err; my $qid_err; my $qtext_err; my $answer_err; my $qid; my $qtext; my $answer; # send letter to old email address my $_send_security_notification = sub { my $u = shift; my $ml_key = shift; my $is_identity_no_email = $u->is_identity && !$u->email_raw; my $email = $is_identity_no_email ? "none" : $u->email_raw; # Convert $timechange from GMT to local for user my $timechange_stamp = scalar time; my $offset = 0; LJ::get_timezone($u, \$offset); my $timechange = LJ::mysql_time($timechange_stamp + 60*60*$offset, 0); my ($date, $time) = split(/ /, $timechange); LJ::send_mail({ 'to' => $email, 'from' => $LJ::ADMIN_EMAIL, 'charset' => 'utf-8', 'subject' => $ML{$ml_key . '.subject'}, 'body' => BML::ml($ml_key . '.body', { username => $u->{user}, ip => BML::get_remote_ip(), email => $email, date => $date, time => $time, sitename => $LJ::SITENAME, sitelink => $LJ::SITEROOT }), }); }; if (LJ::did_post() and $POST{'submit'}) { return $body if $remote->{'status'} ne 'A'; # already made warning string $password_err = "" if $remote->password ne $POST{'password'}; $qid = LJ::trim($POST{'question'}); $qtext = LJ::trim($POST{'custom'}); $answer = LJ::trim($POST{'set_answer'}); $qid_err = "" unless $qid eq $custom_id or defined $system_question->{$qid}; $qid_err = "" if $qid eq ''; $qtext_err = "" if $qid eq $custom_id and length($qtext) > 250; $qtext_err = "" if $qid eq $custom_id and $qtext eq ''; $answer_err = "" if length($answer) > 250; $answer_err = "" if $answer eq ''; unless ($password_err or $qid_err or $qtext_err or $answer_err) { # write effective value, since 0 isn't stored $qtext = $system_question->{$qid} if $qid ne $custom_id; $remote->set_prop('secret_question_text', $qtext); $remote->set_prop('secret_answer', $answer); $remote->set_prop('secret_question_created', time()); $remote->set_prop('secret_question_timer', ''); $remote->set_prop('secret_question_fails', ''); # 0 $_send_security_notification->($remote, '.set_secret'); return "
$ML{'.ok'}
"; } } if (LJ::did_post() and $POST{'delete'}) { return $body if $remote->{'status'} ne 'A'; # already made warning string $password_err = "" if $remote->password ne $POST{'password'}; unless ($password_err) { $remote->clear_prop('secret_question_text'); $remote->clear_prop('secret_answer'); $remote->clear_prop('secret_question_created'); $remote->clear_prop('secret_question_timer'); $remote->clear_prop('secret_question_fails'); $_send_security_notification->($remote, '.delete_secret'); return "$ML{'.ok_delete'}
"; } } $body .= ''; return $body; } _code?> <=body page?>