Uploaded image for project: 'CiviCRM'
  1. CiviCRM
  2. CRM-5905

Adding contact to group via Profile: if CiviMail disabled, contact should be Added without double-optin. If CiviMail enabled, double-optin is used unless disabled in settings file

    Details

    • Type: Bug
    • Status: Done/Fixed
    • Priority: Minor
    • Resolution: Fixed/Completed
    • Affects Version/s: 3.1.3
    • Fix Version/s: 3.2.4
    • Component/s: CiviCRM Profile
    • Labels:
      None

      Description

      1. Current behavior for non-embedded profiles when CiviMail is NOT enabled is incorrect:
      – Contact is added to group w/ Pending status
      – Email is sent with link to confirm (see below)
      – Clicking confirm link gives 'Access Denied'.

      Correct behavior: If CiviMail is NOT enabled, contact should be directly 'Added' to group - no double-optin used regardless of double-optin setting in civicrm.settings.php.

      2. When a profile is embedded in a contribution page (and likely in event registration) with 'Groups" field, AND CiviMail is enabled - we should be doing double-optin (unless it is explicitly disabled in civicrm.settings.php with CIVICRM_PROFILE_DOUBLE_OPTIN = 0). Currently this is not happening:

      http://forum.civicrm.org/index.php/topic,12485.msg53756.html#msg53756

      NOTE: Please test all 4 conditions for profiles embedded in contribution page / event registration page: CiviMail disabled, CiviMail enabled with double-optin setting = 0, Civmail enabled with double-optin setting = 1, Civmail enabled with double-optin setting not present (this should be the same is double-optin = 1 since default behavior is to use double-optin). Please make sure that this also works for each of the additional participants that have been configured w/ such a profile as well.

      =========================
      Detailed commend from Kurund on this:
      defined( 'CIVICRM_PROFILE_DOUBLE_OPTIN' ) is missing in civicrm.settings.php.

      Code in Defaults.php

      //profile double opt-in
      $this->profileDoubleOptIn = defined( 'CIVICRM_PROFILE_DOUBLE_OPTIN' ) ? false : true;

      if it is not defined then profile double opt in enabled, which is incorrect IF CiviMail is not enabled.

      Also in Form.php

      if ( $config->profileDoubleOptIn &&
      CRM_Utils_Array::value( 'group', $this->_fields ) ) {

      Here also CiviMail condition is not handled. So I think we CiviMail is disabled then double opt in disabled and we directly add Contacts to groups.

        Attachments

          Activity

            People

            • Assignee:
              kurund Kurund Jalmi
              Reporter:
              dgg David Greenberg
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: