def home(request): if request.user.is_authenticated(): s = Session.objects.get(session_key=request.session.session_key) t = Tracker.objects.create(session=s, source='2') if request.user.userprofile.workplace_type in ['A', 'B']: return render(request, 'home.html') elif request.user.userprofile.workplace_type in ['C', 'O']: return redirect('/feed') else: return redirect('/set/') else: q = request.GET.get('q') try: s = Session.objects.get(session_key=request.session.session_key) except Exception: s = None t = Tracker.objects.create(session=s, source=q) if request.GET.get('audience') == 'team': return render(request, 'cover_team.html', { 'form_signup': SignupForm(), 'form_login': LoginForm() }) else: return render(request, 'cover.html', { 'form_signup': SignupForm(), 'form_login': LoginForm() })
def signup_paciente(request): # return render(request, 'med_app/signup-paciente.html') if request.method == 'POST': form = SignupForm(request.POST) if form.is_valid(): form.save(request) username = form.cleaned_data.get('email') raw_password = form.cleaned_data.get('password1') user = authenticate(username=username, password=raw_password) ##login(request, user) # return redirect('home') else: form = SignupForm() return render(request, 'med_app/signup-paciente.html', {'form': form})
def obj_create(self, bundle, **kwargs): #Validate that the needed fields exist validator = CustomFormValidation(form_class=UserForm, model_type=self._meta.resource_name) errors = validator.is_valid(bundle) if isinstance(errors, ErrorDict): raise BadRequest(errors.as_text()) #Extract needed fields username, password, email = bundle.data['username'], bundle.data['password'], bundle.data['email'] data_dict = {'username' : username, 'email' : email, 'password' : password, 'password1' : password, 'password2' : password} #Pass the fields to django-allauth. We want to use its email verification setup. signup_form = SignupForm() signup_form.cleaned_data = data_dict try: try: user = signup_form.save(bundle.request) profile, created = UserProfile.objects.get_or_create(user=user) except AssertionError: #If this fails, the user has a non-unique email address. user = User.objects.get(username=username) user.delete() raise BadRequest("Email address has already been used, try another.") #Need this so that the object is added to the bundle and exists during the dehydrate cycle. html = complete_signup(bundle.request, user, "") bundle.obj = user except IntegrityError: raise BadRequest("Username is already taken, try another.") return bundle
def get_context_data(self, **kwargs): context_data = super(StudentInfoView, self).get_context_data(**kwargs) reg = self.temporaryRegistration context_data.update({ 'reg': reg, 'payAtDoor': reg.payAtDoor, 'currencySymbol': getConstant('general__currencySymbol'), 'subtotal': sum([x.price for x in reg.temporaryeventregistration_set.all()]), }) if reg.payAtDoor or self.request.user.is_authenticated or not getConstant( 'registration__allowAjaxSignin'): context_data['show_ajax_form'] = False else: # Add a login form and a signup form context_data.update({ 'show_ajax_form': True, 'login_form': LoginForm(), 'signup_form': SignupForm(), }) return context_data
def get_context_data(self, **kwargs): context_data = super(StudentInfoView, self).get_context_data(**kwargs) context_data.update({ 'regInfo': self.request.session[REG_VALIDATION_STR].get('regInfo', {}), 'payAtDoor': self.request.session[REG_VALIDATION_STR].get('payAtDoor', False), 'currencySymbol': getConstant('general__currencySymbol'), }) # Add the Series, Event, and DanceRole objects to the context data based on what was submitted # through the form. subtotal = 0 for k, v in context_data['regInfo'].get('events', {}).items(): event = Event.objects.prefetch_related('pricingTier').get(id=k) dropin_keys = [x for x in v.keys() if x.startswith('dropin_')] if dropin_keys: name = _('DROP IN: %s' % event.name) base_price = event.getBasePrice(dropIns=len(dropin_keys)) else: name = event.name base_price = event.getBasePrice( payAtDoor=context_data['payAtDoor']) subtotal += base_price if v.get('role'): role_name = DanceRole.objects.get(id=v.get('role')).name else: role_name = None context_data['regInfo']['events'][k].update({ 'name': name, 'role_name': role_name, 'base_price': base_price, }) context_data['subtotal'] = subtotal if context_data[ 'payAtDoor'] or self.request.user.is_authenticated or not getConstant( 'registration__allowAjaxSignin'): context_data['show_ajax_form'] = False else: # Add a login form and a signup form context_data.update({ 'show_ajax_form': True, 'login_form': LoginForm(), 'signup_form': SignupForm(), }) return context_data
def test_signup_form(self): form = SignupForm({ 'username': '******', 'email': '*****@*****.**', 'password1': 'password', 'password2': 'password' }) self.assertTrue(form.is_valid())
def get_context_data(self, **kwargs): context = super(LandingView, self).get_context_data(**kwargs) context['featured_everyday_cooks'] = Cook.objects.filter(is_featured=True, cook_type__name__icontains='Everyday Cook')[:3] context['featured_special_cooks'] = Cook.objects.filter(is_featured=True, cook_type__name__icontains='Special Cook')[:3] context['eventfood'] = EventFood.objects.order_by('-created_at')[:5] context['everydayfood'] = EverydayFood.objects.order_by('-created_at')[:5] context['bakedfood'] = BakedFood.objects.order_by('-created_at')[:5] context['form'] = SignupForm() return context
def get(self, request, *args, **kwargs): # すでにログインしている場合はダッシュボード画面へリダイレクト if request.user.is_authenticated: return redirect(reverse('dashborad:index')) context = { 'form': RegisterForm(), 'auth_formm': SignupForm(), } return render(request, 'accounts/register.html', context)
def test_password_mismatch(self): form = SignupForm({ 'username': '******', 'email': '*****@*****.**', 'password1': 'password', 'password2': 'passwordmismatch' }) self.assertFalse(form.is_valid()) self.assertIn('__all__', form.errors) self.assertIn('You must type the same password each time.', form.errors['__all__'])
def test_duplicate_email(self): User.objects.create_user('test1', '*****@*****.**', 'testpass') form = SignupForm({ 'username': '******', 'email': '*****@*****.**', 'password1': 'password', 'password2': 'password' }) self.assertFalse(form.is_valid()) self.assertIn('email', form.errors)
def get_context_data(self, **kwargs): if 'form' in self.request.session and 'login_form' in self.request.session: ctx = {} if self.request.session['form']: ctx['form'] = SignupForm(self.request.session['form']) ctx['form'].is_valid() else: ctx['form'] = SignupForm() if self.request.session['login_form']: ctx['login_form'] = LoginForm(self.request.session['login_form']) ctx['login_form'].is_valid() else: ctx['login_form'] = LoginForm() del self.request.session['form'] del self.request.session['login_form'] else: ctx = super(SignupView, self).get_context_data(**kwargs) ctx['login_form'] = LoginForm() return ctx
def validate(self, attrs): self.signup_form = SignupForm(attrs) if False == self.signup_form.is_valid(): errors = OrderedDict() form_errors = dict(self.signup_form.errors) for error_field in form_errors.keys(): errors[error_field] = form_errors[error_field] raise serializers.ValidationError(errors) return serializers.Serializer.validate(self, attrs)
def test_non_ascii_username(self): form = SignupForm({ 'username': '******', 'email': '*****@*****.**', 'password1': 'password', 'password2': 'password', }) self.assertFalse(form.is_valid()) self.assertEqual(form.errors['username'], [ 'Enter a valid username. This value may contain only ' 'English letters, numbers, and @/./+/-/_ characters.' ])
def login(request): """ A view to render the login page """ login_form = LoginForm() signup_form = SignupForm() context = { 'login_form': login_form, 'signup_form': signup_form, } return render(request, 'login.html', context)
def test_password_mismatch(self): form = SignupForm({ 'username': '******', 'email': '*****@*****.**', 'password1': 'password', 'password2': 'passwordmismatch' }) self.assertFalse(form.is_valid()) # Since django-allauth 0.27.0, the "You must type the same password # each time" form validation error that can be triggered during # signup is added to the 'password2' field instead of being added to # the non field errors. self.assertIn('password2', form.errors) self.assertEqual(form.errors['password2'], ['You must type the same password each time.'])
def index(request): user = request.user context = {} if not user.is_authenticated: form = SignupForm() context['form'] = form template = loader.get_template('home.html') response = HttpResponse(template.render(context, request)) else: socials = Social.objects.filter(account=user).order_by('-updated_at') if not socials: response = redirect('publisher:connect') else: response = redirect('publisher:content_create') return response
def get_context_data(self, form, **kwargs): context = super(PremierPasWizard, self).get_context_data(form=form, **kwargs) if self.steps.current == 'categorie_user': if self.request.method == "POST": form = SignupForm(self.request.POST) form.save(self.request) # form = self.get_form('signup') # form.save() elif self.steps.current == 'confirmation': categorie_user = self.get_cleaned_data_for_step('categorie_user') etude_user = self.get_cleaned_data_for_step('etude_user') faculte = etude_user['faculte'] universite = etude_user['universite'] cours = Cours.objects.filter(faculte=faculte) context.update({'cours': cours}) return context
def iap_signup(request): if request.method == 'POST': data = JSONParser().parse(request) receipt = data['receipt'] if ZappyUser.objects.filter(apple_receipt=receipt).exists(): return JsonResponse({'error': 'This In App Purchase has already been used. Please contact [email protected]', 'kick_out': True}, status=400) verify_url = 'https://buy.itunes.apple.com/verifyReceipt' if 'debug' in data: if data['debug']: verify_url = 'https://sandbox.itunes.apple.com/verifyReceipt' receipt_json = json.dumps( {"receipt-data": receipt, 'password': env.str('APP_SHARED_SECRET', default='')}) response = requests.request( method='POST', url=verify_url, headers={'Content-Type': 'application/x-www-form-urlencoded'}, data=receipt_json ) res_json = response.json() try: request.POST._mutable = True request.POST['email'] = data['email'] request.POST['password1'] = data['password'] form = SignupForm(request.POST) form.is_valid() user = form.save(request) user.apple_product_id = res_json['latest_receipt_info'][-1]['product_id'] user.apple_expires_date = datetime.datetime.fromtimestamp( int(res_json['latest_receipt_info'][-1]['expires_date_ms']) / 1000) user.active_membership = True user.apple_receipt = receipt user.save() token = Token.objects.create(user=user) return JsonResponse({'token': str(token)}, status=201) except IntegrityError: return JsonResponse({'error': 'That email has already been taken'}, status=400) except KeyError: return JsonResponse({'error': 'We had problems verifying the receipt. Please contact [email protected]', 'kick_out': True}, status=400) except Exception as e: print(e) return JsonResponse({'error': 'Something went wrong. Please contact [email protected]', 'kick_out': True}, status=400)
def new_user(request): if request.method == 'POST': # profile = request.user.playerprofile # userform = EditUserForm(request.POST) userform = SignupForm(request.POST) if userform.is_valid(): print('valid') userform.save(request) # user = User(email=userform.cleaned_data['email'], # username=userform.cleaned_data['email'], # first_name = userform.cleaned_data['first_name'], # last_name = userform.cleaned_data['last_name'], # password = make_password(userform.cleaned_data['password']) # ) # user.save() # email_context = { # 'domain': '52dashboard.com', # 'token': token_gen.make_token(newuser), # 'uid': urlsafe_base64_encode(str(newuser.pk).encode('utf-8')), # } # msg_plain = render_to_string('accounts/verify_account_email.txt', email_context) # # send_mail( # 'Verify Your Email', # msg_plain, # 'BSN Accounts <*****@*****.**>', # [user.email], # fail_silently=True, # ) # new_user = authenticate(username=userform.cleaned_data['email'], password=userform.cleaned_data['password']) # login(request, new_user) # return redirect('email-verification') # return redirect(reverse('home')) # if a GET (or any other method) we'll create a blank form else: userform = EditUserForm() context = { # 'profile': request.user.playerprofile, 'userform': userform, 'formtitle': 'Sign Up', } return render(request, 'profiles/new_user.html', context)
def sign_me_up(request, email, pw1, pw2): """ Given data for the signup form from somewhere, sign up a user and return that user. Arguments: - `request`: Request - `email`: str - `pw1`: str - `pw2`: str Return: RMUser or form with errors (Wonky behaviour, but this shouldn't happen...) Exceptions: None """ form = SignupForm(data=dict(email=email, password1=pw1, password2=pw2)) if form.is_valid(): return form.save(request) return form
def create_allauth_user(email): post_dic = get_post_dic(email) signin_request = get_signin_request(post_dic) signup_form_kwargs = { "files": {}, "initial": {}, "data": signin_request.POST } # From allauth.account.views.SignupView.form_valid signup_form = SignupForm(**signup_form_kwargs) signup_form.cleaned_data = post_dic # Csrf token not neccesary either user = signup_form.save(signin_request) # Sends sign up mail signals.user_signed_up.send(sender=user.__class__, request=signin_request, user=user, signal_kwargs={}) return user
def test_newline_in_username(self): # django-allauth's default regex doesn't match '\n' at the # end of a string so as a result of this, users can signup # with a user name like 'username\n'. # # This is a problem when a user can fill the form via curl # and Content-Type header set to # 'application/x-www-form-urlencoded'. # # See #1045 and test_newline_in_username in # users/tests/test_views.py for details. form = SignupForm({ 'username': '******', 'email': '*****@*****.**', 'password1': 'password', 'password2': 'password', }) self.assertFalse(form.is_valid()) self.assertEqual( form.errors['username'], ['Please don\'t use whitespace characters in username.'])
def post(self, request): serializer = RegisterInputSerializer(data=request.data) serializer.is_valid(raise_exception=True) signup_data = dict(serializer.validated_data) confirmation_query_args = signup_data.pop('confirmation_query_args', {}) email = signup_data.pop('email') signup_data['email'] = signup_data['email2'] = email if not settings.SET_PASSWORD_ON_EMAIL_CONFIRMATION: password = signup_data.pop('password') signup_data['password1'] = signup_data['password2'] = password email_verification = allauth_settings.EMAIL_VERIFICATION with transaction.atomic(), clear_messages(request): form = SignupForm(data=signup_data) if settings.SET_PASSWORD_ON_EMAIL_CONFIRMATION: form.fields.pop('password1', None) form.fields.pop('password2', None) form_valid_or_raise(form, { 'password1': 'password', 'password2': None, 'email2': None }) user = form.save(request=request) if email_verification != allauth_settings.EmailVerificationMethod.NONE and confirmation_query_args: user.extra_confirmation_data[ AccountAdapter. CONFIRMATION_QUERY_ARGS] = confirmation_query_args user.save() response = complete_signup(request, user, email_verification, success_url=None) token = handle_login_response(response, user, allow_disabled=True) response_serializer = TokenResponseSerializer({'token': token}) return Response(response_serializer.data)
def test_newline_in_username(self): # Note that since Django 1.9, forms.CharField().strip is True # and it strips all whitespace characters by default so there # is no need to do anything on our side. # # django-allauth's default regex doesn't match '\n' at the # end of a string so as a result of this, users can signup # with a user name like 'username\n'. # # This is a problem when a user can fill the form via curl # and Content-Type header set to # 'application/x-www-form-urlencoded'. # # See #1045 and test_newline_in_username in # users/tests/test_views.py for details. form = SignupForm({ 'username': '******', 'email': '*****@*****.**', 'password1': 'password', 'password2': 'password', }) self.assertTrue(form.is_valid())
def finance_website(request): if request.method == "GET": stock = finance_stock(request) data = get_stock_price_data(stock) script, div = create_stock_price_plot(data) bid, ask, range_day, market_cap, beta, estimate, price = get_stock_summary_data( stock) movers = get_stock_movers(5) watchlist_list = Watchlist.objects.filter(user=request.user.id) feed = news_feed(stock) login_form = LoginForm() signup_form = SignupForm() context = { "stock": stock, "bid": bid, "ask": ask, "range": range_day, "market_cap": market_cap, "beta": beta, "estimate": estimate, "the_script": script, "the_div": div, "movers": movers, "watchlist_list": watchlist_list, "news": feed, "price": price, "login_form": login_form, "signup_form": signup_form } return render(request, "finance.html", context) else: form = WatchlistForm(request.POST) form.save() return redirect(request.get_full_path())
def post(self, request, *args, **kwargs): logger.info("You're in post!!!") # リクエストからフォームを作成 form = RegisterForm(request.POST) auth_form = SignupForm(request.POST) # バリデーション if not form.is_valid(): # バリデーションNGの場合はアカウント登録画面のテンプレートを再表示 return render(request, 'accounts/register.html', {'form': form}) # 保存する前に一旦取り出す user = form.save(commit=False) # パスワードをハッシュ化してセット user.set_password(form.cleaned_data['password']) # ユーザーオブジェクトを保存 user.save() # ログイン処理(取得した Userオブジェクトをセッションに保存 & Userデータを更新) auth_login(request, user) return redirect(settings.LOGIN_REDIRECT_URL)
def login(request, **kwargs): success_url = kwargs.pop("success_url", None) if success_url is None: success_url = "/" if request.method == "POST": form = LoginForm(request.POST) if form.is_valid(): return form.login(request, redirect_url=success_url) else: form = LoginForm() registerform = SignupForm() ctx = { "form": form, "registerform": registerform, "redirect_field_name": "next", "redirect_field_value": request.REQUEST.get("next"), "apps": SocialApp.objects.all(), } return render_to_response('users/login.html', RequestContext(request, ctx))
def user_signup(request): """ Функция авторизации по ajax """ if request.is_ajax: signup_form = SignupForm(request.POST) if signup_form.is_valid(): signup_form.save(request) data = {'reload': True} return JsonResponse(data) context = { 'reload': False, 'login_form': LoginForm, 'signup_form': signup_form } context.update(csrf(request)) html_content = loader.render_to_string( template_name='include/user/user.html', context=context) data = {'html_content': html_content} return JsonResponse(data) else: return Http404
def video_signup(request, slug): if not request.method == 'POST': raise Exception('This view is meant to be called via a POST request.') video, created = get_or_create_video(slug) login_success = False outbound_message = dict() outbound_message[DATA_KEY] = {} form = SignupForm(data=json.loads(request.raw_post_data)) if form.is_valid(): user = form.save(request) perform_login(request, user) login_success = True action.send(user, verb='registered account', action_object=video) action.send(user, verb='viewed video', action_object=video) userSerializer = UserSerializer(user) userSerialized = JSONRenderer().render(userSerializer.data) outbound_message[DATA_KEY]['user'] = json.loads(userSerialized) outbound_message[DATA_KEY]['share_url'] = reverse('profiles-share', args=[ user.username, slug, ]) else: outbound_message[DATA_KEY]['errors'] = \ json.loads(errors_to_json(form.errors)) outbound_message[EVENT_TYPE_KEY] = 'FB_SIGNUP' outbound_message[CHANNEL_KEY] = \ '/framebuzz/session/%s' % request.session.session_key outbound_message[DATA_KEY]['login_success'] = login_success return HttpResponse(json.dumps(outbound_message), content_type="application/json")
def home(request): context = {} if request.user: u = request.user if u.is_authenticated(): if request.method == 'GET': source = request.GET.get('source') if source == 'login': count = u.groups.count() if count == 1: group_id = u.groups.first().id return redirect('view_group', group_id) elif source == 'email_confirmed': context['msg'] = 'Email address confirmed!' group_balances = [] for group in u.groups.filter(quitsgroup__is_active=True): group_balance = u.quitsuser.get_group_total(group) group_balances.append((group, group_balance, group.quitsgroup.currency)) context['group_balances'] = group_balances else: context['signup_form'] = SignupForm() context['login_form'] = LoginForm() return render(request, 'quits/home.html', context)