Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
 def get_user(self, user_id):
     model = get_user_model()
     try:
         return model.objects.get(pk=user_id)
     except model.DoesNotExist:
         return None