From 80173599753b20097246db80e217e707e1d6a033 Mon Sep 17 00:00:00 2001 From: Ask Solem Date: Fri, 20 Mar 2009 12:36:52 +0100 Subject: Remove HTTP basic auth for now --- djangopypi/forms.py | 3 +-- djangopypi/models.py | 6 ++---- djangopypi/views.py | 30 ++++-------------------------- 3 files changed, 7 insertions(+), 32 deletions(-) diff --git a/djangopypi/forms.py b/djangopypi/forms.py index 7865723..1cf9a9d 100644 --- a/djangopypi/forms.py +++ b/djangopypi/forms.py @@ -47,12 +47,11 @@ class ProjectRegisterForm(forms.Form): version = forms.CharField() platform = forms.CharField(required=False) - def save(self, classifiers, user, file=None): + def save(self, classifiers, file=None): values = dict(self.cleaned_data) name = values.pop("name") version = values.pop("version") platform = values.pop("platform") - values["owner"] = user project, c = Project.objects.get_or_create(name=name, defaults=values) for classifier in classifiers: project.classifiers.add( diff --git a/djangopypi/models.py b/djangopypi/models.py index 9cc655c..d66f5c8 100644 --- a/djangopypi/models.py +++ b/djangopypi/models.py @@ -32,7 +32,6 @@ POSSIBILITY OF SUCH DAMAGE. import os from django.db import models -from django.contrib.auth.models import User from django.utils.translation import ugettext_lazy as _ OS_NAMES = ( @@ -86,7 +85,6 @@ class Project(models.Model): description = models.TextField(blank=True) author_email = models.CharField(max_length=255, blank=True) classifiers = models.ManyToManyField(Classifier) - owner = models.ForeignKey(User, related_name="projects") class Meta: verbose_name = _(u"project") @@ -105,12 +103,12 @@ class Release(models.Model): project = models.ForeignKey(Project, related_name="releases") class Meta: + unique_together = ('version', 'platform') verbose_name = _(u"release") verbose_name_plural = _(u"releases") def __unicode__(self): - return u"%s %s (%s)" % ( - self.project.name, self.version, self.distribution.name) + return self.version @property def filename(self): diff --git a/djangopypi/views.py b/djangopypi/views.py index bcba5ae..b1323fb 100644 --- a/djangopypi/views.py +++ b/djangopypi/views.py @@ -31,9 +31,8 @@ POSSIBILITY OF SUCH DAMAGE. """ from django.http import Http404, HttpResponse, HttpResponseBadRequest -from django.http import QueryDict, HttpResponseForbidden +from django.http import QueryDict from django.shortcuts import render_to_response -from django.contrib.auth import authenticate, login from djangopypi.models import Project from djangopypi.forms import ProjectRegisterForm from django.template import RequestContext @@ -72,37 +71,16 @@ def parse_weird_post_data(data): return MultiValueDict(post_data), files -def login_basic_auth(request): - authentication = request.META.get("HTTP_AUTHORIZATION") - if not authentication: - return - (authmeth, auth) = authentication.split(' ', 1) - if authmeth.lower() != "basic": - return - auth = auth.strip().decode("base64") - username, password = auth.split(":", 1) - return authenticate(username=username, password=password) - - def simple(request, template_name="djangopypi/simple.html"): if request.method == "POST": - user = login_basic_auth(request) - if not user: - return HttpResponseForbidden("Must give credentials.") - login(request, user) - if not request.user.is_authenticated(): - return HttpResponseForbidden( - "Not logged in, or invalid user/password") post_data, files = parse_weird_post_data(request.raw_post_data) action = post_data.get(":action") classifiers = post_data.getlist("classifiers") register_form = ProjectRegisterForm(post_data.copy()) if register_form.is_valid(): - registered = register_form.save(classifiers, request.user, - file=files.get("content")) - if registered: - return HttpResponse("Successfully registered.") - return HttpResponseForbidden("That's not your project!") + return HttpResponse(register_form.save(classifiers, + file=files.get("content"))) + return HttpResponse("Successfully registered.") return HttpResponse("ERRORS: %s" % register_form.errors) dists = Project.objects.all() -- cgit v1.2.3