def authenticate_v2(self, request, key): try: token = TokenV2.objects.get(key=key) except TokenV2.DoesNotExist: try: token = WipedDevice.objects.get(key=key) except WipedDevice.DoesNotExist: pass else: raise DeviceRemoteWipedException('Device set to be remote wiped') # Continue authentication in token v1 return None try: user = User.objects.get(email=token.user) except User.DoesNotExist: raise AuthenticationFailed('User inactive or deleted') if MULTI_TENANCY: orgs = seaserv.get_orgs_by_user(token.user) if orgs: user.org = orgs[0] self._populate_user_permissions(user) if user.is_active: need_save = False # We update the device's last_login_ip, client_version, platform_version if changed ip = get_client_ip(request) if ip and ip != token.last_login_ip: token.last_login_ip = ip need_save = True client_version = request.META.get(HEADER_CLIENT_VERSION, '') if client_version and client_version != token.client_version: token.client_version = client_version need_save = True platform_version = request.META.get(HEADER_PLATFORM_VERSION, '') if platform_version and platform_version != token.platform_version: token.platform_version = platform_version need_save = True if not within_time_range(token.last_accessed, datetime.datetime.now(), 10 * 60): # We only need 10min precision for the last_accessed field need_save = True if need_save: try: token.save() except: logger.exception('error when save token v2:') return (user, token)
def authenticate_v2(self, request, key): try: token = TokenV2.objects.get(key=key) except TokenV2.DoesNotExist: # Continue authentication in token v1 return None if token.wiped_at: raise DeviceRemoteWipedException('Device set to be remote wiped') try: user = User.objects.get(email=token.user) except User.DoesNotExist: raise AuthenticationFailed('User inactive or deleted') if MULTI_TENANCY: orgs = seaserv.get_orgs_by_user(token.user) if orgs: user.org = orgs[0] populate_user_permissions(user) if user.is_active: need_save = False # We update the device's last_login_ip, client_version, platform_version if changed ip = get_client_ip(request) if ip and ip != token.last_login_ip: token.last_login_ip = ip need_save = True client_version = request.META.get(HEADER_CLIENT_VERSION, '') if client_version and client_version != token.client_version: token.client_version = client_version need_save = True platform_version = request.META.get(HEADER_PLATFORM_VERSION, '') if platform_version and platform_version != token.platform_version: token.platform_version = platform_version need_save = True if not within_time_range(token.last_accessed, datetime.datetime.now(), 10 * 60): # We only need 10min precision for the last_accessed field need_save = True if need_save: try: token.save() except: logger.exception('error when save token v2:') return (user, token)
def process_request(self, request): if CLOUD_MODE: request.cloud_mode = True # Get all orgs user created. orgs = get_orgs_by_user(request.user.username) request.user.orgs = orgs else: request.cloud_mode = False request.user.org = None request.user.orgs = None return None
def process_request(self, request): username = request.user.username request.user.org = None if CLOUD_MODE: request.cloud_mode = True if MULTI_TENANCY: orgs = seaserv.get_orgs_by_user(username) if orgs: request.user.org = orgs[0] else: request.cloud_mode = False return None
def authenticate_v2(self, request, key): try: token = TokenV2.objects.get(key=key) except TokenV2.DoesNotExist: return None try: user = User.objects.get(email=token.user) except User.DoesNotExist: return None if MULTI_TENANCY: orgs = seaserv.get_orgs_by_user(token.user) if orgs: user.org = orgs[0] if user.is_active: need_save = False # We update the device's last_login_ip, client_version, platform_version if changed ip = get_client_ip(request) if ip and ip != token.last_login_ip: token.last_login_ip = ip need_save = True client_version = request.META.get(HEADER_CLIENT_VERSION, '') if client_version and client_version != token.client_version: token.client_version = client_version need_save = True platform_version = request.META.get(HEADER_PLATFORM_VERSION, '') if platform_version and platform_version != token.platform_version: token.platform_version = platform_version need_save = True if not within_ten_min(token.last_accessed, datetime.datetime.now()): # We only need 10min precision for the last_accessed field need_save = True if need_save: try: token.save() except: logger.exception('error when save token v2:') return (user, token)
def authenticate_v1(self, request, key): try: token = Token.objects.get(key=key) except Token.DoesNotExist: return None try: user = User.objects.get(email=token.user) except User.DoesNotExist: return None if MULTI_TENANCY: orgs = seaserv.get_orgs_by_user(token.user) if orgs: user.org = orgs[0] if user.is_active: return (user, token)
def authenticate_v1(self, request, key): try: token = Token.objects.get(key=key) except Token.DoesNotExist: raise AuthenticationFailed('Invalid token') try: user = User.objects.get(email=token.user) except User.DoesNotExist: raise AuthenticationFailed('User inactive or deleted') if MULTI_TENANCY: orgs = seaserv.get_orgs_by_user(token.user) if orgs: user.org = orgs[0] self._populate_user_permissions(user) if user.is_active: return (user, token)
def authenticate_v1(self, request, key): try: token = Token.objects.get(key=key) except Token.DoesNotExist: return None try: user = User.objects.get(email=token.user) except User.DoesNotExist: return None if MULTI_TENANCY: orgs = seaserv.get_orgs_by_user(token.user) if orgs: user.org = orgs[0] self._populate_user_permissions(user) if user.is_active: return (user, token)
def process_request(self, request): username = request.user.username request.user.org = None if CLOUD_MODE: request.cloud_mode = True if MULTI_TENANCY: orgs = seaserv.get_orgs_by_user(username) if orgs: request.user.org = orgs[0] else: request.cloud_mode = False if CLOUD_MODE and request.user.org is not None: org_id = request.user.org.org_id request.user.joined_groups = seaserv.get_org_groups_by_user(org_id, username) else: request.user.joined_groups = seaserv.get_personal_groups_by_user(username) return None
def process_request(self, request): username = request.user.username request.user.org = None if CLOUD_MODE: request.cloud_mode = True if MULTI_TENANCY: orgs = seaserv.get_orgs_by_user(username) if orgs: request.user.org = orgs[0] else: request.cloud_mode = False if CLOUD_MODE and request.user.org is not None: org_id = request.user.org.org_id request.user.joined_groups = seaserv.get_org_groups_by_user( org_id, username) else: request.user.joined_groups = seaserv.get_personal_groups_by_user( username) return None