Skip to content

Instantly share code, notes, and snippets.

@scdekov
Created November 21, 2017 13:12
Show Gist options
  • Save scdekov/ec387cc73f13a61051915dff99ebd347 to your computer and use it in GitHub Desktop.
Save scdekov/ec387cc73f13a61051915dff99ebd347 to your computer and use it in GitHub Desktop.
def get_preferred_or_current_user(self, user, request_user, session_data={}):
client_system = getattr(request_user, 'client_system', None)
if not client_system:
return user
disabled_uids = self._get_disabled_uids(client_system, user)
preferred_user = self._get_preferred_from_session(client_system, session_data, user, disabled_uids)
if preferred_user:
return self._proccess_preferred_user(preferred_user)
active_registrations = self._get_active_registrations(client_system, user, disabled_uids)
if not active_registrations and str(user.uid) in disabled_uids:
return
preferred_user = self._get_preferred(active_registrations)
if preferred_user:
return self._proccess_preferred_user(preferred_user)
elif str(user.uid) in disabled_uids and len(active_registrations) == 1:
return self._proccess_preferred_user(active_registrations[0].user)
return user
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment