from django.contrib.auth.models import User
from django.shortcuts import render_to_response, get_object_or_404
from django.views.generic.detail import DetailView

from coin.vpn.models import VPNConfiguration


class VPNView(DetailView):
    def get_object(self):
        return get_object_or_404(VPNConfiguration, pk=self.kwargs.get("id"),
                                 offersubscription__member__user=self.request.user)

def generate_password(request, id):
    """This generates a random password, saves it in hashed form, and returns
    it to the user in cleartext.
    """
    vpn = get_object_or_404(VPNConfiguration, pk=id,
                            offersubscription__member__user=request.user)
    # This function has nothing to here, but it's convenient.
    password = User.objects.make_random_password()
    vpn.password = password
    # This will hash the password automatically
    vpn.full_clean()
    vpn.save()
    return render_to_response('vpn/password.html', {"vpn": vpn,
                                                    "password": password})
