|
1 |
| -import sha |
2 |
| -import datetime |
3 |
| -from random import random |
4 |
| -import pytz |
5 |
| -from tastypie.resources import ModelResource, ALL, ALL_WITH_RELATIONS |
| 1 | +from tastypie.resources import ModelResource, ALL_WITH_RELATIONS |
6 | 2 | from tastypie import fields
|
7 | 3 | from handball.models import *
|
8 |
| -from handball.forms import SignUpForm |
9 | 4 | from django.contrib.auth.models import User
|
10 | 5 | from tastypie.authorization import DjangoAuthorization, Authorization
|
11 | 6 | from tastypie.authentication import Authentication, ApiKeyAuthentication
|
12 |
| -from django.contrib.auth import authenticate |
13 |
| -from django.core.mail import send_mail |
14 |
| -from django.http import HttpResponse, HttpResponseNotFound, HttpResponseBadRequest |
| 7 | +from django.http import HttpResponse, HttpResponseBadRequest |
15 | 8 | from tastypie.serializers import Serializer
|
16 | 9 | from tastypie.utils.mime import determine_format
|
17 |
| -from django.utils.translation import ugettext as _ |
| 10 | +from auth.api import UserResource |
18 | 11 |
|
19 | 12 |
|
20 | 13 | class UnionResource(ModelResource):
|
@@ -101,16 +94,8 @@ def dehydrate(self, bundle):
|
101 | 94 | return bundle
|
102 | 95 |
|
103 | 96 |
|
104 |
| -class UserResource(ModelResource): |
105 |
| - person = fields.OneToOneField('handball.api.PersonResource', 'person', full=True) |
106 |
| - |
107 |
| - class Meta: |
108 |
| - queryset = User.objects.all() |
109 |
| - excludes = ['email', 'password'] |
110 |
| - |
111 |
| - |
112 | 97 | class PersonResource(ModelResource):
|
113 |
| - user = fields.ForeignKey(UserResource, 'user', blank=True, null=True) |
| 98 | + user = fields.OneToOneField(UserResource, 'user', blank=True, null=True) |
114 | 99 | clubs = fields.ManyToManyField(ClubResource, 'clubs')
|
115 | 100 | # teams = fields.ManyToManyField(TeamResource, 'teams')
|
116 | 101 |
|
@@ -192,145 +177,9 @@ class Meta:
|
192 | 177 | """
|
193 | 178 |
|
194 | 179 |
|
195 |
| -def sign_up(request): |
196 |
| - form = SignUpForm(request.POST) |
197 |
| - serializer = Serializer() |
198 |
| - format = determine_format(request, serializer, default_format='application/json') |
199 |
| - |
200 |
| - if form.is_valid(): |
201 |
| - username = form.cleaned_data['username'] |
202 |
| - password = form.cleaned_data['password'] |
203 |
| - email = form.cleaned_data['email'] |
204 |
| - first_name = form.cleaned_data['first_name'] |
205 |
| - last_name = form.cleaned_data['last_name'] |
206 |
| - # gender = form.cleaned_data['gender'] |
207 |
| - # pass_number = form.cleaned_data['pass_number'] |
208 |
| - # address = form.cleaned_data['address'] |
209 |
| - # city = form.cleaned_data['city'] |
210 |
| - # zip_code = form.cleaned_data['zip_code'] |
211 |
| - # mobile_number = form.cleaned_data['mobile_number'] |
212 |
| - |
213 |
| - user = User.objects.create(username=username, password=password, first_name=first_name, last_name=last_name, email=email) |
214 |
| - |
215 |
| - profile = form.cleaned_data['profile'] or Person.objects.create() |
216 |
| - profile.first_name = first_name |
217 |
| - profile.last_name = last_name |
218 |
| - # profile.gender = gender |
219 |
| - # profile.pass_number = pass_number |
220 |
| - # profile.address = address |
221 |
| - # profile.city = city |
222 |
| - # profile.zip_code = zip_code |
223 |
| - # profile.mobile_number = mobile_number |
224 |
| - profile.user = user |
225 |
| - |
226 |
| - # Build the activation key |
227 |
| - salt = sha.new(str(random())).hexdigest()[:5] |
228 |
| - activation_key = sha.new(salt + user.username).hexdigest() |
229 |
| - key_expires = datetime.datetime.now(pytz.utc) + datetime.timedelta(2) |
230 |
| - |
231 |
| - # User is unactive until visiting activation link |
232 |
| - user.is_active = False |
233 |
| - profile.activation_key = activation_key |
234 |
| - profile.key_expires = key_expires |
235 |
| - activation_link = 'http://127.0.0.1:8000/auth/activate/' + activation_key |
236 |
| - |
237 |
| - user.save() |
238 |
| - profile.save() |
239 |
| - |
240 |
| - subject = _('Welcome to ScoreIt!') |
241 |
| - message = _('To activate, please click the following link:\n' + activation_link) |
242 |
| - sender = _('noreply@score-it.de') |
243 |
| - recipients = [email] |
244 |
| - send_mail(subject, message, sender, recipients) |
245 |
| - |
246 |
| - user_resource = UserResource() |
247 |
| - person_resource = PersonResource() |
248 |
| - |
249 |
| - data = { |
250 |
| - 'user': user_resource.get_resource_uri(user), |
251 |
| - 'profile': person_resource.get_resource_uri(profile), |
252 |
| - 'activation_key': activation_key |
253 |
| - } |
254 |
| - |
255 |
| - return HttpResponse(serializer.serialize(data, format, {})) |
256 |
| - |
257 |
| - else: |
258 |
| - return HttpResponseBadRequest(serializer.serialize(form.errors, format, {})) |
259 |
| - |
260 |
| - |
261 |
| -def validate_user(request): |
262 |
| - """ |
263 |
| - Checks a user's basic auth credentials and, if valid, returns the users data |
264 |
| - """ |
265 |
| - |
266 |
| - # if not request.META.get('HTTP_AUTHORIZATION'): |
267 |
| - # return HttpResponseBadRequest('No HTTP_AUTHORIZATION header found') |
268 |
| - |
269 |
| - # try: |
270 |
| - # (auth_type, data) = request.META['HTTP_AUTHORIZATION'].split() |
271 |
| - # if auth_type.lower() != 'basic': |
272 |
| - # return HttpResponseBadRequest('Wrong auth type. Use basic auth!') |
273 |
| - # user_pass = base64.b64decode(data) |
274 |
| - # except: |
275 |
| - # return HttpResponseBadRequest('Could not decode auth credentials.') |
276 |
| - |
277 |
| - # bits = user_pass.split(':', 1) |
278 |
| - |
279 |
| - # if len(bits) != 2: |
280 |
| - # return HttpResponseBadRequest('Could not decode auth credentials.') |
281 |
| - |
282 |
| - # user = authenticate(username=bits[0], password=bits[1]) |
283 |
| - |
284 |
| - username = request.POST['username'] |
285 |
| - password = request.POST['password'] |
286 |
| - |
287 |
| - if not username or not password: |
288 |
| - return HttpResponseBadRequest() |
289 |
| - |
290 |
| - user = authenticate(username=username, password=password) |
291 |
| - |
292 |
| - if user is None or not user.is_active: |
293 |
| - return HttpResponseNotFound('User does not exist or password incorrect.') |
294 |
| - |
295 |
| - person = user.get_profile() |
296 |
| - |
297 |
| - person_resource = PersonResource() |
298 |
| - bundle = person_resource.build_bundle(obj=person, request=request) |
299 |
| - person_resource.full_dehydrate(bundle) |
300 |
| - bundle.data['api_key'] = user.api_key.key |
301 |
| - |
302 |
| - return HttpResponse(person_resource.serialize(None, bundle, 'application/json')) |
303 |
| - |
304 |
| - |
305 | 180 | def is_unique(request):
|
306 | 181 | data = {}
|
307 | 182 |
|
308 |
| - if 'user_name' in request.GET: |
309 |
| - user_name = request.GET['user_name'] |
310 |
| - |
311 |
| - try: |
312 |
| - User.objects.get(username=user_name) |
313 |
| - unique = False |
314 |
| - except User.DoesNotExist: |
315 |
| - unique = True |
316 |
| - except User.MultipleObjectsReturned: |
317 |
| - unique = False |
318 |
| - |
319 |
| - data['user_name'] = unique |
320 |
| - |
321 |
| - if 'email' in request.GET: |
322 |
| - email = request.GET['email'] |
323 |
| - |
324 |
| - try: |
325 |
| - User.objects.get(email=email) |
326 |
| - unique = False |
327 |
| - except User.DoesNotExist: |
328 |
| - unique = True |
329 |
| - except User.MultipleObjectsReturned: |
330 |
| - unique = False |
331 |
| - |
332 |
| - data['email'] = unique |
333 |
| - |
334 | 183 | if 'pass_number' in request.GET:
|
335 | 184 | pass_number = request.GET['pass_number']
|
336 | 185 |
|
|
0 commit comments