예제 #1
0
def profile(request):
    # Delete our expired keys
    ApiKey.delete_expired(user=request.user)

    # Get a list of the users API Keys
    keys = ApiKey.objects.filter(user=request.user)
    try:
        backup_tokens = request.user.staticdevice_set.all()[0].token_set.count()
    except IndexError:
        backup_tokens = 0

    # Get a list of the users current sessions
    sessions = request.user.session_set.filter(expire_date__gt=now())

    # Get the current session key
    session_key = request.session.session_key

    # Process the form if we have data coming in
    if request.method == 'POST':
        form = UserProfileForm(request.POST, instance=request.user.profile)
        if form.is_valid():
            form.save()
    else:
        form = UserProfileForm(instance=request.user.profile)

    # Show the template
    return render(request, 'account_profile.html', {
        'keys': keys,
        'sessions': sessions,
        'session_key': session_key,
        'form': form,
        'user': request.user,
        'default_device': default_device(request.user),
        'backup_tokens': backup_tokens,
    })
예제 #2
0
    def get_key(self, user, api_key):
        try:
            ApiKey.delete_expired(user=user)
            ApiKey.objects.get(user=user, key=api_key)
        except ApiKey.DoesNotExist:
            return self._unauthorized()

        return True
예제 #3
0
    def done(self, form_list, **kwargs):
        login(self.request, self.get_user())
        ApiKey.delete_expired(user=self.request.user)

        newkey = ApiKey(user=self.request.user, active=True, expires=timezone.now() + timedelta(minutes=5))
        form = ApiKeyForm({"name": uuid.uuid1()}, instance=newkey)
        if form.is_valid():
            form.save()

        res = HttpResponse(newkey.key)
        res.status_code = 200
        return res
예제 #4
0
def newapikey(request):
    if request.method == 'POST':
        newkey = ApiKey(user=request.user, active=True)
        form = ApiKeyForm(request.POST, instance=newkey)
        if form.is_valid():
            form.save()
        return render(request, 'account_viewapikey.html', {'key': newkey})
    else:
        form = ApiKeyForm()

    return render(request, 'account_newapikey.html', {'form': form})