It would be useful to have a permission that can bypass age validation when creating other user accounts. One example for this is for COPPA compliance, where kids under 13 cannot register to a website by themselves, but if the parents consent, an admin can create an account for their kids.

Attached is a patch that adds that permission, and bypasses validation whenever a user with it creates an account. It does not bypass user-1 automatically, since this should be an explicit permission due to privacy issues.

CommentFileSizeAuthor
validateage-bypass.patch722 bytesvkareh

Comments

nicholas.alipaz’s picture

I say we should expand on this patch to support COPPA rather than committing as is.

vkareh’s picture

There is already a COPPA module, but I found it was an overkill for what I wanted. In my case I was building a website where teachers got a signed paper from the kids' parents to have the account created if the kid was under 13. In that particular situation, COPPA was being handled offline, which is just as good.

However, I agree with you that COPPA compliance would be nice if built into this module. One way I've accomplished COPPA compliance was to use the Subuser module to have users of role Parents to create subusers of role Kids.

What would you suggest for improving this for better COPPA compliance?

nicholas.alipaz’s picture

From my experiences the site should simply send out an email to the specified email address requesting that they get their parents to "fill out this form" and mail/scan-email it back in. The administrator receives the signed doc and enables their account manually.

That is a very basic implementation, so really all that I would say is missing is a COPPA email/template to send out and the option to leave non-verified accounts as inactive until verified via COPPA.

As far as the existing COPPA module is concerned, yes I agree it seems a bit overkill and difficult to manage IMO. I like the subuser module, it is kind of like 'U Create' module provided with Open Atrium, however I think maybe it is not necessary for this. Wouldn't really want to make it a requirement truthfully.

However, I think as a submodule of this module (validateage_coppa, maybe) we could enable very basic coppa support and really dive into some of the more in depth ideas there. Perhaps extend our submodule a bit if, and only if, the subuser module is installed too. Same for other modules that could aid in coppa support, but minimally provide basic coppa support (email) without requirements of any other modules.

vkareh’s picture

I like the simplicity of that solution: sending an email. However, it makes several assumptions:

  1. that the email that the kid typed is that of their parents
  2. that there will be an administrator actively monitoring the requests

1 can be easily solved by providing a new Parent email field on form rebuild, if validateage doesn't validate.
I don't particularly like assumption 2, but it will work for some cases. We could provide an option that allows the admin to decide whether someone will manually enable the account, or if the account should be automatically enabled. This last solution would be accomplished by providing an account activation link sent to the parents. That way, they can sign off on the kid having the account, and are at least aware of which website the kid is getting into.

This definitely warrants its own submodule. Some sort of bridge between the Validateage and COPPA modules.

nicholas.alipaz’s picture

Some interesting ideas. I don't have much time to write about my opinion on it now, but will come back and discuss tomorrow. I do want to mention that we should look over the coppa compliance info:
http://www.coppa.org/comply.htm

nicholas.alipaz’s picture

Title: Permission for bypassing validation » Permission for bypassing validation and usage of COPPA
Status: Needs review » Active
Issue tags: +Administration, +user management, +COPPA

I reviewed some of our ideas, the coppa module and the details in the compliance link above. After really thinking about it, I think our own solution is best overall.

The main issue bridging to the coppa module is that It already provides a way of collecting date of birth, which we are doing in this module and it would most likely conflict within the UI of collection. There are also other issues I see with the ways it does it's verification, things that I don't see as exactly complying with the guidelines of coppa.

Things a compliant coppa module would need to consider:

  1. A public notice on the site that would show the following:
    • Listing the contact information (address, telephone number and email address) for all administrators who will be handling the child's information.
    • Additionally listing all admins who cooperate on the site but don't handle the privacy policy or child's information.
    • Information about the child collected by the site (ex: name, address, email address, hobbies, etc.) and how the information is collected -- directly from the child or passively, say, through cookies.
    • How the site will use the child's personal information.
    • Whether information is disclosed to third parties or not. If so, list the kinds of businesses in which the third parties are engaged and whether the parties have agreed to confidentiality of the info.
    • Telling the parent they are not required to allow disclosure to third parties.
    • The operator(s) will not require more info than is reasonably necessary to participate on the site.
    • The parent can review the info provided to the site and request deletion at any time. Provide instructions to do so.
  2. An official notice sent to the parent by email explaining that the site wishes to collect information from the child. It should be clear, concise and include no unrelated information. This notice would provide instructions on verifying the parents consent to use the site. One of the following options would need to be enabled by the site:
    • Email (or upload to the site) of a scanned copy of a printed/filled out/signed copy of the consent
    • Postal or Facsimile of the above
    • Phone call to toll free number manned by trained reps
  3. IMPORTANT, The site must not collect personal information before verifying the user's age. Current implementation will do so by placing the date of birth field on the registration page which may require other personal information. We would need to move date of birth to an interstitial page before the registration page to accomplish this. Requested registration information would then need to be altered based on a user's age.
  4. Option to notify Parents of changes to the use of information or the information required and send a new notice of consent.
  5. Create a system for parents to login and review their child's shared information and request deletion of the info or delete the account entirely.
  6. Lastly, consideration of better handling of the date of birth and calculation of age. Removing children from coppa users once they reach the age of 13. The current implementation does not necessarily handle this well. I have written a hook_cron() in another module on my site that updates all users' age once a day. Perhaps some patches to the birthday module to offer cck support and other fixes then making it a requirement would fix this.

I know this is a lot to think about, but I personally think that good COPPA support is currently missing from Drupal. The aforementioned COPPA module does make a valid attempt, but the usage and implementation leaves something to be desired.

Validateage module seems like an very appropriate place to add COPPA support. Once we can come together and decide on a good system we can start coding, but the plan needs to be there first.

nicholas.alipaz’s picture

Status: Active » Postponed (maintainer needs more info)

I am not completely sure what direction we should take in implementing this. We should decide on a path to taken before going further since this will require considerable work.

vkareh’s picture

The basics of it, the original patch, just adds the permission so that admins can create other user accounts. The rest of the discussion is pretty much a different feature altogether.

I propose adding the necessary permission with the patch, and keep the thread open for the other COPPA feature, since they are different.

nicholas.alipaz’s picture

Status: Postponed (maintainer needs more info) » Active

Added the above patch to the module: http://drupal.org/cvs?commit=471598

Lets keep this open for discussion of coppa in the future.