diff options
author | Ask Solem <askh@opera.com> | 2009-05-28 15:36:35 +0200 |
---|---|---|
committer | Ask Solem <askh@opera.com> | 2009-05-28 15:36:35 +0200 |
commit | 958dc16a2560af600d71a747e42450bfa2207ece (patch) | |
tree | 2b834a88fa69c3fc39d61f6fa9067c961e2238b4 | |
parent | 925aa2ef91f15511ce7a3c97564f106d57d13623 (diff) | |
download | chishop-958dc16a2560af600d71a747e42450bfa2207ece.tar.bz2 chishop-958dc16a2560af600d71a747e42450bfa2207ece.tar.xz chishop-958dc16a2560af600d71a747e42450bfa2207ece.zip |
Using "register" with distutils didn't work anymore. Fixed.
-rw-r--r-- | djangopypi/views.py | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/djangopypi/views.py b/djangopypi/views.py index 86fdd0d..8e7c37f 100644 --- a/djangopypi/views.py +++ b/djangopypi/views.py | |||
@@ -158,24 +158,35 @@ def submit_project_or_release(user, post_data, files): | |||
158 | return HttpResponse() | 158 | return HttpResponse() |
159 | 159 | ||
160 | 160 | ||
161 | def simple(request, template_name="djangopypi/simple.html"): | 161 | def register_or_upload(request, post_data, files): |
162 | if request.method == "POST": | 162 | user = login_basic_auth(request) |
163 | post_data, files = parse_weird_post_data(request.raw_post_data) | 163 | if not user: |
164 | action = post_data.get(":action") | 164 | return HttpResponseUnauthorized('PyPI') |
165 | if action == 'file_upload': | 165 | |
166 | user = login_basic_auth(request) | 166 | login(request, user) |
167 | if not user: | 167 | if not request.user.is_authenticated(): |
168 | return HttpResponseUnauthorized('PyPI') | 168 | return HttpResponseForbidden( |
169 | "Not logged in, or invalid username/password.") | ||
170 | |||
171 | return submit_project_or_release(user, post_data, files) | ||
169 | 172 | ||
170 | login(request, user) | 173 | ACTIONS = { |
171 | if not request.user.is_authenticated(): | 174 | # file_upload is the action used with distutils ``sdist`` command. |
172 | return HttpResponseForbidden( | 175 | "file_upload": register_or_upload, |
173 | "Not logged in, or invalid username/password.") | ||
174 | 176 | ||
175 | return submit_project_or_release(user, post_data, files) | 177 | # submit is the :action used with distutils ``register`` command. |
178 | "submit": register_or_upload, | ||
179 | } | ||
176 | 180 | ||
177 | return HttpResponseNotImplemented( | 181 | |
178 | "The :action %s is not implemented" % action) | 182 | def simple(request, template_name="djangopypi/simple.html"): |
183 | if request.method == "POST": | ||
184 | post_data, files = parse_weird_post_data(request.raw_post_data) | ||
185 | action_name = post_data.get(":action") | ||
186 | if action_name not in ACTIONS: | ||
187 | return HttpResponseNotImplemented( | ||
188 | "The action %s is not implemented" % action_name) | ||
189 | return ACTION[action](request, post_data, files) | ||
179 | 190 | ||
180 | dists = Project.objects.all().order_by("name") | 191 | dists = Project.objects.all().order_by("name") |
181 | context = RequestContext(request, { | 192 | context = RequestContext(request, { |