Repository: wagtail/wagtail

Issue:
Update wording and help text for private pages using shared password
### Is your proposal related to a problem?

Wagtail's page privacy feature could be improved to communicate better to the user that the password created is different from using authentication (log in) to restrict access.

This issue is one part of a wider plan to improve this feature - see #10588

### Describe the solution you'd like

For private access dialogs (collection and page privacy), the following should be changed;

1. Update the ordering of the private access so that it goes from most public to most secure. 
  * The current ordering with the 'shared password' between the two logged in options does not make it easy to communicate the differences.
2. Change the wording for the labels:
  * "Private, accessible with the following password" -> "Private, accessible with a shared password"
  * "Private, accessible to logged-in users" -> "Private, accessible to any logged-in users"
3. Update the field label from "Password" to "Shared password"
4. Add help text (use our shared field template includes for this) with help text as follows:
  * "Shared passwords should not be used to protect sensitive content, anyone who has this password will be able to view the content."
5. Ensure all other references for private pages/collections are updated with references to 'password' becoming 'shared password'. Such as;
  * Documentation - https://docs.wagtail.org/en/stable/advanced_topics/privacy.html & https://docs.wagtail.org/en/stable/topics/permissions.html#image-document-permissions
  * Audit logging
  * Selected state in the side panel or the collection edit page
6. [x] Once merged - a new issue on the Wagtail Guide will be needed to ensure screenshots get updated https://guide.wagtail.org/en-latest/how-to-guides/manage-collections/#privacy-settings

#### Screenshots of current state

<img width="1011" alt="Screenshot 2024-01-26 at 4 51 17 pm" src="https://github.com/wagtail/wagtail/assets/1396140/193360ea-bfc5-4483-9c1b-9e51f6ecd2ac">


<img width="739" alt="Screenshot 2024-01-26 at 4 49 44 pm" src="https://github.com/wagtail/wagtail/assets/1396140/fa20ec2d-8c8f-4fa7-ab67-ea77c4be0cee">

Audit logging

![247612418-69278dd0-028d-4e69-a81e-493d8e161367](https://github.com/wagtail/wagtail/assets/1396140/7088d8fd-184c-4c75-ba47-e19a54a01b79)


### Describe alternatives you've considered

There were various discussions on https://github.com/wagtail/wagtail/issues/10588 about other approaches, the core team have agreed that this is a good first step.

### Additional context

* Some of this (help text) was done in https://github.com/wagtail/wagtail/pull/10729 - but do not use this PR, instead create a new one.
* Documentation - https://docs.wagtail.org/en/stable/advanced_topics/privacy.html & https://docs.wagtail.org/en/stable/topics/permissions.html#image-document-permissions

#### Out of scope

Updating the default password template form does not need to be changed. Many sites will customise this.

<img width="611" alt="Screenshot 2024-01-26 at 4 52 14 pm" src="https://github.com/wagtail/wagtail/assets/1396140/aedf2161-46ec-4ad2-8229-62e87cdcb2c1">


### Working on this

* Anyone can contribute to this who is willing to take the time to understand how the private access features work and review the changes suggested above and work through the code to find out where to update this.
* Unit tests and documentation must be updated with any PR
* View our [contributing guidelines](https://docs.wagtail.org/en/latest/contributing/index.html), add a comment to the issue once you’re ready to start.



Discussion:
I would like to work on this!
Go for it @rohitsrma 

Resolving patch:
diff --git a/wagtail/models/view_restrictions.py b/wagtail/models/view_restrictions.py
--- a/wagtail/models/view_restrictions.py
+++ b/wagtail/models/view_restrictions.py
@@ -19,13 +19,20 @@ class BaseViewRestriction(models.Model):
 
     RESTRICTION_CHOICES = (
         (NONE, _("Public")),
-        (LOGIN, _("Private, accessible to logged-in users")),
-        (PASSWORD, _("Private, accessible with the following password")),
+        (PASSWORD, _("Private, accessible with a shared password")),
+        (LOGIN, _("Private, accessible to any logged-in users")),
         (GROUPS, _("Private, accessible to users in specific groups")),
     )
 
     restriction_type = models.CharField(max_length=20, choices=RESTRICTION_CHOICES)
-    password = models.CharField(verbose_name=_("password"), max_length=255, blank=True)
+    password = models.CharField(
+        verbose_name=_("shared password"),
+        max_length=255,
+        blank=True,
+        help_text=_(
+            "Shared passwords should not be used to protect sensitive content. Anyone who has this password will be able to view the content."
+        ),
+    )
     groups = models.ManyToManyField(Group, verbose_name=_("groups"), blank=True)
 
     def accept_request(self, request):


Test patch:
diff --git a/wagtail/admin/tests/test_audit_log.py b/wagtail/admin/tests/test_audit_log.py
--- a/wagtail/admin/tests/test_audit_log.py
+++ b/wagtail/admin/tests/test_audit_log.py
@@ -95,15 +95,15 @@ def test_page_history(self):
 
         self.assertContains(
             response,
-            "Added the &#x27;Private, accessible to logged-in users&#x27; view restriction",
+            "Added the &#x27;Private, accessible to any logged-in users&#x27; view restriction",
         )
         self.assertContains(
             response,
-            "Updated the view restriction to &#x27;Private, accessible with the following password&#x27;",
+            "Updated the view restriction to &#x27;Private, accessible with a shared password&#x27;",
         )
         self.assertContains(
             response,
-            "Removed the &#x27;Private, accessible with the following password&#x27; view restriction",
+            "Removed the &#x27;Private, accessible with a shared password&#x27; view restriction",
         )
 
         self.assertContains(
diff --git a/wagtail/admin/tests/test_privacy.py b/wagtail/admin/tests/test_privacy.py
--- a/wagtail/admin/tests/test_privacy.py
+++ b/wagtail/admin/tests/test_privacy.py
@@ -203,7 +203,7 @@ def test_unset_password_restriction(self):
         history_response = self.client.get(history_url)
 
         # Check that the expected log message is present
-        expected_log_message = "Removed the &#x27;Private, accessible with the following password&#x27; view restriction. The page is public."
+        expected_log_message = "Removed the &#x27;Private, accessible with a shared password&#x27; view restriction. The page is public."
         self.assertContains(
             history_response,
             expected_log_message,