1 _info?>underage; return " "href='$LJ::SITEROOT/changeemail.bml'"}) . " p?>" if $remote && $remote->is_identity && !$remote->email_raw; my $foruser = $GET{foruser}; my $foru; if ($foruser) { $foru = LJ::load_user($foruser); return "" unless $foru; return "" unless (LJ::check_priv($remote, "siteadmin", "users") || LJ::check_priv($remote, "siteadmin", "*")); return "" if $foru->is_validated; } my $show_validate = sub { my $user = shift; return " $user->email_raw}) . " p?>" . "
" . LJ::html_hidden('authas', $user->{'user'}) . "
" . LJ::html_submit("action:send", "$ML{'.ask.button'}") . "
"; }; if ($POST{'action:send'} || $foru) { my $u = $foru ? $foru : LJ::get_authas_user($POST{'authas'}); return "" unless $u; my $aa = LJ::register_authaction($u->{'userid'}, "validateemail", $u->email_raw); LJ::send_mail({ 'to' => $u->email_raw, 'bcc' => $foru ? $remote->email_raw : undef, 'from' => $LJ::ADMIN_EMAIL, 'charset' => 'utf-8', 'subject' => $ML{'.email.subject'}, 'body' => BML::ml('.email.body', { 'sitename' => $LJ::SITENAME, 'siteroot' => $LJ::SITEROOT, 'conflink' => "$LJ::SITEROOT/confirm/$aa->{'aaid'}.$aa->{'authcode'}" }), }); $ret .= "$u->email_raw}) . " p?>"; } elsif ($qs =~ /^(\d+)[;\.](.+)$/) { my ($aaid, $auth) = ($1, $2); my $aa = LJ::is_valid_authaction($aaid, $auth); unless ($aa) { return " "href='$LJ::SITEROOT/register.bml'" }) . " p?>"; } my $u = LJ::load_userid($aa->{'userid'}); # verify their email hasn't subsequently changed unless ($u->email_raw eq $aa->{arg1}) { return " "href='$LJ::SITEROOT/register.bml'" }) . " p?>"; } ## if the user is OpenID, prove that he is human if ($u->{journaltype} eq 'I' && LJ::is_enabled("recaptcha")) { require Captcha::reCAPTCHA; my $c = Captcha::reCAPTCHA->new; if ($POST{recaptcha_response_field}) { my $result = $c->check_answer( LJ::conf_test($LJ::RECAPTCHA{private_key}), $ENV{'REMOTE_ADDR'}, $POST{'recaptcha_challenge_field'}, $POST{'recaptcha_response_field'} ); return "{error} p?>" unless $result->{is_valid}; } else { my $ret = ""; $ret .= "
"; $ret .= $c->get_options_setter({ theme => 'white' }); $ret .= $c->get_html( LJ::conf_test($LJ::RECAPTCHA{public_key}) ); $ret .= "
"; return $ret; } } LJ::update_user($u, { status => 'A' }); $u->update_email_alias; LJ::run_hook('email_verified', $u); if ($u->{'status'} eq "T") { $ret .= ""; } else { $title = BML::ml('.new.title', {'sitename' => $LJ::SITENAMESHORT}); $ret .= "
\n"; $ret .= "LJ::ljuser($u)}) . " warningbar?>"; $ret .= "
"; $ret .= "

" . BML::ml('.new.101.title', {'sitename' => $LJ::SITENAMESHORT}) . "

"; $ret .= "

$ML{'.new.101.journal.question'}
"; $ret .= "$ML{'.new.101.journal.answer'}

"; $ret .= "

$ML{'.new.101.profile.question'}
"; $ret .= "$ML{'.new.101.profile.answer'}

"; $ret .= "

$ML{'.new.101.friends.question'}
"; $ret .= "$ML{'.new.101.friends.answer'}

"; $ret .= "

$ML{'.new.101.community.question'}
"; $ret .= "$ML{'.new.101.community.answer'}

"; $ret .= "
"; $ret .= "
"; $ret .= LJ::Widget::GettingStarted->render; $ret .= LJ::CProd->full_box_for($u, width => 300); $ret .= "
"; $ret .= "
"; } LJ::run_hook('post_email_change', { user => $u, newemail => $aa->{arg1}, suspend => 1, }); } else { return "" unless $remote; my $authas = $GET{'authas'} || $remote->{'user'}; my $u = LJ::get_authas_user($authas); return LJ::bad_input($ML{'error.invalidauth'}) unless $u; my @authas = LJ::get_authas_list($remote); my @list; $ret .= ""; if (@authas > 1) { # only display if they can auth as anyone other than themselves foreach (@authas) { my $user = LJ::load_user($_); push @list, $_; if ($user->{'status'} eq "A") { push @list, $_; } else { push @list, BML::ml('.asterisk.name', {'journal' => $_}); } } $ret .= "
\n"; $ret .= $ML{'.ask.select'} . ": "; $ret .= LJ::html_select({ 'name' => 'authas', selected => $GET{'authas'} || $remote->{user} }, @list) . " "; $ret .= LJ::html_submit(undef, $ML{'.ask.switch'}); $ret .= " " . $ML{'.asterisk.comment'} . ""; $ret .= "
\n\n"; } if ($u->{'status'} eq "A") { $ret .= " LJ::ljuser($u)}) . " p?>"; } else { $ret .= $show_validate->($u); } } return $ret; _code?> <=body head=> title=> page?> link: htdocs/login.bml, htdocs/manage/profile/index.bml link: htdocs/update.bml _c?>