[ADD] General: User portal rework and addition

closes odoo/documentation#15875

X-original-commit: 13ab156fd2
Signed-off-by: Thomas Jude Cavazos (thjud) <thjud@odoo.com>
Co-authored-by: Lara Martini <larm@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
This commit is contained in:
therealthagomizer
2025-12-09 23:48:08 +00:00
parent 919ed831f6
commit ccee95fcda
22 changed files with 274 additions and 187 deletions

View File

@@ -58,7 +58,7 @@ User` or :guilabel:`Portal User`.
Odoo databases have three types of users: :guilabel:`Internal User`, :guilabel:`Portal`, and
:guilabel:`Public`. Users are considered *internal database* users. Portal users are *external
users*, who only have access to the database portal to view records. Public users are those visiting
websites, via the website's frontend. See the documentation on :doc:`users/portal`.
websites, via the website's frontend. See the documentation on :doc:`users/user_portals`.
The :guilabel:`Portal` user option does **not** allow the administrator to choose access rights.
These users have specific access rights pre-set (such as, record rules and restricted menus), and
@@ -278,7 +278,7 @@ company.
users/language
users/2fa
users/access_rights
users/portal
users/user_portals
users/facebook
users/google
users/azure

View File

@@ -1,160 +0,0 @@
=============
Portal access
=============
.. _portal/main:
Portal access is given to users who need the ability to view certain documents or information within
an Odoo database.
Some common use cases for providing portal access include allowing customers to make partial payment
on an invoice, to add funds to their eWallet, and to read/view any or all of the following in Odoo:
- Following, viewing and paying orders
- Following, downloading or paying invoices
- Managing payment methods
- Managing subscriptions
- Adding, removing or modifying addresses
- Configuring connection parameters
.. note::
Portal users only have read/view access, and will **not** be able to edit any documents in the
database.
.. _portal/access:
Provide portal access to customers
==================================
From the main Odoo dashboard, select the :guilabel:`Contacts` application. If the contact is not yet
created in the database, click on the :guilabel:`Create` button, enter the details of the contact,
and then click :guilabel:`Save`. Otherwise, choose an existing contact, and then click on the
:guilabel:`Action` drop-down menu located at the top-center of the interface.
.. image:: portal/grant-portal-access.png
:alt: Use the Contacts application to give portal access to users.
Then select :guilabel:`Grant portal access`. A pop-up window appears, listing three fields:
- :guilabel:`Contact`: the recorded name of the contact in the Odoo database
- :guilabel:`Email`: the contact's email address used to log into the portal
- :guilabel:`Latest Authentication`: the last time the user accessed the portal
To grant portal access, first enter the contact's :guilabel:`Email` used to log into the portal if
it has not been automatically entered by the system. Then click :guilabel:`Grant Access` to finish.
To grant portal access to multiple users for a company at once, navigate to the company contact,
then click :menuselection:`Action --> Grant portal access` to view a list of the company's related
contacts. Click :guilabel:`Grant Access` for each contact to grant portal access to.
An email is sent to the specified email address, indicating that the contact is now a portal user
for that Odoo database.
Revoking portal access
======================
At any time, portal access can be revoked by navigating to a contact, clicking
:menuselection:`Action --> Grant portal access`, and then clicking :guilabel:`Revoke Access`.
.. _portal/login:
Change portal username
======================
There may be times when a portal user wants to change their user login. This can be done by any user
in the database with administrator access rights. The following process outlines the necessary steps
to change the portal user login.
.. seealso::
:doc:`Access rights </applications/general/users/access_rights>`.
First, navigate to :menuselection:`Settings app --> Users`. Then, under :guilabel:`Filters`, select
:guilabel:`Portal Users`, or select :guilabel:`Add Custom Filter` and set the following
configuration :guilabel:`Groups` > :guilabel:`contains` > `portal`. After making this selection,
search for (and open) the portal user that needs to be edited.
Next, click :guilabel:`Edit` (if necessary), click into the :guilabel:`Email Address` field, and
proceed to make any necessary changes to this field. The :guilabel:`Email Address` field is used to
log into the Odoo portal.
.. note::
Changing the :guilabel:`Email Address` (or login) only changes the *username* on the customer's
portal login.
In order to change the contact email, this change needs to take place on the contact template in
the *Contacts* app. Alternatively, the customer can change their email directly from the portal,
but the login **cannot** be changed. :ref:`See change customer info <portal/custinfo>`.
Customer portal changes
=======================
There may be times when the customer would like to make changes to their contact, security, or
payment information attached to the portal account. This can be performed by the customer from their
portal. The following process is how a customer can change their contact information.
.. _portal/custinfo:
Change customer info
--------------------
First enter the username and password (login) into the database login page to access the portal user
account. A portal dashboard will appear upon successfully logging in. Portal documents from the
various installed Odoo applications will appear with the number count of each.
.. seealso::
:ref:`Portal access documentation <portal/main>`.
Next, navigate to the upper-right corner of the portal, and click the :guilabel:`Edit` button, next
to the :guilabel:`Details` section. Then, change the pertinent information, and click
:guilabel:`Confirm`.
Change password
---------------
First enter the username and password (login) into the database login page to access the portal user
account. A portal dashboard will appear upon successfully logging in.
If the customer would like to change their password for portal access, click on the :guilabel:`Edit
Security Settings` link, below the :guilabel:`Account Security` section. Then, make the necessary
changes, by typing in the current :guilabel:`Password`, :guilabel:`New Password`, and verify the new
password. Lastly, click on :guilabel:`Change Password` to complete the password change.
.. note::
If a customer would like to change the login, as documented above, contact the Odoo database
point-of-contact. :ref:`See above documentation on changing the portal username <portal/login>`.
.. note::
Passwords for portal users and Odoo.com users remain separate, even if the same email address is
used.
Add two-factor authentication
-----------------------------
First enter the username and password (login) into the database login page to access the portal user
account. A portal dashboard will appear upon successfully logging in.
If the customer would like to turn on two-factor authentication (2FA) for portal access, click on
the :guilabel:`Edit Security Settings` link, below the :guilabel:`Account Security` section.
Click on :guilabel:`Enable two-factor authentication` to turn on :abbr:`2FA (two-factor
authentication)`. Confirm the current portal password in the :guilabel:`Password` field. Then, click
on :guilabel:`Confirm Password`. Next, activate :abbr:`2FA (two-factor authentication)` in a
:abbr:`2FA (two-factor authentication)` app (Google Authenticator, Authy, etc.), by scanning the
:guilabel:`QR code` or entering a :guilabel:`Verification Code`.
Finally, click :guilabel:`Enable two-factor authentication` to complete the setup.
.. _users-portal-payment-methods:
Change payment info
-------------------
If the customer needs to manage payment options, they click the :guilabel:`Payment methods` button.
* To add a new payment option, choose from the available payment methods, enter the new payment
information, and click :guilabel:`Save` to save the details.
* To erase a payment option, click the :icon:`fa-trash` :guilabel:`(Trash)` icon, then click the
:guilabel:`Confirm Deletion` button.
Payment details **cannot** be edited. Customers must delete and re-enter information to update their
details.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -0,0 +1,29 @@
:show-content:
============
User portals
============
.. _user_portals/main:
The user portal is a module available by default in Odoo. Users, both customers and vendors, can be
granted :doc:`access to the portal </applications/general/users/access_rights>` by businesses in
order to view certain documents or information within an Odoo database. For example, some common use
cases for providing portal access include allowing customers and vendors to:
- Follow, view, and pay orders
- Follow, download, or pay invoices, including partial payments and down payments
- Manage payment methods
- Manage subscriptions
- Add, remove, or modify their addresses
- Configure connection parameters between Odoo and 3rd-party services
.. note::
Portal users only have read/view access, and will **not** be able to edit any documents in the
database.
.. toctree::
:titlesonly:
user_portals/portal_access
user_portals/updating_portal_info

View File

@@ -0,0 +1,58 @@
======================
Granting portal access
======================
For the customers and vendors of a business to begin using a user portal, they must first be granted
access by the business. The process to do this begins in the **Contacts** application.
Adding portal access to a contact
=================================
From the main Odoo dashboard, open the :guilabel:`Contacts` application. If the contact to be
granted access is not yet in the database, create an entry for them by clicking the :guilabel:`New`
button and entering their details. Otherwise, choose an existing contact, then click on the
:icon:`fa-gear` :guilabel:`(Actions)` drop-down menu and select :guilabel:`Grant portal access`.
.. image:: portal_access/grant-portal-access.png
:alt: Use the Contacts application to give portal access to users.
This brings up the :guilabel:`Portal Access Management` window, which has three fields:
- :guilabel:`Contact`: This field is automatically populated with the name on the contact.
- :guilabel:`Email`: This field shows the contact's email address used to log into the portal.
- :guilabel:`Latest Authentication`: The last time the user accessed the portal appears on this
line. If the user has never accessed the portal, it is blank.
To grant portal access, first enter the email address the contact will use to log into the portal.
This may have been automatically entered by the system if an existing contact is being granted
access. Then click the :guilabel:`Grant Access` button to finish.
.. image:: portal_access/portal-access-management.png
:alt: Grant access in the Portal Access Management window.
.. note::
When portal access is granted to a Company, all contacts affiliated with that company will be
granted portal access. Indiviual contacts can be removed as needed.
Granting accesss to multiple users at once
------------------------------------------
To grant portal access to multiple users from a single company at once, navigate to the contact
listing for that company, then click :menuselection:`Action --> Grant portal access` to view a list
of the company's related contacts. Click :guilabel:`Grant Access` for each contact that needs portal
access. An email is sent to the specified email address, indicating that the contact is now a portal
user for that Odoo database.
.. image:: portal_access/multiple-user-access.png
:alt: Grant access to multiple users at once.
Revoking portal access
----------------------
Some situations may require revoking an individual's portal access, such as when they retire or
leave a company. Portal access can be revoked from a contact at any time by navigating to a contact,
clicking :menuselection:`Action --> Grant portal access`, and then clicking :guilabel:`Revoke
Access`.
.. image:: portal_access/revoke-user-access.png
:alt: Revoke access from a user.

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,154 @@
====================
Updating portal info
====================
There may be times when a user would like to make changes to their contact, security, or payment
information connected to their portal account. Portal users can update most information by logging
into their account and making the changes themselves, but some updates may require a user with
administrator access rights.
Updating user information begins with logging into the user portal. Once a user has logged in and is
on the portal dashboard, they can begin making changes to their information.
.. note::
Passwords for portal users and Odoo.com users remain separate, even if the same email address is
used.
User-driven updates
===================
Update contact info
-------------------
From the portal dashboard, click the :icon:`fa-pencil` :guilabel:`Edit information` button under the
user contact information. This brings up a new page where contact information can be updated.
On this screen, users can update their:
- :guilabel:`Your name`
- :guilabel:`Email`
- :guilabel:`Phone`
- Company name
- Mailing address
- Invoice delivery preference
Additonal fields and descriptions may appear depending on the user's location and the location of
the company that created the portal.
Once users have updated their information, they can click :guilabel:`Save Address` to save any
changes they've made or :guilabel:`Discard` to return to the portal dashboard. By default, the only
fields that need to be filled out to save users' information are their names, emails, phone numbers,
and addresses.
.. important::
Once the system has generated any documents for a user's account, their country **cannot** be
updated. If users need to update their country at that point, they must reach out to a user with
administrator access rights.
.. _users-portal-payment-methods:
Update payment info
-------------------
From the portal dashboard, click the :guilabel:`Payment methods` button. This brings up a new page
that shows any saved payment methods.
To add a new payment option, choose from the available payment methods, enter the new payment
information, and click :guilabel:`Save` to save the details. To remove a payment option, click the
:icon:`fa-trash` :guilabel:`(Delete payment method)` icon, then click the :guilabel:`Confirm
Deletion` button.
.. important::
Users that need to update payment information **must** delete any existing information and enter
their new or updated info. Payment information **cannot** be edited and must be re-entered.
Update passwords and manage security
------------------------------------
From the portal dashboard, click the :guilabel:`Connection & Security` button. This brings up a new
page with five sections. The following sections can each be edited and updated.
Change Password
~~~~~~~~~~~~~~~
Here the user can enter their current password and a new password they wish to change to. The new
password can be saved by clicking :guilabel:`Change Password`.
Two-factor authentication
~~~~~~~~~~~~~~~~~~~~~~~~~
The user's currrent 2FA status is shownn as an alert. If 2FA is not enabled, an :guilabel:`Enable
two-factor authentication` link appears. If it is enabled, a link reading :guilabel:`Disable
two-factor authentication` appears instead.
.. tip::
Clicking the :icon:`fa-info-circle` :guilabel:`(Documentation)` icon opens a page that explains
how two-factor authentication (2FA) works.
Passkeys
~~~~~~~~
Click :guilabel:`Add Passkey` to create a passkey that simplifies the login process. Any previously
created passkeys are shown here, alongside information on when they were created and when they were
last used. When creating a passkey, Odoo asks for a password to confirm account ownership before
allowing a passkey to be set. Once account ownership has been confirmed, the passkey must be named
to differentiate it from other passkeys. Clicking :guilabel:`Create` brings up a browser prompt to
create the passkey. Complete the passkey creation process in the browser. They can be renamed by
clicking the :icon:`fa-pencil` :guilabel:`(pencil)` button or deleted by clicking their
:icon:`fa-trash` :guilabel:`(trash can)` button.
Revoke All Sessions
~~~~~~~~~~~~~~~~~~~
Clicking the :guilabel:`Log out from all devices` button brings up a pop-up prompting the user to
enter their password. Once they do so and click :guilabel:`Confirm Password`, the system logs them
out of all sessions except for the current one.
Delete Account
~~~~~~~~~~~~~~
Clicking the :guilabel:`Delete Account` button brings up a pop-up to completely and irrevocably
delete the user's account. Users must enter their password and their login name to complete the
process. They can also choose to have their email address and phone number added to an internal
block list to prevent any future communication.
Administrator-driven updates
============================
Accessing user information as an administrator
----------------------------------------------
First, navigate to :menuselection:`Settings app --> Users` and click :icon:`oi-arrow-right`
:guilabel:`Manage Users` Then, click the :icon:`fa-times` :guilabel:`(Remove)` icon to clear the
:guilabel:`Internal Users` search filter and use the :icon:`fa-sort-desc` :guilabel:`(Toggle Search
Panel)` button to add :guilabel:`Portal Users` as a filter. After making this selection, search for
and open the portal user that needs to be edited.
Update email address
~~~~~~~~~~~~~~~~~~~~
The :icon:`fa-envelope` :guilabel:`(Email)` field shows the email address the user uses to log into
the Odoo database. A user with administrator access rights can make any necessary changes by
clicking into the field and updating the user's email address.
.. note::
Users **cannot** change their own login usernames. Changing the :icon:`fa-key`
:guilabel:`(Login)` only changes the *username* on the user's portal login. Users' email
addresses can be changed in the :guilabel:`Manage Users` module, the **Contacts** app, or by the
users themselves in the portal.
Update passwords
~~~~~~~~~~~~~~~~
Users' security settings can be adjusted under the :guilabel:`Security` tab on their Contact form.
Under the :guilabel:`Security` tab, there are options to:
- :guilabel:`Change password` Click the :guilabel:`Change password` button to bring up a form that
shows what logins the user has access to and enter a new password. Click :guilabel:`Change
Password` to save the password or click :guilabel:`Cancel` to return to the previous screen.
- :guilabel:`Invite to use 2FA`. Click the :guilabel:`Invite to use 2FA` button to bring up a pop-up
notification that an invitation to use two-factor authentication was sent.
.. seealso::
- :doc:`Access rights </applications/general/users/access_rights>`
- :doc:`Portal access documentation <portal_access>`

View File

@@ -257,7 +257,7 @@ Tracking and cancellation
Shipments registered with Envia can be tracked using the :guilabel:`Tracking` smart button from the
delivery order or using the tracking link from the :doc:`customer portal
<../../../../general/users/portal>`.
<../../../../general/users/user_portals>`.
.. image:: envia_shipping/envia-customer-portal-tracking.png
:alt: Customer portal tracking.

