Example #1
0
  def check_provider(self):
    # Load provider
    provider = get_provider(self.kwargs['provider'], self.request.user)
    if not provider:
      raise PermissionDenied

    # Load query string
    args = parse_qs(self.request.META['QUERY_STRING'], strict_parsing=True)
    if not 'code' in args:
      raise PermissionDenied

    # Check state
    if 'state' in args and len(args['state']) == 1:
      state = args['state'][0].replace(' ', '+') # removed by parse_qs :(
      seed, _ = state.split('.')
      state_check = provider.build_user_state(int(seed))
      if state != state_check:
        raise PermissionDenied

    # Get access token
    error = None
    response = None
    try:
      response = provider.get_token(args['code'][0])
    except Exception, e:
      error = e
Example #2
0
class Command(BaseCommand):
    option_list = BaseCommand.option_list + (
        make_option(
            '--username',
            action='store',
            dest='username',
            type='string',
            default=False,
            help='Ran the import on the specified user.',
        ),
        make_option(
            '--provider',
            action='store',
            dest='provider',
            type='string',
            default=False,
            help='Ran the import with this provider.',
        ),
        make_option(
            '--full',
            action='store_true',
            dest='full',
            default=False,
            help='Run a full import on user, don\'t skip any track.',
        ),
    )
    user = None
    provider = None

    def handle(self, *args, **options):
        # Check input
        if not options['username']:
            raise CommandError("Missing username")
        if not options['provider']:
            raise CommandError("Missing provider")

        # Load user
        try:
            self.user = Athlete.objects.get(username=options['username'])
            print 'User #%d %s %s' % (self.user.id, self.user.first_name,
                                      self.user.last_name)
        except Exception, e:
            raise CommandError("Invalid user %s : %s" %
                               (options['username'], str(e)))

        # Load provider
        self.provider = get_provider(options['provider'], self.user)
        if not self.provider:
            raise CommandError("Invalid provider %s" % options['provider'])

        # Check connectivity
        if not self.provider.is_connected():
            raise CommandError("Provider %s is not connected for user %s" %
                               (self.provider.NAME, self.provider.user))

        # Run the import
        self.provider.import_user(options['full'])
Example #3
0
    def get_provider(self):
        self.provider = get_provider(self.kwargs['name'], self.request.user)
        if not self.provider.is_connected():
            raise Http404('Not connected')

        return self.provider
Example #4
0
  def get_provider(self):
    self.provider = get_provider(self.kwargs['name'], self.request.user)
    if not self.provider.is_connected():
      raise Http404('Not connected')

    return self.provider