def _set_customer(self, request): if not request.person or should_force_person_contact(request.user): company = None else: company = get_company_contact(request.user) request.customer = (company or request.person) request.is_company_member = bool(company) request.customer_groups = (company or request.person).groups.all()
def get_company_contact(user): """ Get preferred CompanyContact of given user. If user has associated PersonContact which is member of CompanyContact, return CompanyContact. Otherwise, return None. :param user: User object (or None) to get contact for :type user: django.contrib.auth.models.User|None :return: CompanyContact (or none) of which user's PersonContact is a member :rtype: CompanyContact|None """ if should_force_person_contact(user): return None contact = get_person_contact(user) if not contact: return None return contact.company_memberships.filter(is_active=True).first()