This commit is contained in:
2019-02-06 00:49:12 +03:00
commit 8dbb1bb605
4796 changed files with 506072 additions and 0 deletions

View File

@@ -0,0 +1,154 @@
<html>
<head>
<title>Alternate Age Verification (for COPPA Compliance)</title>
<style>
@media screen {
body {
background-color: #ffffff;
color: #000000;
}
#Directions { margin-bottom: 0; }
#AffixDirections { margin-bottom: 0; }
h1 {
text-align: right;
}
p#Affix {
margin-top: 0.2in;
border: 1px solid #000000;
height: 4.9in;
}
.Label {
font-weight: bold;
}
#Info {
margin: 0;
}
#Info th, #Info td {
margin-top: 1pt;
line-height: 14pt;
}
#Info th {
text-align: left;
width: 4em;
}
#Username td, #Time td, #Notes td, .Notes td {
margin-top: 0;
margin-bottom: .125in;
border-bottom: 1px solid #000000;
}
table, p, h1 {
width: 6.5in;
}
.Label { font-weight: bold; }
#ContactAddress { display: none; }
#Print { display: inline; }
}
@media print {
@page {
size: 8.5in 11in; /* width height */
margin: 0.5in;
}
body {
background-color: #ffffff;
color: #000000;
font: 12pt "Times", "Times New Roman", serif;
margin: 0;
}
#AffixDirections { margin-bottom: 0; }
h1 {
text-align: right;
}
p#Affix {
margin-top: 0.2in;
border: 1px solid #000000;
height: 4.9in;
}
.Label {
font-weight: bold;
}
#Info {
margin: 0;
}
#Info th, #Info td {
margin-top: 1pt;
line-height: 14pt;
}
#Info th {
text-align: left;
width: 4em;
}
#Username td, #Time td, #Notes td, .Notes td {
margin-top: 0;
margin-bottom: .125in;
border-bottom: 1px solid #000000;
}
#ContactInfo a {
color: #000000;
text-decoration: none;
}
table, p, h1 {
width: 6.5in;
}
#Print { display: none; }
}
</style>
</head>
<body>
<?_code
{
use strict;
use vars qw(%GET);
my $remote = LJ::get_remote();
return BML::redirect("$LJ::SITEROOT/agecheck/")
unless $remote && $remote->underage;
my $ljuser = LJ::ljuser($remote);
my $datetime = LJ::time_to_http();
my $postal_addr = LJ::Pay::postal_address_html('Attention: COPPA Verifications');
return qq{
<h1>Alternate Age Verification</h1>
<span id="Directions">Please mail, fax, or scan & email this form using the contact information below.</span>
<form id="Print"><input type="button" onclick="javascript:window.print()" Value="Print now" /></form>
<p id="Address">
<b>Fax:</b> 415-294-5054<br />
<b>Email:</b> <a href='mailto:coppa\@$LJ::DOMAIN'>coppa\@$LJ::DOMAIN</a> <small>(Please attach either PNG or JPG)</small><br /><br />
$postal_addr
</p>
<table id="Info" cellspacing="0" cellpadding="0">
<tr id="Username">
<th class="Label">User:</th><td>$ljuser</td><td align='right'><b style='font-size: 1.5em;'>$remote->{user}</b></td>
</tr>
<tr id="Time">
<th class="Label">Time:</th><td colspan='2'>$datetime</td>
</tr>
<tr id="Notes">
<th class="Label">Notes:</th><td colspan='2'>&nbsp;</td>
</tr>
<tr class="Notes">
<th class="Label"></th><td colspan='2'>&nbsp;</td>
</tr>
<tr class="Notes">
<th class="Label"></th><td colspan='2'>&nbsp;</td>
</tr>
<tr class="Notes">
<th class="Label"></th><td colspan='2'>&nbsp;</td>
</tr>
</table>
<p id="AffixDirections"><span class="Label">Affix a <u>copy</u> of your government-issued photo ID or birth certificate here:</span></p>
<p id="Affix"></p>
<p id="ContactInfo">Please direct all inquiries to <a href="http://www.livejournal.com/support/">$LJ::SITENAME Support</a>. <span id="ContactAddress">(http://www.livejournal.com/support/)</span></p>
}; # end qq{}
}
_code?>
</body>
</html>

View File

@@ -0,0 +1,58 @@
<?page
title=>Age Verification (for COPPA Compliance)
body<=
<?_code
{
use strict;
use vars qw(%GET);
my $c = $GET{c};
unless ($c =~ /^(\d+)[;\.](.+)$/) {
return "<?h1 Error h1?><?p You did not get here with a valid authorization code. Please try clicking the link in your email again. p?>";
}
my ($aaid, $auth) = ($1, $2);
my $aa = LJ::is_valid_authaction($aaid, $auth);
unless ($aa) {
return "<?h1 Error h1?><?p The authorization code provided does not appear valid or has expired. If it has been more than 72 hours since you verified your child's account, you will need to do so again. p?>";
}
# so, it's verified
my $u = LJ::load_userid($aa->{userid});
unless ($u) {
return "<?h1 Error h1?><?p The account specified for this authorization was not found. You will need to perform the age verification for your child's account again. p?>";
}
# now do the work
LJ::mark_authaction_used($aa);
LJ::set_userprop($u, 'parent_email', $aa->{arg1});
$u->underage(0, undef, "parent email verification; email=$aa->{arg1}");
# and now we have to send an email validation notice to the child's email
my $aa = LJ::register_authaction($u->{userid}, "validateemail", $u->{email});
my $body = BML::ml('email.newacct2.body', {
"email" => $u->{email},
"regurl" => "$LJ::SITEROOT/confirm/$aa->{'aaid'}.$aa->{'authcode'}",
"username" => $u->{user},
"sitename" => $LJ::SITENAME,
"siteroot" => $LJ::SITEROOT,
"admin_email" => $LJ::ADMIN_EMAIL,
"bogus_email" => $LJ::BOGUS_EMAIL,
});
LJ::send_mail({
'to' => $u->{email},
'from' => $LJ::ADMIN_EMAIL,
'fromname' => $LJ::SITENAME,
'charset' => 'utf-8',
'subject' => BML::ml('email.newacct.subject', {'sitename' => $LJ::SITENAME}),
'body' => $body,
});
# queue up a message
return "<?h1 Success h1?><?p Thank you for verifying your child's access. Their account has been activated and they can start using it now. p?><?p Additionally, we have sent a welcome email to your child welcoming them to the site. p?>";
}
_code?>
<=body
page?>

View File

@@ -0,0 +1,177 @@
<?page
title=>Age Verification
body<=
<?_code
{
use strict;
use vars qw(%GET);
my $remote = LJ::get_remote();
return "<?needlogin?>"
unless $remote;
return "<?h1 Error h1?><?p Your account is not marked as being underage or has already been verified. You do not need to do this again. p?>"
unless $remote->underage;
if (LJ::did_post()) {
# make the cart and add our verification item
unless ($POST{cartid}) {
my $cart = LJ::Pay::new_cart($remote);
LJ::Pay::add_cart_item($cart, {
item => 'coppa',
rcptid => $remote->{userid},
});
$POST{cartid} = "$cart->{payid}-$cart->{anum}";
}
# redirect to it
return BML::redirect("$LJ::SSLROOT/pay/cc.bml?c=$POST{cartid}");
}
# throw in extra boxes
my ($extra, $cartid);
if ($GET{o}) {
$extra = "<?standout " .
"Even though you specified a birthday that makes you at least 13 years old, the computer " .
"you are using was previously used to create an account that is under the age of 13. " .
"Therefore, the account you have just created is also required to verify its age." .
" standout?>";
} elsif ($GET{s}) {
$extra = "<?standout " .
"We're sorry, the action you were trying to perform requires you to verify that you are " .
"authorized to have this account. Please ask your parent to continue the registration " .
"process with you." .
" standout?>";
} else {
$extra = "<?standout " .
"You appear to be under the age of 13. Before you can continue to use LiveJournal.com, " .
"we must verify that your parents have read and agree to our privacy policy and Terms of " .
"Service. Please ask your parent to continue the registration process with you." .
" standout?>";
}
if ($GET{c}) {
# verify input before putting in our output
$cartid = $1
if $GET{c} =~ /^(\d+-\d+)$/;
}
return qq{
$extra
<?h1 Information Relating to Children h1?>
<?p The Children's Online Privacy Protection Act ("COPPA") requires that we
inform parents about how we collect, use, and disclose personal information
from children under 13 years of age. LiveJournal.com is not directed at
children under 13 but we recognize that with proper adult supervision
some parents might permit their children to visit LiveJournal.com and use
our Service. COPPA also requires that we obtain the consent of parents
and guardians in order for children under 13 years of age to use certain
features of LiveJournal.com. p?>
<?p When your child attempts to register and/or provide personal information
to LiveJournal.com, we require a parent or legal guardian to: p?>
<ol>
<li>complete the registration;</li>
<li>review our privacy policy and to submit a valid credit card number to
verify that the child's parent or guardian knows about and authorizes our
information practices related to children protected by COPPA; and</li>
<li>verify through the use of an email confirmation and second
authorization that the parent or guardian consents to the Terms of
Service and LiveJournal.com's privacy policy.</li>
</ol>
<?p <strong>Once parental notice and consent has been verified, the
information we collect will be treated the same as information collected
from any other user of LiveJournal.com.</strong> p?>
<?p Without verified parental notice and consent, we will not knowingly
collect personal information of children under 13, and if we learn that we
have inadvertently collected such information, we will promptly delete it.
p?>
<?p Some highlights of our privacy policy include: p?>
<ul>
<li>We <strong>do not</strong> transfer personal information we collect to people or
organizations outside the LiveJournal.com family of companies for their
direct marketing purposes.</li>
<li>We <strong>do</strong> share this information within the LiveJournal.com family of
companies but any use or disclosure of this information is controlled by
our privacy policy.</li>
<li>We may use or share account users' personal information where it
is necessary for us to complete a transaction, to operate or improve
LiveJournal.com and related products and services, to do something that the
user has asked us to do, or to tell the user of products and services that
we think may be of interest.</li>
<li>We may occasionally contact our users with offers. When we do this, we
will do our best to provide you with an opportunity to opt-out of receiving
such further communications at the time you are contacted.</li>
</ul>
Detailed information on our complete privacy practices is available
<a href="/legal/privacy.bml">here</a>.
<?h1 How Parents can Access their Children's Personal Information h1?>
<?p In compliance with COPPA, parents and legal guardians may request
from us to review, delete or stop the collection of the personally
identifiable information of their child. You may do so in one of two
ways. p?>
<?p If you know the user name and password, follow the instructions below
regarding "Changing your Preferences and Personal Information", or you
may contact our privacy officer by phone, mail or email using the contact
information disclosed in our <a href="/legal/privacy.bml#contact">privacy
policy</a>. p?>
<?p If you request that no further information about your child be
collected or used, we will be required to terminate your child's ability to
use LiveJournal.com's products and services that require a user to "sign
in." p?>
<?h1 Changing Preferences and Personal Information h1?>
<ul>
<li> You can edit your child's LiveJournal.com Account Information at any
time. Most personal information provide to LiveJournal.com is entirely
optional. For example, to the extent that parents are considering whether
to permit their children to use the Service, we do not condition a child's
participation based upon their provision of any more personal information
than is necessary to operate the Service. </li>
<li> You can delete your LiveJournal.com account by visiting our Account
Deletion page; however, please note that some personal information,
primarily your contact information, may remain in LiveJournal.com's records
to the extent necessary to protect LiveJournal's legal interests or
document compliance with regulatory requirements. </li>
</ul>
<?h1 Continue with Account Verification h1?>
<?p If you have access to a credit card, you may continue with electronic
account verification by clicking the button below. This is the preferred
method. Alternatively, you can mail or fax a copy of your government-issued
ID or birth vertificate using our
<a href='$LJ::SITEROOT/agecheck/altform.bml'>printable form</a>. p?>
<form method="post" action="$LJ::SITEROOT/agecheck/index.bml" style='margin: 20px 0 0 20px'>
} .
LJ::html_submit("Continue Electronic Verification") . "\n" .
LJ::html_hidden(cartid => $cartid) . "\n" .
"</form>\n";
}
_code?>
<=body
page?>