View File

@@ -42,7 +42,7 @@ include:
#. (required) :ref:`installing <general/install>` the **Purchase** app
#. (optional) adding vendors (the sellers in this workflow) as :doc:`portal users
<../../../general/users/portal>`.
<../../../general/users/user_portals>`.
Seller database
---------------

View File

@@ -408,9 +408,9 @@ to apply the changes, then :guilabel:`Copy Links` to copy the sharing link to th
- Each folder and file URL includes the access rights assigned to it. When you share a link to a
folder, recipients are directed to a dedicated portal where they can view the files in that
folder, excluding any with restricted access.
- :doc:`Portal users </applications/general/users/portal>` can access folders and files they have
permission to view or edit through the customer portal by clicking the :guilabel:`Documents`
card.
- :doc:`Portal users </applications/general/users/user_portals>` can access folders and files
they have permission to view or edit through the customer portal by clicking the
:guilabel:`Documents` card.
Managing files across apps
==========================

View File

@@ -77,8 +77,9 @@ quotations and sales orders can update these quantities. Once a quantity is set
product is added to the quote total.
Once an optional product section has been created in a quotation, users who have been :doc:`granted
portal access <../../../general/users/portal>` can interact with the quotation there. They can view
the quotation and decide whether or not to add the optional products to their final sales order.
portal access <../../../general/users/user_portals/portal_access>` can interact with the quotation
there. They can view the quotation and decide whether or not to add the optional products to their
final sales order.
.. image:: optional_products/optional-products-section.png
:alt: An optional products section with the quanitty and corresponding amount set to 0.

View File

@@ -37,8 +37,8 @@ How customers can set up automatic payments
Once these steps are complete, payment providers will be able to create tokens with customers' saved
payment details during the checkout process. Saved payment details can then be used for future
online or recurring subscription charges. Customers will also be able to log into their
:doc:`customer portal <../../general/users/portal>` and enter their payment information there.
online or recurring subscription charges. Customers can also log into their :doc:`customer portal
<../../general/users/user_portals>` and enter their payment information there.
Some payment providers will automatically save customers' payment information as part of the
checkout process. Others will give them the option to save their information for future payments. If
@@ -87,4 +87,4 @@ ignored by Odoo until the sales order is closed.
.. seealso::
- :doc:`../../finance/payment_providers`
- :doc:`../../general/users/portal`
- :doc:`../../general/users/user_portals`

View File

@@ -238,8 +238,8 @@ Create field service task from a ticket
=======================================
On-site interventions can be planned from a ticket and managed through the **Field Service**
application. Customers with :doc:`portal access <../../../general/users/portal>` are able to track
the progress of a **Field Service** task the same as they would a **Helpdesk** ticket.
application. Customers with :doc:`portal access <../../../general/users/user_portals>` are able
to track the progress of a **Field Service** task the same as they would a **Helpdesk** ticket.
.. tip::
To change the default **Field Service** project for the team, go to :menuselection:`Helpdesk app

