def authenticate(self, token=None): client = DefaultClient(token) self.client = client try: api_token, auth_user = client.auth.check_token() self.api_token, self.auth_user = api_token, auth_user except HTTPError: return None user = None username = self.clean_username(auth_user) model = get_user_model() if self.create_unknown_user: user, created = model.objects.get_or_create(username=username) if created: user = self.configure_user(user, auth_user, token) else: try: user = model.objects.get(username=username) except model.DoesNotExist: pass if self.sync_permissions_on_login: sync_odesk_permissions(user, token, self.create_unknown_group) return user
def authenticate(self, token=None): client = DefaultClient(token) self.client = client try: api_token, auth_user = client.auth.check_token() self.api_token, self.auth_user = api_token, auth_user except HTTPError: return None user = None username = self.clean_username(auth_user) model = get_user_model() userteams = set(team[u'id'] for team in client.hr.get_teams()) # TODO authorize subteams of parents in ODESK_AUTH_TEAMS auth_teams = userteams.intersection(set(settings.ODESK_AUTH_TEAMS)) if auth_teams or username in settings.ODESK_AUTH_USERS: if self.create_unknown_user: user, created = model.objects.get_or_create(username=username) user = self.set_user_info(user, auth_user) else: try: user = model.objects.get(username=username) except model.DoesNotExist: pass if user is not None: self.sync_django_groups(user, auth_teams) if userteams.intersection( set(settings.ODESK_AUTH_ADMIN_TEAMS) ) or username in settings.ODESK_ADMINS: user.is_staff = True else: user.is_staff = False if userteams.intersection( set(settings.ODESK_AUTH_SUPERUSER_TEAMS) ) or username in settings.ODESK_SUPERUSERS: user.is_superuser = True else: user.is_superuser = False # attach api_token to user instance, so it can be # passed to post_save signal handler user.odesk_api_token = api_token user.save() return user
def authenticate(self, token=None): client = DefaultClient(token) try: api_token, auth_user = client.auth.check_token() except HTTPError: return None user = None username = self.clean_username(auth_user) model = get_user_model() userteams = set(team[u'id'] for team in client.hr.get_teams()) # TODO authorize subteams of parents in ODESK_AUTH_TEAMS auth_teams = userteams.intersection(set(settings.ODESK_AUTH_TEAMS)) if auth_teams or username in settings.ODESK_AUTH_USERS: if self.create_unknown_user: user, created = model.objects.get_or_create(username=username) user = self.set_user_info(user, auth_user) else: try: user = model.objects.get(username=username) except model.DoesNotExist: pass if user is not None: self.sync_django_groups(user, auth_teams) if userteams.intersection(set(settings.ODESK_AUTH_ADMIN_TEAMS)) or \ username in settings.ODESK_ADMINS: user.is_staff=True else: user.is_staff=False if userteams.intersection(set(settings.ODESK_AUTH_SUPERUSER_TEAMS)) or \ username in settings.ODESK_SUPERUSERS: user.is_superuser=True else: user.is_superuser=False # attach api_token to user instance, so it can be passed to post_save signal handler user.odesk_api_token = api_token user.save() return user
def authenticate(self, token=None): client = DefaultClient(token) try: api_token, auth_user = client.auth.check_token() except HTTPError: return None user = None username = self.clean_username(auth_user) model = get_user_model() if self.create_unknown_user: user, created = model.objects.get_or_create(username=username) if created: user = self.configure_user(user, auth_user) else: try: user = model.objects.get(username=username) except model.DoesNotExist: pass return user
def authenticate(self, auth_user=None, auth_user_pk=None): self.auth_user = auth_user user = None model = get_user_model() if auth_user_pk: try: user = model.objects.get(pk=auth_user_pk) except model.DoesNotExist: pass elif self.create_unknown_user: username = self.clean_username(auth_user) user, created = model.objects.get_or_create(username=username) if created: user = self.configure_user(user, auth_user) else: try: username = self.clean_username(auth_user) user = model.objects.get(username=username) except model.DoesNotExist: pass return user
def get_user(self, user_id): model = get_user_model() try: return model.objects.get(pk=user_id) except model.DoesNotExist: return None