def post(self, request): data = request.DATA try: username = data["username"] password = data["password"] except KeyError as e: return Response({"error": "Invalid object."}, status=status.HTTP_400_BAD_REQUEST, exception=True) #todo: validate username and password user = User.objects.create_user(username = username, password = password) new_user = AppUser(user = user, app = request.app) try: new_user.full_clean() except ValidationError as e: return Response(e.message_dict, status=status.HTTP_400_BAD_REQUEST) new_user.save() user = authenticate(username=username, password=password) login(request, user) request.session.save() return Response({settings.SESSION_COOKIE_NAME : request.session.session_key, "id" : user.id }, status=status.HTTP_201_CREATED)
def post(self, request): try: #todo: update first_name, last_name and other attributes stream = StringIO.StringIO(request.body) data = JSONParser().parse(stream) username = data["username"] password = data["password"] except Exception as e: self.logger.error("Unable to decode object. Error: %s"%str(e)) return Response({"detail": "Invalid object."}, status=status.HTTP_400_BAD_REQUEST, exception=True) app = request.META['app'] #todo: validate username and password user = User.objects.create_user(username = username, password = password) new_user = AppUser(user = user, app = app) try: new_user.full_clean() except ValidationError as e: return Response(e.message_dict, status=status.HTTP_400_BAD_REQUEST) new_user.save() user = authenticate(username=data["username"], password=data["password"]) login(request, user) request.session.save() return Response({settings.SESSION_COOKIE_NAME : request.session.session_key, "id" : user.id }, status=status.HTTP_201_CREATED)
def register_user(request): user_exist = False if request.method == "POST": form = RegistrationForm(request.POST) if form.is_valid(): name = request.POST['username'] current_site = get_current_site(request) print current_site try: user_exist = User.objects.get(username=name) print "USER EXIST ---------", user_exist except ObjectDoesNotExist: password = request.POST['password1'] user = User.objects.create_user(name, name, password, is_active=False) key = ''.join( random.choice(string.digits + string.letters) for _ in range(10)) app_user = AppUser(user=user, key_expires=timezone.now() + datetime.timedelta(minutes=3), activation_key=key) app_user.save() # activation_key = key, to = ['*****@*****.**']) Thread(target=mail.registration_mail, kwargs={ 'host': current_site.domain, 'activation_key': key, 'to': ['*****@*****.**'] }).start() # mail.registration_mail(activation_key=key, to=['*****@*****.**']) print 'mail sent success --------' return HttpResponseRedirect(reverse('login')) else: form = RegistrationForm() return render(request, 'login/register.html', { 'form': form, 'user_exist': user_exist })
def __subscribe_add_user(self): #关注获取用户信息 openid = self.from_user user_info = self.appitem.get_user_info(openid) user = self.__get_user() if not user: user = AppUser(openid=openid) user.save() try: user.nickname = user_info.get('nickname') user.sex = user_info.get('sex') user.language = user_info.get('language') user.city = user_info.get('city') user.province = user_info.get('province') user.country = user_info.get('country') user.headimgurl = user_info.get('headimgurl') user.unionid = user_info.get('unionid') user.save() except: pass if not self.appitem.app_users.filter(openid=openid).exists(): self.appitem.app_users.add(user) else: user.is_guanzhu = True user.unionid = user_info.get('unionid') user.save()