feat(fusion_plating_portal): hide customer sidebar from internal staff + redirect them to the clock portal
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -194,6 +194,9 @@ class FpCustomerPortal(CustomerPortal):
|
||||
partner = request.env.user.partner_id
|
||||
commercial = partner.commercial_partner_id
|
||||
values['fp_partner_display_name'] = commercial.name or partner.name
|
||||
# Internal staff (share=False) get the clean employee experience — no
|
||||
# customer sidebar. Customers (share=True / portal users) keep it.
|
||||
values['fp_show_customer_sidebar'] = bool(request.env.user.share)
|
||||
return values
|
||||
|
||||
def _get_page_view_values(self, document, access_token, values, session_history, no_breadcrumbs, **kwargs):
|
||||
@@ -208,6 +211,7 @@ class FpCustomerPortal(CustomerPortal):
|
||||
layout = self._prepare_portal_layout_values()
|
||||
values.setdefault('fp_sidebar_items', layout.get('fp_sidebar_items'))
|
||||
values.setdefault('fp_partner_display_name', layout.get('fp_partner_display_name'))
|
||||
values.setdefault('fp_show_customer_sidebar', layout.get('fp_show_customer_sidebar'))
|
||||
return values
|
||||
|
||||
# ==========================================================================
|
||||
@@ -616,6 +620,16 @@ class FpCustomerPortal(CustomerPortal):
|
||||
website=True,
|
||||
)
|
||||
def home(self, **kw):
|
||||
# Internal staff don't belong on the customer dashboard. Send them to
|
||||
# the employee clock portal — but only when fusion_clock is installed
|
||||
# (x_fclk_enable_clock proves it) AND the user actually has an employee
|
||||
# record, otherwise /my/clock -> /my would bounce into a redirect loop.
|
||||
user = request.env.user
|
||||
if not user.share and 'hr.employee' in request.env:
|
||||
Employee = request.env['hr.employee'].sudo()
|
||||
if 'x_fclk_enable_clock' in Employee._fields and \
|
||||
Employee.search_count([('user_id', '=', user.id)]):
|
||||
return request.redirect('/my/clock')
|
||||
partner = request.env.user.partner_id
|
||||
commercial = partner.commercial_partner_id
|
||||
|
||||
|
||||
Reference in New Issue
Block a user