init
This commit is contained in:
154
ljcom/htdocs/agecheck/altform.bml
Normal file
154
ljcom/htdocs/agecheck/altform.bml
Normal 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'> </td>
|
||||
</tr>
|
||||
<tr class="Notes">
|
||||
<th class="Label"></th><td colspan='2'> </td>
|
||||
</tr>
|
||||
<tr class="Notes">
|
||||
<th class="Label"></th><td colspan='2'> </td>
|
||||
</tr>
|
||||
<tr class="Notes">
|
||||
<th class="Label"></th><td colspan='2'> </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>
|
||||
58
ljcom/htdocs/agecheck/consent.bml
Normal file
58
ljcom/htdocs/agecheck/consent.bml
Normal 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?>
|
||||
177
ljcom/htdocs/agecheck/index.bml
Normal file
177
ljcom/htdocs/agecheck/index.bml
Normal 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?>
|
||||
Reference in New Issue
Block a user