     passwordTooShort: null
     passwordsDontMatch: null
     emailConflict: null
+    agreedToPrivacyPolicy: null
     error: null
 
   componentDidMount: ->

      <br />

      <label>
        <input type="checkbox" ref="agreesToPrivacyPolicy" disabled={@state.user?} onChange={@forceUpdate.bind this, null} />
        {privacyPolicyLink = <a href="#/todo/privacy"><Translate content="registerForm.privacyPolicy" /></a>; null}
        <Translate component="span" content="registerForm.agreeToPrivacyPolicy" link={privacyPolicyLink} />
      </label>

    @promiseToSetState emailConflict: auth.register({email}).catch (error) ->
      error.message.match(/email(.+)taken/mi) ? false

  handlePrivacyPolicyChange: ->
    @setState agreesToPrivacyPolicy: @refs.agreesToPrivacyPolicy.getDOMNode().checked

  isFormValid: ->
    {badNameChars, nameConflict, passwordsDontMatch, emailConflict, agreesToPrivacyPolicy} = @state
    badNameChars?.length is 0 and not nameConflict and not passwordsDontMatch and not emailConflict and agreesToPrivacyPolicy

  handleSubmit: (e) ->
