diff --git a/config/install/webform.webform.contact.yml b/config/install/webform.webform.contact.yml
index 2366faa2..fabd1fe0 100644
--- a/config/install/webform.webform.contact.yml
+++ b/config/install/webform.webform.contact.yml
@@ -68,7 +68,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/config/schema/webform.schema.yml b/config/schema/webform.schema.yml
index 3110d3d9..2af34dba 100644
--- a/config/schema/webform.schema.yml
+++ b/config/schema/webform.schema.yml
@@ -426,7 +426,7 @@ webform.webform.*:
           type: text
           label: 'Preview message'
         draft:
-          type: boolean
+          type: string
           label: 'Allow your users to save and finish the webform later.'
         draft_auto_save:
           type: boolean
diff --git a/modules/webform_examples/config/install/webform.webform.example_elements.yml b/modules/webform_examples/config/install/webform.webform.example_elements.yml
index dba6efa2..52dac263 100644
--- a/modules/webform_examples/config/install/webform.webform.example_elements.yml
+++ b/modules/webform_examples/config/install/webform.webform.example_elements.yml
@@ -522,7 +522,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_examples/config/install/webform.webform.example_elements_composite.yml b/modules/webform_examples/config/install/webform.webform.example_elements_composite.yml
index c99bd549..e2a88254 100644
--- a/modules/webform_examples/config/install/webform.webform.example_elements_composite.yml
+++ b/modules/webform_examples/config/install/webform.webform.example_elements_composite.yml
@@ -113,7 +113,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_examples/config/install/webform.webform.example_elements_masks.yml b/modules/webform_examples/config/install/webform.webform.example_elements_masks.yml
index 6e48ec01..c3d79f3f 100644
--- a/modules/webform_examples/config/install/webform.webform.example_elements_masks.yml
+++ b/modules/webform_examples/config/install/webform.webform.example_elements_masks.yml
@@ -110,7 +110,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_examples/config/install/webform.webform.example_elements_states.yml b/modules/webform_examples/config/install/webform.webform.example_elements_states.yml
index 98200668..9f265884 100644
--- a/modules/webform_examples/config/install/webform.webform.example_elements_states.yml
+++ b/modules/webform_examples/config/install/webform.webform.example_elements_states.yml
@@ -186,7 +186,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_examples/config/install/webform.webform.example_layout_basic.yml b/modules/webform_examples/config/install/webform.webform.example_layout_basic.yml
index c8807abd..33ed2b5e 100644
--- a/modules/webform_examples/config/install/webform.webform.example_layout_basic.yml
+++ b/modules/webform_examples/config/install/webform.webform.example_layout_basic.yml
@@ -246,7 +246,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_examples/config/install/webform.webform.example_layout_flexbox.yml b/modules/webform_examples/config/install/webform.webform.example_layout_flexbox.yml
index 938a2203..b55532fb 100644
--- a/modules/webform_examples/config/install/webform.webform.example_layout_flexbox.yml
+++ b/modules/webform_examples/config/install/webform.webform.example_layout_flexbox.yml
@@ -150,7 +150,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_examples/config/install/webform.webform.example_wizard.yml b/modules/webform_examples/config/install/webform.webform.example_wizard.yml
index a8144176..98f4f685 100644
--- a/modules/webform_examples/config/install/webform.webform.example_wizard.yml
+++ b/modules/webform_examples/config/install/webform.webform.example_wizard.yml
@@ -84,7 +84,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: true
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_templates/config/install/webform.webform.template_contact.yml b/modules/webform_templates/config/install/webform.webform.template_contact.yml
index 03a3a386..aaf02157 100644
--- a/modules/webform_templates/config/install/webform.webform.template_contact.yml
+++ b/modules/webform_templates/config/install/webform.webform.template_contact.yml
@@ -64,7 +64,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_templates/config/install/webform.webform.template_donation.yml b/modules/webform_templates/config/install/webform.webform.template_donation.yml
index b5bbd5a9..206add26 100644
--- a/modules/webform_templates/config/install/webform.webform.template_donation.yml
+++ b/modules/webform_templates/config/install/webform.webform.template_donation.yml
@@ -115,7 +115,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml b/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml
index c2eaabb1..b22b4bbf 100644
--- a/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml
+++ b/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml
@@ -111,7 +111,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_templates/config/install/webform.webform.template_issue.yml b/modules/webform_templates/config/install/webform.webform.template_issue.yml
index b2583807..72d63100 100644
--- a/modules/webform_templates/config/install/webform.webform.template_issue.yml
+++ b/modules/webform_templates/config/install/webform.webform.template_issue.yml
@@ -156,7 +156,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_templates/config/install/webform.webform.template_job_application.yml b/modules/webform_templates/config/install/webform.webform.template_job_application.yml
index 15979c97..5efa0653 100644
--- a/modules/webform_templates/config/install/webform.webform.template_job_application.yml
+++ b/modules/webform_templates/config/install/webform.webform.template_job_application.yml
@@ -112,7 +112,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml b/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml
index 509aaeda..558926ab 100644
--- a/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml
+++ b/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml
@@ -115,7 +115,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_templates/config/install/webform.webform.template_registration.yml b/modules/webform_templates/config/install/webform.webform.template_registration.yml
index 63d1c38b..4e0967a1 100644
--- a/modules/webform_templates/config/install/webform.webform.template_registration.yml
+++ b/modules/webform_templates/config/install/webform.webform.template_registration.yml
@@ -81,7 +81,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml b/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml
index 45197b00..45728abc 100644
--- a/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml
+++ b/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml
@@ -77,7 +77,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_templates/config/install/webform.webform.template_subscribe.yml b/modules/webform_templates/config/install/webform.webform.template_subscribe.yml
index 42555f50..236a8e3e 100644
--- a/modules/webform_templates/config/install/webform.webform.template_subscribe.yml
+++ b/modules/webform_templates/config/install/webform.webform.template_subscribe.yml
@@ -60,7 +60,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/modules/webform_templates/config/install/webform.webform.template_user_profile.yml b/modules/webform_templates/config/install/webform.webform.template_user_profile.yml
index dabdd486..2fc772fb 100644
--- a/modules/webform_templates/config/install/webform.webform.template_user_profile.yml
+++ b/modules/webform_templates/config/install/webform.webform.template_user_profile.yml
@@ -154,7 +154,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/src/Entity/Webform.php b/src/Entity/Webform.php
index da0049bc..3515edca 100644
--- a/src/Entity/Webform.php
+++ b/src/Entity/Webform.php
@@ -546,7 +546,7 @@ class Webform extends ConfigEntityBundleBase implements WebformInterface {
       'preview_prev_button_label' => '',
       'preview_prev_button_attributes' => [],
       'preview_message' => '',
-      'draft' => FALSE,
+      'draft' => self::DRAFT_ENABLED_NONE,
       'draft_auto_save' => FALSE,
       'draft_button_label' => '',
       'draft_button_attributes' => [],
diff --git a/src/Tests/WebformDraftTest.php b/src/Tests/WebformDraftTest.php
index a2c95324..ef2f0465 100644
--- a/src/Tests/WebformDraftTest.php
+++ b/src/Tests/WebformDraftTest.php
@@ -3,6 +3,7 @@
 namespace Drupal\webform\Tests;
 
 use Drupal\webform\Entity\Webform;
+use Drupal\webform\Entity\WebformSubmission;
 
 /**
  * Tests for webform draft.
@@ -16,78 +17,102 @@ class WebformDraftTest extends WebformTestBase {
    *
    * @var array
    */
-  protected static $testWebforms = ['test_form_draft', 'test_form_preview'];
+  protected static $testWebforms = ['test_form_draft_authenticated', 'test_form_draft_anonymous', 'test_form_preview'];
 
   /**
-   * Test webform draft with autosave.
+   * {@inheritdoc}
    */
-  public function testDraftWithAutosave() {
-    $account = $this->drupalCreateUser(['administer webform']);
-    $this->drupalLogin($account);
-
-    $webform_draft = Webform::load('test_form_draft');
+  public function setUp() {
+    parent::setUp();
 
-    // Save a draft.
-    $sid = $this->postSubmission($webform_draft, ['name' => 'John Smith'], t('Save a draft'));
-
-    // Check saved draft message.
-    $this->assertRaw('Your draft has been saved');
-    $this->assertNoRaw('You have an existing draft');
+    // Create users.
+    $this->createUsers();
+  }
 
-    // Check loaded draft message.
-    $this->drupalGet('webform/test_form_draft');
-    $this->assertNoRaw('Your draft has been saved');
-    $this->assertRaw('You have an existing draft');
-    $this->assertFieldByName('name', 'John Smith');
-
-    // Check submissions.
-    $this->drupalGet('webform/test_form_draft/submissions');
-    $this->assertRaw($sid . ' (draft)');
-
-    // Check submission.
-    $this->drupalGet('admin/structure/webform/manage/test_form_draft/submission/' . $sid);
-    $this->assertRaw('<div><b>Is draft:</b> Yes</div>');
-
-    // Check update draft and bypass validation.
-    $this->drupalPostForm('webform/test_form_draft', [
-      'name' => '',
-      'comment' => 'Hello World!',
-    ], t('Save a draft'));
-    $this->assertRaw('Your draft has been saved');
-    $this->assertNoRaw('You have an existing draft');
-    $this->assertFieldByName('name', '');
-    $this->assertFieldByName('comment', 'Hello World!');
-
-    // Check preview of draft with valid data.
-    $this->drupalPostForm('webform/test_form_draft', [
-      'name' => 'John Smith',
-      'comment' => 'Hello World!',
-    ], t('Preview'));
-    $this->assertNoRaw('Your draft has been saved');
-    $this->assertNoRaw('You have an existing draft');
-    $this->assertNoFieldByName('name', '');
-    $this->assertNoFieldByName('comment', 'Hello World!');
-    $this->assertRaw('<b>Name</b><br/>');
-    $this->assertRaw('<b>Comment</b><br/>');
-    $this->assertRaw('Please review your submission. Your submission is not complete until you press the "Submit" button!');
-
-    // Check submit.
-    $this->drupalPostForm('webform/test_form_draft', [], t('Submit'));
-    $this->assertRaw('New submission added to Test: Webform: Draft.');
-
-    // Check submission not in draft.
-    $this->drupalGet('webform/test_form_draft');
-    $this->assertNoRaw('Your draft has been saved');
-    $this->assertNoRaw('You have an existing draft');
-    $this->assertFieldByName('name', '');
-    $this->assertFieldByName('comment', '');
-
-    // Check submissions.
-    $this->drupalGet('webform/test_form_draft/submissions');
-    $this->assertNoRaw($sid . ' (draft)');
+  /**
+   * Test webform draft with autosave.
+   */
+  public function testDraftWithAutosave() {
+    $webform_ids = [
+      'test_form_draft_authenticated' => 'Test: Webform: Draft authenticated',
+      'test_form_draft_anonymous' => 'Test: Webform: Draft anonymous',
+    ];
+    foreach ($webform_ids as $webform_id => $webform_title) {
+      $is_authenticated = ($webform_id == 'test_form_draft_authenticated') ? TRUE : FALSE;
+
+      // Login draft account.
+      ($is_authenticated) ? $this->drupalLogin($this->normalUser) : $this->drupalLogout();
+
+      $webform = Webform::load($webform_id);
+
+      // Save a draft.
+      $sid = $this->postSubmission($webform, ['name' => 'John Smith'], t('Save a draft'));
+      /** @var \Drupal\webform\WebformSubmissionInterface $webform_submission */
+      $webform_submission = WebformSubmission::load($sid);
+
+      // Check saved draft message.
+      $this->assertRaw('Your draft has been saved');
+      $this->assertNoRaw('You have an existing draft');
+
+      // Check loaded draft message.
+      $this->drupalGet("webform/$webform_id");
+      $this->assertNoRaw('Your draft has been saved');
+      $this->assertRaw('You have an existing draft');
+      $this->assertFieldByName('name', 'John Smith');
+
+      // Login admin account.
+      $this->drupalLogin($this->adminSubmissionUser);
+
+      // Check submission.
+      $this->drupalGet("admin/structure/webform/manage/$webform_id/submission/$sid");
+      $this->assertRaw('<div><b>Is draft:</b> Yes</div>');
+
+      // Login draft account.
+      ($is_authenticated) ? $this->drupalLogin($this->normalUser) : $this->drupalLogout();
+
+      // Check update draft and bypass validation.
+      $this->drupalPostForm("webform/$webform_id", [
+        'name' => '',
+        'comment' => 'Hello World!',
+      ], t('Save a draft'));
+      $this->assertRaw('Your draft has been saved');
+      $this->assertNoRaw('You have an existing draft');
+      $this->assertFieldByName('name', '');
+      $this->assertFieldByName('comment', 'Hello World!');
+
+      // Check preview of draft with valid data.
+      $this->drupalPostForm("webform/$webform_id", [
+        'name' => 'John Smith',
+        'comment' => 'Hello World!',
+      ], t('Preview'));
+      $this->assertNoRaw('Your draft has been saved');
+      $this->assertNoRaw('You have an existing draft');
+      $this->assertNoFieldByName('name', '');
+      $this->assertNoFieldByName('comment', 'Hello World!');
+      $this->assertRaw('<b>Name</b><br/>');
+      $this->assertRaw('<b>Comment</b><br/>');
+      $this->assertRaw('Please review your submission. Your submission is not complete until you press the "Submit" button!');
+
+      // Check submit.
+      $this->drupalPostForm("webform/$webform_id", [], t('Submit'));
+      $this->assertRaw("New submission added to $webform_title.");
+
+      // Check submission not in draft.
+      $this->drupalGet("webform/$webform_id");
+      $this->assertNoRaw('Your draft has been saved');
+      $this->assertNoRaw('You have an existing draft');
+      $this->assertFieldByName('name', '');
+      $this->assertFieldByName('comment', '');
+    }
+
+    /**************************************************************************/
+    // Export.
+    /**************************************************************************/
+
+    $this->drupalLogin($this->adminSubmissionUser);
 
     // Check export with draft settings.
-    $this->drupalGet('admin/structure/webform/manage/test_form_draft/results/download');
+    $this->drupalGet('admin/structure/webform/manage/test_form_draft_authenticated/results/download');
     $this->assertFieldByName('export[download][state]', 'all');
 
     // Check export without draft settings.
@@ -95,15 +120,15 @@ class WebformDraftTest extends WebformTestBase {
     $this->assertNoFieldByName('export[download][state]', 'all');
 
     // Check autosave on submit with validation errors.
-    $this->drupalPostForm('webform/test_form_draft', [], t('Submit'));
+    $this->drupalPostForm('webform/test_form_draft_authenticated', [], t('Submit'));
     $this->assertRaw('Name field is required.');
-    $this->drupalGet('webform/test_form_draft');
+    $this->drupalGet('webform/test_form_draft_authenticated');
     $this->assertRaw('You have an existing draft');
 
     // Check autosave on preview.
-    $this->drupalPostForm('webform/test_form_draft', ['name' => 'John Smith'], t('Preview'));
+    $this->drupalPostForm('webform/test_form_draft_authenticated', ['name' => 'John Smith'], t('Preview'));
     $this->assertRaw('Please review your submission.');
-    $this->drupalGet('webform/test_form_draft');
+    $this->drupalGet('webform/test_form_draft_authenticated');
     $this->assertRaw('You have an existing draft');
     $this->assertRaw('<b>Name</b><br/>John Smith<br/><br/>');
   }
diff --git a/src/WebformEntitySettingsForm.php b/src/WebformEntitySettingsForm.php
index eb92596e..b46804c6 100644
--- a/src/WebformEntitySettingsForm.php
+++ b/src/WebformEntitySettingsForm.php
@@ -495,17 +495,20 @@ class WebformEntitySettingsForm extends EntityForm {
       ],
     ];
     $form['draft']['draft'] = [
-      '#type' => 'checkbox',
-      '#title' => $this->t('Allow your users to save and finish the webform later.'),
-      "#description" => $this->t('This option is available only for authenticated users.'),
-      '#return_value' => TRUE,
+      '#type' => 'radios',
+      '#title' => $this->t('Allow your users to save and finish the webform later'),
       '#default_value' => $settings['draft'],
+      '#options' => [
+        WebformInterface::DRAFT_ENABLED_NONE => $this->t('Disabled'),
+        WebformInterface::DRAFT_ENABLED_AUTHENTICATED => $this->t('Authenticated users'),
+        WebformInterface::DRAFT_ENABLED_ALL => $this->t('Authenticated and anonymous users'),
+      ],
     ];
     $form['draft']['settings'] = [
       '#type' => 'container',
       '#states' => [
-        'visible' => [
-          ':input[name="draft"]' => ['checked' => TRUE],
+        'invisible' => [
+          ':input[name="draft"]' => ['value' => WebformInterface::DRAFT_ENABLED_NONE],
         ],
       ],
     ];
diff --git a/src/WebformInterface.php b/src/WebformInterface.php
index 273a50df..a3c9b9e9 100644
--- a/src/WebformInterface.php
+++ b/src/WebformInterface.php
@@ -13,6 +13,27 @@ use Drupal\user\EntityOwnerInterface;
 interface WebformInterface extends ConfigEntityInterface, EntityWithPluginCollectionInterface, EntityOwnerInterface {
 
   /**
+   * Denote drafts are not allowed.
+   *
+   * @var string
+   */
+  const DRAFT_ENABLED_NONE = 'none';
+
+  /**
+   * Denote drafts are allowed for authenticated users only.
+   *
+   * @var string
+   */
+  const DRAFT_ENABLED_AUTHENTICATED = 'authenticated';
+
+  /**
+   * Denote drafts are allowed for authenticated and anonymous users.
+   *
+   * @var string
+   */
+  const DRAFT_ENABLED_ALL = 'all';
+
+  /**
    * Determine if the webform has page or is attached to other entities.
    *
    * @return bool
diff --git a/src/WebformSubmissionExporter.php b/src/WebformSubmissionExporter.php
index 1aac22d7..1b4b942b 100644
--- a/src/WebformSubmissionExporter.php
+++ b/src/WebformSubmissionExporter.php
@@ -561,7 +561,7 @@ class WebformSubmissionExporter implements WebformSubmissionExporterInterface {
         'completed' => $this->t('Completed submissions only'),
         'draft' => $this->t('Drafts only'),
       ],
-      '#access' => $webform->getSetting('draft'),
+      '#access' => ($webform->getSetting('draft') != WebformInterface::DRAFT_ENABLED_NONE),
     ];
   }
 
diff --git a/src/WebformSubmissionForm.php b/src/WebformSubmissionForm.php
index f659f880..61bcf3c9 100644
--- a/src/WebformSubmissionForm.php
+++ b/src/WebformSubmissionForm.php
@@ -184,6 +184,12 @@ class WebformSubmissionForm extends ContentEntityForm {
     // Add this webform and the webform settings to the cache tags.
     $form['#cache']['tags'][] = 'config:webform.settings';
 
+    if ($this->draftEnabled()) {
+      // If drafts enabled, we must also consider the caching metadata of draft
+      // storage.
+      \Drupal::service('renderer')->addCacheableDependency($form, $this->storage->draftCacheabilityMetadata());
+    }
+
     // Add the webform as a cacheable dependency.
     \Drupal::service('renderer')->addCacheableDependency($form, $this->getWebform());
 
@@ -1381,8 +1387,23 @@ class WebformSubmissionForm extends ContentEntityForm {
    *   TRUE if drafts are enabled.
    */
   protected function draftEnabled() {
-    $account = $this->currentUser();
-    return ($account->isAuthenticated() && $this->getWebformSetting('draft') && !$this->getWebformSetting('results_disabled')) ? TRUE : FALSE;
+    if ($this->getWebformSetting('results_disabled')) {
+      return FALSE;
+    }
+
+    switch ($this->getWebformSetting('draft')) {
+      case WebformInterface::DRAFT_ENABLED_ALL:
+        return TRUE;
+
+      case WebformInterface::DRAFT_ENABLED_AUTHENTICATED:
+        /** @var WebformSubmissionInterface $webform_submission */
+        $webform_submission = $this->getEntity();
+        return $webform_submission->getOwner()->isAuthenticated();
+
+      case WebformInterface::DRAFT_ENABLED_NONE:
+      default:
+        return FALSE;
+    }
   }
 
   /**
diff --git a/src/WebformSubmissionStorage.php b/src/WebformSubmissionStorage.php
index 841d9c91..f10fa24c 100644
--- a/src/WebformSubmissionStorage.php
+++ b/src/WebformSubmissionStorage.php
@@ -2,11 +2,20 @@
 
 namespace Drupal\webform;
 
+use Drupal\Core\Cache\CacheableMetadata;
+use Drupal\Core\Cache\CacheBackendInterface;
+use Drupal\Core\Database\Connection;
+use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\Serialization\Yaml;
 use Drupal\Core\Database\Database;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\Sql\SqlContentEntityStorage;
 use Drupal\Core\Session\AccountInterface;
+use Drupal\Core\Session\AccountProxyInterface;
+use Drupal\user\UserInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
  * Defines the webform submission storage.
@@ -21,6 +30,33 @@ class WebformSubmissionStorage extends SqlContentEntityStorage implements Webfor
   protected $elementDataSchema = [];
 
   /**
+   * Account proxy.
+   *
+   * @var \Drupal\Core\Session\AccountProxyInterface
+   */
+  protected $accountProxy;
+
+  public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
+    return new static(
+      $entity_type,
+      $container->get('database'),
+      $container->get('entity.manager'),
+      $container->get('cache.entity'),
+      $container->get('language_manager'),
+      $container->get('current_user')
+    );
+  }
+
+  /**
+   * WebformSubmissionStorage constructor.
+   */
+  public function __construct(EntityTypeInterface $entity_type, Connection $database, EntityManagerInterface $entity_manager, CacheBackendInterface $cache, LanguageManagerInterface $language_manager, AccountProxyInterface $account_proxy) {
+    parent::__construct($entity_type, $database, $entity_manager, $cache, $language_manager);
+
+    $this->accountProxy = $account_proxy;
+  }
+
+  /**
    * {@inheritdoc}
    */
   public function getFieldDefinitions() {
@@ -61,6 +97,22 @@ class WebformSubmissionStorage extends SqlContentEntityStorage implements Webfor
     $query->condition('in_draft', TRUE);
     $query->condition('webform_id', $webform->id());
     $query->condition('uid', $account->id());
+    if ($account->isAnonymous()) {
+      // Anonymous drafts are additionally filtered by the token column.
+      $is_current_account = $account->id() == $this->accountProxy->id();
+      if (!$is_current_account) {
+        // We cannot clearly identify an anonymous user when it's not current
+        // one since we need session for anonymous user identification.
+        return NULL;
+      }
+
+      $drafts = $this->getAccountDraftTokens();
+      if (empty($drafts)) {
+        // This guy hasn't saved any draft.
+        return NULL;
+      }
+      $query->condition('token', $drafts, 'IN');
+    }
     if ($source_entity) {
       $query->condition('entity_type', $source_entity->getEntityTypeId());
       $query->condition('entity_id', $source_entity->id());
@@ -80,6 +132,38 @@ class WebformSubmissionStorage extends SqlContentEntityStorage implements Webfor
   /**
    * {@inheritdoc}
    */
+  public function draftCacheabilityMetadata() {
+    // Since we store anonymous draft tokens in session, we must vary by it.
+    $cache = new CacheableMetadata();
+    $cache->addCacheContexts(['session']);
+    return $cache;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function accountLoggedIn(UserInterface $account) {
+    $draft_tokens = $this->getAccountDraftTokens();
+
+    // Move all anonymous drafts to UID of this account.
+    if (!empty($draft_tokens)) {
+      $query = $this->getQuery();
+      $query->condition('token', $draft_tokens, 'IN');
+      $query->condition('in_draft', 1);
+      $query->condition('uid', 0);
+      $ids = array_values($query->execute());
+      if (!empty($ids)) {
+        foreach ($this->loadMultiple($ids) as $webform_submission) {
+          $webform_submission->setOwner($account);
+          $webform_submission->save();
+        }
+      }
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   protected function doCreate(array $values) {
     /** @var \Drupal\webform\WebformSubmissionInterface $entity */
     $entity = parent::doCreate($values);
@@ -507,6 +591,12 @@ class WebformSubmissionStorage extends SqlContentEntityStorage implements Webfor
     foreach ($entities as $entity) {
       $this->invokeWebformElements('postLoad', $entity);
       $this->invokeWebformHandlers('postLoad', $entity);
+
+      // If this is an anonymous draft, it must vary by our caching meta data
+      // for drafts.
+      if ($entity->isDraft() && $entity->getOwner()->isAnonymous()) {
+        $entity->addCacheableDependency($this->draftCacheabilityMetadata());
+      }
     }
     return $return;
   }
@@ -519,6 +609,15 @@ class WebformSubmissionStorage extends SqlContentEntityStorage implements Webfor
     $id = parent::doPreSave($entity);
     $this->invokeWebformElements('preSave', $entity);
     $this->invokeWebformHandlers('preSave', $entity);
+
+    // We watch out for privacy: if the submission owner UID does not match the
+    // current user, then we cannot work on current user's private temp storage
+    // since apparently it is another user. Probably it's an programmatic
+    // submission or god knows what.
+    if ($entity->getOwnerId() == $this->accountProxy->id() && $entity->isDraft() && $entity->getOwner()->isAnonymous()) {
+      $this->addAccountDraft($entity);
+    }
+
     return $id;
   }
 
@@ -864,4 +963,36 @@ class WebformSubmissionStorage extends SqlContentEntityStorage implements Webfor
       ->execute();
   }
 
+  /**
+   * Retrieve a list of webform submission tokens of a current account.
+   *
+   * We use session for storing draft tokens. So we can only do it for the
+   * current user.
+   *
+   * We do not use PrivateTempStore because it utilizes session ID as the key in
+   * key-value hash map where it stores its data. During user login the session
+   * ID is regenerated (see user_login_finalize()) so it is not suitable for us
+   * since we need to "carry" the draft tokens from anonymous session to the
+   * logged in one. See self::accountLoggedIn() for additional details.
+   *
+   * @return string[]
+   *   Array of draft tokens of the provided account
+   */
+  protected function getAccountDraftTokens() {
+    return isset($_SESSION['webform']['draft_tokens']) ? $_SESSION['webform']['draft_tokens'] : [];
+  }
+
+  /**
+   * Add webform submission as a draft for the current account.
+   *
+   * @param \Drupal\webform\WebformSubmissionInterface $webform_submission
+   *   Webform submission to add as a draft of the current account
+   */
+  protected function addAccountDraft(WebformSubmissionInterface $webform_submission) {
+    if (!isset($_SESSION['webform']['draft_tokens'])) {
+      $_SESSION['webform']['draft_tokens'] = [];
+    }
+    $_SESSION['webform']['draft_tokens'][] = $webform_submission->getToken();
+  }
+
 }
diff --git a/src/WebformSubmissionStorageInterface.php b/src/WebformSubmissionStorageInterface.php
index 54018e7c..94571924 100644
--- a/src/WebformSubmissionStorageInterface.php
+++ b/src/WebformSubmissionStorageInterface.php
@@ -2,9 +2,11 @@
 
 namespace Drupal\webform;
 
+use Drupal\Core\Cache\CacheableMetadata;
 use Drupal\Core\Entity\ContentEntityStorageInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Session\AccountInterface;
+use Drupal\user\UserInterface;
 
 /**
  * Defines an interface for webform submission classes.
@@ -118,6 +120,23 @@ interface WebformSubmissionStorageInterface extends ContentEntityStorageInterfac
   public function loadDraft(WebformInterface $webform, EntityInterface $source_entity = NULL, AccountInterface $account = NULL);
 
   /**
+   * Generate cache metadata that accompanies submission drafts.
+   *
+   * @return CacheableMetadata
+   *   Cache metadata that describes how drafts are cached in the submission
+   *   storage
+   */
+  public function draftCacheabilityMetadata();
+
+  /**
+   * React to an event when a user logs in.
+   *
+   * @param \Drupal\user\UserInterface $account
+   *   Account that has just logged in
+   */
+  public function accountLoggedIn(UserInterface $account);
+
+  /**
    * Get the total number of submissions.
    *
    * @param \Drupal\webform\WebformInterface|null $webform
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_inline.yml b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_inline.yml
index 225876cd..765ca9e2 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_inline.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_inline.yml
@@ -50,7 +50,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_message.yml b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_message.yml
index f24298b3..f08bf8de 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_message.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_message.yml
@@ -50,7 +50,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page.yml b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page.yml
index c90a683b..5f188727 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page.yml
@@ -50,7 +50,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page_custom.yml b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page_custom.yml
index 750e276d..6c14fe10 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page_custom.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page_custom.yml
@@ -50,7 +50,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url.yml b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url.yml
index 3d45adae..fdd63710 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url.yml
@@ -50,7 +50,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url_message.yml b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url_message.yml
index 269af0dd..2f8f5646 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url_message.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url_message.yml
@@ -50,7 +50,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element.yml b/tests/modules/webform_test/config/install/webform.webform.test_element.yml
index eaaac37d..04634e94 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element.yml
@@ -266,7 +266,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_access.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_access.yml
index a26ede53..85bd9269 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_access.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_access.yml
@@ -114,7 +114,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_allowed_tags.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_allowed_tags.yml
index 706d5064..097b520e 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_allowed_tags.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_allowed_tags.yml
@@ -52,7 +52,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_attributes.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_attributes.yml
index 889c57a1..72cd53f3 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_attributes.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_attributes.yml
@@ -65,7 +65,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_autocomplete.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_autocomplete.yml
index a3233db7..8191c27e 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_autocomplete.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_autocomplete.yml
@@ -70,7 +70,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_codemirror.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_codemirror.yml
index 1de4e41a..55b05c60 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_codemirror.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_codemirror.yml
@@ -70,7 +70,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_composite.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_composite.yml
index 6bbe33bd..eaaa606a 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_composite.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_composite.yml
@@ -124,7 +124,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_dates.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_dates.yml
index 532152e7..e355a195 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_dates.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_dates.yml
@@ -193,7 +193,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_email.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_email.yml
index 6382eb77..a806bab6 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_email.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_email.yml
@@ -77,7 +77,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_entity_reference.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_entity_reference.yml
index a1e3fda7..857c8886 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_entity_reference.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_entity_reference.yml
@@ -142,7 +142,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox.yml
index 39c90bd9..4ed824f7 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox.yml
@@ -853,7 +853,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox_flex.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox_flex.yml
index 72ce1c3e..2a64f97c 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox_flex.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox_flex.yml
@@ -838,7 +838,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_format.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_format.yml
index 6111c39d..2041dbe2 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_format.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_format.yml
@@ -1010,7 +1010,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_format_composite.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_format_composite.yml
index 5e0711ad..420fbb62 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_format_composite.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_format_composite.yml
@@ -369,7 +369,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_format_multi_comp.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_format_multi_comp.yml
index 10f060c8..a42bb9bd 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_format_multi_comp.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_format_multi_comp.yml
@@ -427,7 +427,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_format_multiple.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_format_multiple.yml
index 81c7ad09..d14482d7 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_format_multiple.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_format_multiple.yml
@@ -1321,7 +1321,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_format_token.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_format_token.yml
index 3f1a55eb..68c4a1f6 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_format_token.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_format_token.yml
@@ -59,7 +59,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_html_editor.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_html_editor.yml
index a987b259..68d30b3c 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_html_editor.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_html_editor.yml
@@ -52,7 +52,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_html_escape.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_html_escape.yml
index 24293a7c..ceefc080 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_html_escape.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_html_escape.yml
@@ -522,7 +522,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_html_markup.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_html_markup.yml
index 3144e5d5..3b059fc8 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_html_markup.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_html_markup.yml
@@ -522,7 +522,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_ignored_properties.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_ignored_properties.yml
index 2d483893..acf1901b 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_ignored_properties.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_ignored_properties.yml
@@ -62,7 +62,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_invalid.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_invalid.yml
index 993d2c4f..9f266ae5 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_invalid.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_invalid.yml
@@ -51,7 +51,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_likert.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_likert.yml
index 7fda1a44..8a728424 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_likert.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_likert.yml
@@ -78,7 +78,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_location.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_location.yml
index 67b9a25a..c03cbadc 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_location.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_location.yml
@@ -119,7 +119,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file.yml
index 1ed2361c..c6378143 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file.yml
@@ -57,7 +57,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_markup.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_markup.yml
index 37a5f12e..3815147e 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_markup.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_markup.yml
@@ -62,7 +62,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_media_file.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_media_file.yml
index fb7548b1..f50f83c2 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_media_file.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_media_file.yml
@@ -99,7 +99,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_message.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_message.yml
index fe9bd1d5..15827e98 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_message.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_message.yml
@@ -117,7 +117,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_multiple.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_multiple.yml
index 2059a514..5b239c6a 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_multiple.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_multiple.yml
@@ -165,7 +165,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_date.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_date.yml
index 13ea0416..ef5a5f4c 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_date.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_date.yml
@@ -72,7 +72,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_text.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_text.yml
index a749a374..0a683738 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_text.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_text.yml
@@ -113,7 +113,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_options.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_options.yml
index c6fc74b3..7955d9f1 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_options.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_options.yml
@@ -90,7 +90,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_other.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_other.yml
index 3b58261d..8035b834 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_other.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_other.yml
@@ -171,7 +171,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_private.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_private.yml
index 58f6c3ae..af7f3532 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_private.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_private.yml
@@ -56,7 +56,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_rating.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_rating.yml
index ae74bd2a..ae166a4d 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_rating.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_rating.yml
@@ -62,7 +62,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_signature.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_signature.yml
index c31b781e..8a124f5a 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_signature.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_signature.yml
@@ -55,7 +55,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_states.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_states.yml
index a17e50dd..04bfdd33 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_states.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_states.yml
@@ -112,7 +112,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_table.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_table.yml
index a803ccb6..677622a8 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_table.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_table.yml
@@ -211,7 +211,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_text.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_text.yml
index f129f28b..c7b798be 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_text.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_text.yml
@@ -80,7 +80,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_text_format.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_text_format.yml
index dfdd1e81..06765c87 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_text_format.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_text_format.yml
@@ -53,7 +53,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_toggle.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_toggle.yml
index 60ca64d2..1eb59406 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_toggle.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_toggle.yml
@@ -82,7 +82,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_users_roles.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_users_roles.yml
index 4894fcd5..fe31fc11 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_users_roles.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_users_roles.yml
@@ -65,7 +65,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_validate_minlength.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_validate_minlength.yml
index 43587835..2dfe0db1 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_validate_minlength.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_validate_minlength.yml
@@ -53,7 +53,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_element_validate_unique.yml b/tests/modules/webform_test/config/install/webform.webform.test_element_validate_unique.yml
index 086c023c..b6aeebf5 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_element_validate_unique.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_element_validate_unique.yml
@@ -65,7 +65,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_assets.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_assets.yml
index 02160e44..d128efa1 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_assets.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_assets.yml
@@ -61,7 +61,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_autofocus.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_autofocus.yml
index 91a2f5f7..c3d30bca 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_autofocus.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_autofocus.yml
@@ -51,7 +51,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_buttons.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_buttons.yml
index 13ecdca2..ae6612f7 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_buttons.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_buttons.yml
@@ -75,7 +75,7 @@ settings:
       - preview_prev_button_attributes
     style: 'color: orange'
   preview_message: ''
-  draft: true
+  draft: authenticated
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes:
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_closed.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_closed.yml
index 2e58ca8e..ab2a290d 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_closed.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_closed.yml
@@ -50,7 +50,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_confidential.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_confidential.yml
index 294b5818..682f7577 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_confidential.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_confidential.yml
@@ -51,7 +51,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_details_toggle.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_details_toggle.yml
index 7e474900..720fed17 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_details_toggle.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_details_toggle.yml
@@ -58,7 +58,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_disable_autocomplete.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_disable_autocomplete.yml
index 6f209035..e7ab8d09 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_disable_autocomplete.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_disable_autocomplete.yml
@@ -53,7 +53,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_disable_back.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_disable_back.yml
index 7298e6a2..39147e98 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_disable_back.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_disable_back.yml
@@ -378,7 +378,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_draft.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_draft_anonymous.yml
similarity index 92%
rename from tests/modules/webform_test/config/install/webform.webform.test_form_draft.yml
rename to tests/modules/webform_test/config/install/webform.webform.test_form_draft_anonymous.yml
index 563fc201..20c8df4a 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_draft.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_draft_anonymous.yml
@@ -6,9 +6,9 @@ dependencies:
       - webform_test
 uid: null
 template: false
-id: test_form_draft
-title: 'Test: Webform: Draft'
-description: 'Test saving a draft and previewing a submission.'
+id: test_form_draft_anonymous
+title: 'Test: Webform: Draft anonymous'
+description: 'Test saving a draft and previewing a submission for anonymous (and authenticated users).'
 elements: |
   name:
     '#type': textfield
@@ -55,7 +55,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: true
+  draft: all
   draft_auto_save: true
   draft_button_label: 'Save a draft'
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_draft_authenticated.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_draft_authenticated.yml
new file mode 100644
index 00000000..83c914d3
--- /dev/null
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_draft_authenticated.yml
@@ -0,0 +1,109 @@
+langcode: en
+status: true
+dependencies:
+  enforced:
+    module:
+      - webform_test
+uid: null
+template: false
+id: test_form_draft_authenticated
+title: 'Test: Webform: Draft authenticated'
+description: 'Test saving a draft and previewing a submission for authenticated users.'
+elements: |
+  name:
+    '#type': textfield
+    '#title': Name
+    '#required': true
+  comment:
+    '#type': textarea
+    '#title': Comment
+css: ''
+javascript: ''
+settings:
+  page: true
+  page_submit_path: ''
+  page_confirm_path: ''
+  form_submit_label: ''
+  form_submit_once: false
+  form_submit_attributes: {  }
+  form_exception_message: ''
+  form_closed_message: ''
+  form_previous_submissions: true
+  form_confidential: false
+  form_confidential_message: ''
+  form_prepopulate: true
+  form_prepopulate_source_entity: false
+  form_disable_autocomplete: false
+  form_novalidate: false
+  form_unsaved: false
+  form_disable_back: false
+  form_autofocus: false
+  form_details_toggle: false
+  wizard_progress_bar: true
+  wizard_progress_pages: false
+  wizard_progress_percentage: false
+  wizard_next_button_label: ''
+  wizard_next_button_attributes: {  }
+  wizard_prev_button_label: ''
+  wizard_prev_button_attributes: {  }
+  wizard_start_label: ''
+  wizard_complete: true
+  wizard_complete_label: ''
+  preview: 1
+  preview_next_button_label: ''
+  preview_next_button_attributes: {  }
+  preview_prev_button_label: ''
+  preview_prev_button_attributes: {  }
+  preview_message: ''
+  draft: authenticated
+  draft_auto_save: true
+  draft_button_label: 'Save a draft'
+  draft_button_attributes: {  }
+  draft_saved_message: 'Your draft has been saved'
+  draft_loaded_message: 'You have an existing draft'
+  confirmation_type: message
+  confirmation_message: ''
+  confirmation_url: ''
+  confirmation_attributes: {  }
+  confirmation_back: true
+  confirmation_back_label: ''
+  confirmation_back_attributes: {  }
+  limit_total: null
+  limit_total_message: ''
+  limit_user: null
+  limit_user_message: ''
+  purge: none
+  purge_days: null
+  entity_limit_total: null
+  entity_limit_user: null
+  results_disabled: false
+  results_disabled_ignore: true
+  token_update: false
+access:
+  create:
+    roles:
+      - anonymous
+      - authenticated
+    users: {  }
+  view_any:
+    roles: {  }
+    users: {  }
+  update_any:
+    roles: {  }
+    users: {  }
+  delete_any:
+    roles: {  }
+    users: {  }
+  purge_any:
+    roles: {  }
+    users: {  }
+  view_own:
+    roles: {  }
+    users: {  }
+  update_own:
+    roles: {  }
+    users: {  }
+  delete_own:
+    roles: {  }
+    users: {  }
+handlers: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_long_100.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_long_100.yml
index f9c633c1..20a442c7 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_long_100.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_long_100.yml
@@ -348,7 +348,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_long_200.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_long_200.yml
index b035e864..a0dba911 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_long_200.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_long_200.yml
@@ -648,7 +648,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_long_300.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_long_300.yml
index b4bb96ea..1f45b277 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_long_300.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_long_300.yml
@@ -948,7 +948,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_novalidate.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_novalidate.yml
index fcdc1cb0..ec5d40e1 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_novalidate.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_novalidate.yml
@@ -55,7 +55,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_prepopulate.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_prepopulate.yml
index 1d3a3bf0..5f8cf497 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_prepopulate.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_prepopulate.yml
@@ -60,7 +60,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_preview.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_preview.yml
index e9b6a742..7c77425d 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_preview.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_preview.yml
@@ -51,7 +51,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_properties.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_properties.yml
index 5c5aad0c..53ffdcad 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_properties.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_properties.yml
@@ -63,7 +63,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_states.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_states.yml
index 0b8a77f1..bcbd3173 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_states.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_states.yml
@@ -2276,7 +2276,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_states_triggers.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_states_triggers.yml
index 501d3354..59b076c8 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_states_triggers.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_states_triggers.yml
@@ -163,7 +163,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_submit_once.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_submit_once.yml
index 98a929cb..c72b196e 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_submit_once.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_submit_once.yml
@@ -59,7 +59,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: true
+  draft: authenticated
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_submit_text.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_submit_text.yml
index 80e32fb5..a2731ca2 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_submit_text.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_submit_text.yml
@@ -48,7 +48,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_template.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_template.yml
index 20661efb..7ba2bab2 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_template.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_template.yml
@@ -50,7 +50,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved.yml
index 87f21f62..86e9be27 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved.yml
@@ -52,7 +52,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_validate.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_validate.yml
index e7fe876d..3a78e749 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_validate.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_validate.yml
@@ -51,7 +51,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_advanced.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_advanced.yml
index 8d81a939..c7d3affa 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_advanced.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_advanced.yml
@@ -93,7 +93,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: true
+  draft: authenticated
   draft_auto_save: true
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_basic.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_basic.yml
index 894f27fb..edff1d71 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_basic.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_basic.yml
@@ -62,7 +62,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_custom.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_custom.yml
index 7f20094c..00cddf52 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_custom.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_custom.yml
@@ -90,7 +90,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_100.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_100.yml
index 8cb76b7f..65e1b75b 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_100.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_100.yml
@@ -378,7 +378,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_200.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_200.yml
index be914ace..ece58b13 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_200.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_200.yml
@@ -708,7 +708,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_300.yml b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_300.yml
index e3108eff..91d73e62 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_300.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_300.yml
@@ -1038,7 +1038,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_handler_email.yml b/tests/modules/webform_test/config/install/webform.webform.test_handler_email.yml
index 3910abb6..1b6d18bc 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_handler_email.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_handler_email.yml
@@ -73,7 +73,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_handler_email_advanced.yml b/tests/modules/webform_test/config/install/webform.webform.test_handler_email_advanced.yml
index 59ffe079..4f5e2a70 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_handler_email_advanced.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_handler_email_advanced.yml
@@ -77,7 +77,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_results.yml b/tests/modules/webform_test/config/install/webform.webform.test_results.yml
index 71e04b26..f194b70c 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_results.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_results.yml
@@ -91,7 +91,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_submission_disabled.yml b/tests/modules/webform_test/config/install/webform.webform.test_submission_disabled.yml
index 9686ee01..e03506a4 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_submission_disabled.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_submission_disabled.yml
@@ -50,7 +50,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_submission_limit.yml b/tests/modules/webform_test/config/install/webform.webform.test_submission_limit.yml
index e6ff2db8..499b16aa 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_submission_limit.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_submission_limit.yml
@@ -51,7 +51,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: true
+  draft: authenticated
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_token.yml b/tests/modules/webform_test/config/install/webform.webform.test_token.yml
index 7cac0f24..d59ba6b4 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_token.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_token.yml
@@ -150,7 +150,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test/config/install/webform.webform.test_token_update.yml b/tests/modules/webform_test/config/install/webform.webform.test_token_update.yml
index 559c7ac7..48dbc2f8 100644
--- a/tests/modules/webform_test/config/install/webform.webform.test_token_update.yml
+++ b/tests/modules/webform_test/config/install/webform.webform.test_token_update.yml
@@ -51,7 +51,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test_element/config/install/webform.webform.test_element_plugin_test.yml b/tests/modules/webform_test_element/config/install/webform.webform.test_element_plugin_test.yml
index 2fba1968..81618f09 100644
--- a/tests/modules/webform_test_element/config/install/webform.webform.test_element_plugin_test.yml
+++ b/tests/modules/webform_test_element/config/install/webform.webform.test_element_plugin_test.yml
@@ -55,7 +55,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_remote_post.yml b/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_remote_post.yml
index ba2f8585..f28bbb7a 100644
--- a/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_remote_post.yml
+++ b/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_remote_post.yml
@@ -73,7 +73,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_test.yml b/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_test.yml
index 1a8ec139..78e495ec 100644
--- a/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_test.yml
+++ b/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_test.yml
@@ -54,7 +54,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/tests/modules/webform_test_handler/webform_test_handler.info.yml b/tests/modules/webform_test_handler/webform_test_handler.info.yml
index 4c1516e6..d6df58c0 100644
--- a/tests/modules/webform_test_handler/webform_test_handler.info.yml
+++ b/tests/modules/webform_test_handler/webform_test_handler.info.yml
@@ -5,3 +5,4 @@ package: Testing
 core: 8.x
 dependencies:
   - webform
+  - webform_test_handler
diff --git a/tests/modules/webform_test_options/config/install/webform.webform.test_options.yml b/tests/modules/webform_test_options/config/install/webform.webform.test_options.yml
index 9569dd29..bbcc7381 100644
--- a/tests/modules/webform_test_options/config/install/webform.webform.test_options.yml
+++ b/tests/modules/webform_test_options/config/install/webform.webform.test_options.yml
@@ -252,7 +252,7 @@ settings:
   preview_prev_button_label: ''
   preview_prev_button_attributes: {  }
   preview_message: ''
-  draft: false
+  draft: none
   draft_auto_save: false
   draft_button_label: ''
   draft_button_attributes: {  }
diff --git a/webform.install b/webform.install
index 21f1eb51..47bedbf6 100644
--- a/webform.install
+++ b/webform.install
@@ -12,6 +12,7 @@ use Drupal\Core\Render\Element;
 use Drupal\system\Entity\Action;
 use Drupal\webform\Entity\Webform;
 use Drupal\webform\Plugin\WebformElement\ManagedFile;
+use Drupal\webform\WebformInterface;
 
 /**
  * Implements hook_uninstall().
@@ -530,3 +531,16 @@ function webform_update_8018() {
   _webform_update_admin_settings();
   _webform_update_form_settings();
 }
+
+/**
+ * Issue #2838423: Drafts for anonymous users.
+ */
+function webform_update_8019() {
+  $config_factory = \Drupal::configFactory();
+  foreach ($config_factory->listAll('webform.webform.') as $webform_config_name) {
+    $webform_config = $config_factory->getEditable($webform_config_name);
+    $data = $webform_config->getRawData();
+    $data['settings']['draft'] = ($data['settings']['draft'] == TRUE) ? WebformInterface::DRAFT_ENABLED_AUTHENTICATED : WebformInterface::DRAFT_ENABLED_NONE;
+    $webform_config->setData($data)->save();
+  }
+}
diff --git a/webform.module b/webform.module
index ae7560c4..255de5dc 100644
--- a/webform.module
+++ b/webform.module
@@ -99,6 +99,14 @@ function webform_modules_uninstalled($modules) {
 }
 
 /**
+ * Implements hook_user_login().
+ */
+function webform_user_login($account) {
+  // Notify the storage of this log in.
+  \Drupal::entityTypeManager()->getStorage('webform_submission')->accountLoggedIn($account);
+}
+
+/**
  * Implements hook_cron().
  */
 function webform_cron() {