View File

@@ -106,5 +106,5 @@ customers when they view their ticket through the customer portal.
is added to the first stage of a team by default. This link does not require a customer to have
access to the portal to view or respond to their ticket.
Customers with access to the :doc:`portal <../../../general/users/portal>` are able to view their
tickets under :menuselection:`My Account --> Tickets`.
Customers with access to the :doc:`portal <../../../general/users/user_portals>` are able to
view their tickets under :menuselection:`My Account --> Tickets`.

View File

@@ -76,7 +76,7 @@ option:
- :guilabel:`All internal users`: All internal users can access the project and all of its tasks.
- :guilabel:`Invited portal users and all internal users (public)`: All internal users can access
the project and all of its tasks. When following a project, :doc:`portal users
</applications/general/users/portal>` only have access to the specific tasks they are following.
</applications/general/users/user_portals>` only have access to the specific tasks they are following.
This option is selected by default.
Inviting external users

View File

@@ -5,13 +5,14 @@ Customer accounts
Using customer accounts for an e-commerce enables you to :ref:`manage customers
<ecommerce/customer_accounts/account-creation>`, control access to the :ref:`shop
<ecommerce/customer_accounts/shop-access>`, the :ref:`checkout
<ecommerce/customer_accounts/checkout-access>`, or the :ref:`customer portal <portal/access>`,
and support both :doc:`B2B and B2C operations <b2b_b2c>`.
<ecommerce/customer_accounts/checkout-access>`, or the :doc:`customer portal
<../../general/users/user_portals/portal_access>`, and support both :doc:`B2B and B2C operations
<b2b_b2c>`.
After logging in, customers can access their :doc:`customer portal <../../general/users/portal>`
by clicking their username in the top-right corner of the screen and selecting :guilabel:`My
Account`. From there, they can view all their documents in one place, such as quotations, orders,
invoices, and more.
After logging in, customers can access their :doc:`customer portal
<../../general/users/user_portals>` by clicking their username in the top-right corner of the
screen and selecting :guilabel:`My Account`. From there, they can view all their documents in one
place, such as quotations, orders, invoices, and more.
.. image:: customer_accounts/account-log.png
:alt: Customer account access
@@ -33,7 +34,7 @@ of the following options:
- :guilabel:`On invitation`: Customers can only create an account if the website owner sends them
an invitation.
- :guilabel:`Free sign up`: Every website visitor can create an account and sign in. They will
get access to the :doc:`portal <../../general/users/portal>` by default.
get access to the :doc:`portal <../../general/users/user_portals>` by default.
.. _ecommerce/customer_accounts/grant-access:
@@ -73,7 +74,7 @@ Access restriction
Once a customer account is created, it is still possible to adjust the access rights
either globally or for individual users:
- :ref:`Revoke access or re-invite a customer <portal/access>`
- :doc:`Revoke access or re-invite a user <../../general/users/user_portals/portal_access>`
using the related buttons in the :guilabel:`Portal Access Management` pop-up.
- Restrict :ref:`access to the shop <ecommerce/customer_accounts/shop-access>`;
- Decide whether customers need to create an account to :ref:`complete the checkout

View File

@@ -328,7 +328,7 @@ pricelist is assigned to the correct website and is listed first among the websi
- To hide prices from public visitors while keeping them visible to logged-in customers, create a
zero-priced pricelist to be used for non-logged-in customers and :ref:`assign
<sales/products/customer-pricelist-application>` a regular pricelist (with actual prices) to
customers with :ref:`portal access <portal/access>`.
customers with :doc:`portal access <../../../general/users/user_portals/portal_access>`.
.. seealso::
:doc:`../customer_accounts`

View File

@@ -18,7 +18,11 @@ applications/finance/payment_providers/sdd.rst applications/finance/payment_prov
applications/hr/payroll/batches.rst applications/hr/payroll/pay_runs.rst
#applications/general
applications/general/iot/iot_advanced/https_certificate_iot.rst applications/general/iot/iot_advanced/troubleshooting.rst
# applications/general/users
applications/general/users/portal.rst applications/general/users/user_portals.rst