Esempio n. 1
0
def register():

    form = RegisterForm()

    if form.validate_on_submit():
        return redirect('/success')
    return render_template('user/register.html', form=form)
Esempio n. 2
0
def register():
    if request.method == "GET":
        # data = jsonify("please register")
        # print(type(data))
        form = RegisterForm()
        return render_template('user/register.html', form=form)
    elif request.method == "POST":
        form = RegisterForm(formdata=request.form)
        # 判断是否验证成功
        if form.validate():
            isexist = User.query.filter_by(username=form.username.data).first()
            if isexist:
                flash(message="用户已存在")
                return redirect(url_for('user.register'))
            else:
                user = User(username=form.username.data,
                            password=generate_password_hash(
                                form.password.data))
                # 将验证通过的用户保存至数据库
                db.session.add(user)
                db.session.commit()
                flash("注册成功,赶紧登录吧")
                return redirect(url_for('user.login'))
        else:
            # 消息闪现,是一个列表
            flash("注册失败")
            return render_template('user/register.html', form=form)
Esempio n. 3
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        message = "[ERROR]请检查填写的内容!"
        if register_form.is_valid():  # 获取数据
            username = register_form.cleaned_data['username']
            password1 = register_form.cleaned_data['password1']
            password2 = register_form.cleaned_data['password2']
            email = register_form.cleaned_data['email']
            if password1 != password2:  # 判断两次密码是否相同
                message = "两次输入的密码不同!"
                return render(request, 'register.html', locals())
            else:
                same_name_user = models.User.objects.filter(username=username)
                if same_name_user:  # 用户名唯一
                    message = '用户已经存在,请重新选择用户名!'
                    return render(request, 'register.html', locals())
                same_email_user = models.User.objects.filter(email=email)
                if same_email_user:  # 邮箱地址唯一
                    message = '该邮箱地址已被注册,请使用别的邮箱!'
                    return render(request, 'register.html', locals())

                # 当一切都OK的情况下,创建新用户
                new_user = models.User.objects.create()
                new_user.username = username
                new_user.password = hash_code(password1)
                new_user.email = email
                new_user.save()
                return redirect('/login/')  # 自动跳转到登录页面
        else:
            return render(request, 'register.html', locals())
Esempio n. 4
0
def login():
    form = LoginForm()
    regform = RegisterForm()
    error = None
    
    if form.validate_on_submit() or regform.validate_on_submit():
        if request.form['btn'] == 'Login':
            user = User.query.filter_by(username=form.username.data).first()
            if bcrypt.hashpw(form.password.data.encode('utf8'), user.password.encode('utf8')) == user.password.encode('utf8'): #decrypt password
                session['username'] = form.username.data
                return redirect(url_for('index'))
            else:
                error = "Incorrect username and password"
        else:
            # Check if username exists
            usernames = [u.username for u in User.query.all()]
            if regform.username.data in usernames:
                error = "username already exists!"
            else:
                # Add user to DB
                # 574 22nd Ave San Francisco, CA 94121
                address = str(regform.house_number) + " " + regform.street + " " + regform.city + ", " + regform.state + " " + str(regform.zip_code)
                print (address)
                passwordEncrypt = bcrypt.hashpw(regform.password.data.encode('utf8'), bcrypt.gensalt()) #encrypt password
                regUser = User(
                    regform.fullname.data,
                    regform.email.data,
                    regform.username.data,
                    passwordEncrypt,
                    address)
                db.session.add(regUser)
                db.session.commit() #simulate that the record is written
                # db.session.flush()
                # error = "Registration failed!"
    return render_template('user/login.html', form=form, regform=regform, error=error)
Esempio n. 5
0
def register(request):
    if request.method == 'GET':
        return render(request, 'register.html')

    if request.method == 'POST':
        # 获取数据
        # username = request.POST.get('username')
        # password1 = request.POST.get('pwd1')
        # password2 = request.POST.get('pwd2')
        # if not (username and password2 and password1):
        #     pass
        # if not(len(username) > 10 and len(username < 20)):
        #     pass
        # if password1 != password2:
        #     pass
        # 使用表单做验证,验证传递的参数是否满足条件
        form = RegisterForm(request.POST)
        # is_valid(): 判断表单校验参数是否通过,如果通过则返回true,否则返回false
        if form.is_valid():
            # 表示表单校验通过
            # 1. 账号一定不存在
            # 2. 密码和确认密码相等
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('pwd1')
            # make_password()
            User.objects.create_user(username=username, password=password)
            # return HttpResponse('注册账号成功')
            return HttpResponseRedirect(reverse('user:login'))
        # 表示表单校验失败
        errors = form.errors
        return render(request, 'register.html', {'errors': errors})
Esempio n. 6
0
def register():
    form = RegisterForm()
    error = None

    if form.validate_on_submit():

        salt = bcrypt.gensalt()
        hashed_password = bcrypt.hashpw(form.password.data, salt)
        user = User(fullname=form.fullname.data,
                    email=form.email.data,
                    username=form.username.data,
                    password=hashed_password,
                    is_author=True,
                    nickname=None,
                    social_id=None)
        db.session.add(user)
        db.session.flush()

        if user.id:
            flash("User Created")
            db.session.commit()

        else:
            db.session.rollback()
            error = "Error registering User"

        return redirect('index')

    return render_template('user/register.html', form=form, error=error)
def login():
    form = LoginForm()
    regform = RegisterForm()
    error = None

    if form.validate_on_submit() or regform.validate_on_submit():
        if request.form['btn'] == 'Login':
            user = User.query.filter_by(username=form.username.data).first()
            if len(user.password) < 20:
                session['username'] = form.username.data
                return redirect(url_for('index'))
            elif bcrypt.hashpw(
                    form.password.data.encode('utf8'),
                    user.password.encode('utf8')) == user.password.encode(
                        'utf8'):  #decrypt password
                session['username'] = form.username.data
                return redirect(url_for('index'))
            else:
                error = "Incorrect username and password"
        else:
            # Check if username exists
            usernames = [u.username for u in User.query.all()]
            if regform.username.data in usernames:
                error = "username already exists!"
            else:
                # Add user to DB
                address = ""
                address = str(
                    regform.house_number.data
                ) + " " + regform.street.data + ", " + regform.city.data + ", " + regform.state.data + " " + str(
                    regform.zip_code.data)
                try:
                    geolocator = GoogleV3()
                    user_location = geolocator.geocode(address)
                    print(user_location.latitude, user_location.longitude)
                    print("Valid Address")
                except:
                    error = "Invalid Address or does not exist, please enter a valid address and Register again"
                    return render_template('user/login.html',
                                           form=form,
                                           regform=regform,
                                           error=error)
                passwordEncrypt = bcrypt.hashpw(
                    regform.password.data.encode('utf8'),
                    bcrypt.gensalt())  #encrypt password
                regUser = User(regform.fullname.data, regform.email.data,
                               regform.username.data, passwordEncrypt, address)
                db.session.add(regUser)
                db.session.commit()  #simulate that the record is written
                # db.session.flush()
                # error = "Registration failed!"
    return render_template('user/login.html',
                           form=form,
                           regform=regform,
                           error=error)
Esempio n. 8
0
def register(request):
    if request.method == 'POST':
        form = RegisterForm(request.POST, request.FILES)
        if form.is_valid():
            user = form.save(commit=False)
            user.password = make_password(user.password)
            user.save()
            return redirect('/user/login/')
        else:
            return render(request, 'register.html', {'error': form.errors})
    else:
        return render(request, 'register.html')
Esempio n. 9
0
 def test_register_username_exist(self):
     """
     Check if username is already exists. Do not valid the form.
     """
     form = RegisterForm(data={
         "username": "******",
         "first_name": "",
         "last_name": "",
         "email": "*****@*****.**",
         "password": "******",
         "repassword": "******"
     })
     self.assertFalse(form.is_valid())
Esempio n. 10
0
 def test_register_email_exist(self):
     """
     Check if register is valid. Do not valid the form.
     """
     form = RegisterForm(data={
         "username": "******",
         "first_name": "",
         "last_name": "",
         "email": "*****@*****.**",
         "password": "******",
         "repassword": "******"
     })
     self.assertFalse(form.is_valid())
Esempio n. 11
0
def register(request):
    if request.method == 'GET':
        return render(request, 'register.html')
    if request.method == 'POST':
        form = RegisterForm(request.POST)

        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = make_password(form.cleaned_data.get('password'))
            User.objects.create(username=username, password=password)
            return HttpResponseRedirect(reverse('user:login'))
        errors = form.errors
        return render(request, 'register.html', {'errors': errors})
Esempio n. 12
0
 def test_register_password_not_match(self):
     """
     Check if password not match with repassword.
     """
     form = RegisterForm(data={
         "username": "******",
         "first_name": "",
         "last_name": "",
         "email": "*****@*****.**",
         "password": "******",
         "repassword": "******"
     })
     self.assertFalse(form.is_valid())
Esempio n. 13
0
def register():
    form = RegisterForm()
    if form.validate_on_submit():
	salt = bcrypt.gensalt()
	hashed_password = bcrypt.hashpw(form.password.data, salt)
	user = User(
		form.fullname.data,
		form.email.data,
		form.username.data,
		hashed_password,
		False
	)
	db.session.add(user)
	db.session.commit()
	return redirect('/success')
    return render_template('user/register.html', form=form)
Esempio n. 14
0
def register_form(request):
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data['username']
            password = form.cleaned_data['password1']
            user = authenticate(username=username, password=password)
            login(request, user)
            
            current_user = request.user
            data = UserProfile()
            data.user_id = current_user.id
            data.image = "images/users/user.png"
            data.save()
            messages.success(request, "Your account has been created")

            return HttpResponseRedirect('/')
        else:
            messages.warning(request, form.errors)
            return HttpResponseRedirect('/register')

    form = RegisterForm()
    context = {
        'form': form,
    }
    return render(request, 'register_form.html', context)
Esempio n. 15
0
def register():
	form = RegisterForm()
	if form.validate_on_submit():
		salt = bcrypt.gensalt()
		hashed_password = bcrypt.hashpw(form.password.data, salt)
		fullname = string.capwords(form.fullname.data)
		user = User(
			fullname,
			form.email.data,
			form.username.data.lower(),
			hashed_password,
			False
			)
		db.session.add(user)
		db.session.commit()
		flash("User Registered!")
		return redirect(url_for('register'))
	return render_template('user/register.html', form=form)
Esempio n. 16
0
def register_page():
    form = RegisterForm()

    if form.validate_on_submit():
        salt = bcrypt.gensalt()
        hashed_password = bcrypt.hashpw(form.password.data, salt)
        user = User(form.fullname.data, form.email.data, form.username.data, hashed_password, False)
        try:
            db.session.add(user)
            db.session.flush()
            db.session.commit()
            session["username"] = form.username.data
            return redirect(url_for("login_page"))
        except Exception as e:
            db.session.rollback()
            print(e)
            error = "Choose a unique username and email"
            return render_template("user/register.html", form=form, error=error)
        return redirect(url_for("index_page"))
    return render_template('user/register.html', form=form)
Esempio n. 17
0
def initial():
	user = User.query.first()
	form = RegisterForm()
	if user:
		abort(403)
	else:
		if form.validate_on_submit():
			salt = bcrypt.gensalt()
			hashed_password = bcrypt.hashpw(form.password.data, salt)
			fullname = string.capwords(form.fullname.data)
			user = User(
				fullname,
				form.email.data,
				form.username.data.lower(),
				hashed_password,
				True
				)
			db.session.add(user)
			db.session.commit()
			flash("User Registered, app initialised.")
			return redirect(url_for('login'))
	return render_template('user/initial.html', form=form)
Esempio n. 18
0
def final_register(request):
    if request.method == 'POST':
        register_form = RegisterForm(request.POST)
        check_term = request.POST.get('term_check')  # another method to get check box, or can use form.cleaned_data
        if check_term == 'on':
            stored_form = register_form
            if register_form.is_valid():
                # dont wanna fill form again
                # username = register_form.cleaned_data['username']
                register_form.clean()
                username = request.POST.get('username')
                password1 = request.POST.get('password1')
                password2 = request.POST.get('password2')
                email = request.POST.get('email')
                # check passwords are the same
                if password1 != password2:
                    message = 'Not the same password'
                    return render(request, 'user/register.html', {'message': message, 'register_form': stored_form})
                else:
                    same_name_user = User.objects.filter(username=username)
                    # check user name
                    if same_name_user:
                        message = 'The user name was already existed'
                        return render(request, 'user/register.html',
                                      {'message': message, 'register_form': stored_form})

                    same_email_user = User.objects.filter(email=email)
                    if same_email_user:
                        message = 'The email was registered, please use another one'
                        return render(request, 'user/register.html',
                                      {'message': message, 'register_form': stored_form})
                interest = Interest()
                user = User()
                additional_info = AdditionalInfo()
                additional_info.save()
                interest.save()
                user.additionalInfo = additional_info
                user.interest = interest
                user.email = email
                user.password = password1
                user.username = username
                user.is_active = True
                user.save()
                # TODO: label as todo to ensure later check
                # the user was logged without verification of their email, may need change here
                request.session['is_login'] = True
                request.session['user_name'] = user.username
                return redirect('/user/index/')

    register_form = RegisterForm()
    message = 'There are something with the submitted form'

    return render(request, "oauth/oauth_register.html", locals())
Esempio n. 19
0
def register(request):
    if request.method == 'GET':
        return render(request, 'web/register.html')

    if request.method == 'POST':
        form = RegisterForm(request.POST)

        if form.is_valid():
            username = form.cleaned_data.get('username')

            password = form.cleaned_data.get('pwd1')
            email = form.cleaned_data.get('email')
            # make_password() 加密密码
            User.objects.create(username=username,
                                password=make_password(password),
                                email=email)
            # 返回登录
            return HttpResponseRedirect(reverse('user:login'))

        return render(request, 'web/register.html', {
            'form': form,
            'data': form.data
        })
Esempio n. 20
0
def register_page():
    form = RegisterForm()

    if form.validate_on_submit():
        salt = bcrypt.gensalt()
        hashed_password = bcrypt.hashpw(form.password.data, salt)
        user = User(form.fullname.data, form.email.data, form.username.data,
                    hashed_password, False)
        try:
            db.session.add(user)
            db.session.flush()
            db.session.commit()
            session["username"] = form.username.data
            return redirect(url_for("login_page"))
        except Exception as e:
            db.session.rollback()
            print(e)
            error = "Choose a unique username and email"
            return render_template("user/register.html",
                                   form=form,
                                   error=error)
        return redirect(url_for("index_page"))
    return render_template('user/register.html', form=form)
Esempio n. 21
0
def github_redirect(request, profile):
    message = 'please register your account here!'
    new_user_name = profile['login']
    same_user_name = User.objects.filter(username=new_user_name)
    if same_user_name:
        message += 'The user name was already existed, please choose a new one'
        new_user_name = ''
    email = profile['email']
    if email is None:
        email = ''
    register_form = RegisterForm(initial={
        'username': new_user_name,
        'email': email,
    })
    return render(request, "oauth/oauth_register.html", {'message': message, 'register_form': register_form})
Esempio n. 22
0
def instagram_callback(request):
    code = request.get_full_path().split("code=")[1].split("#_")[0]
    url = "https://api.instagram.com/oauth/access_token/"
    data = {"client_id": "2861822790566791",
            "client_secret": "9f6c11ccc2a1076130eaea5104fc7303",
            "grant_type": "authorization_code",
            "redirect_uri": "https://localhost:8000/oauth/instagram_callback",
            "code": code
            }
    r = requests.post(url, data=data)
    # return redirect(url)
    json_data = json.loads(r.text)
    access_token = json_data.get("access_token")
    user_id = str(json_data.get("user_id"))
    response = requests.get("https://graph.instagram.com/"+user_id+"?fields=id,username&access_token="+access_token)
    username = json.loads(response.text).get("username")
    message = "please create a local account!"
    register_form = RegisterForm(initial={
        'username': username,
    })
    return render(request, "user/register.html", {'message': message, 'register_form': register_form,
                                                  'instagram_username':username})
Esempio n. 23
0
def logout():
  #Delete the sessions for username when the user logout
  session.pop('username', None)
  regform = RegisterForm()
  form = LoginForm()
  return render_template('user/login.html', form=form, regform=regform)
Esempio n. 24
0
 def get(self, request):
     register_form = RegisterForm()
     return render(request, 'register.html', locals())
Esempio n. 25
0
def register():
    form = RegisterForm()
    if form.validate_on_submit():
        return redirect('/success')
    return render_template('user/register.html', form=form)
Esempio n. 26
0
def success():
    form = RegisterForm()
    flash(form.fullname.data)
    return render_template('user/index.html')
Esempio n. 27
0
 def get(self, request):
     """显示注册页面"""
     register_form = RegisterForm()
     return render(request,
                   'register.html',
                   context={'register_form': register_form})
Esempio n. 28
0
    def post(self, request):
        """用户注册校验"""
        register_form = RegisterForm(request.POST)

        if register_form.is_valid():
            # 获取前端数据
            username = register_form.cleaned_data['user_name']
            pwd = register_form.cleaned_data['pwd']
            cpwd = register_form.cleaned_data['cpwd']
            email = register_form.cleaned_data['email']
            allow = request.POST.get('allow')
            # 校验参数是否完整
            if not all([username, pwd, cpwd, email]):

                return render(request,
                              'register.html',
                              context={
                                  'errmsg': '请填写全部',
                                  'register_form': register_form
                              })
            # 校验用户是否存在
            try:
                use = User.objects.get(username=username)
            except Exception as e:
                use = None
            if use:
                return render(request,
                              'register.html',
                              context={
                                  'errmsg': '用户名已存在',
                                  'register_form': register_form
                              })
            # 校验密码是否正确
            if pwd != cpwd:
                return render(request,
                              'register.html',
                              context={
                                  'errmsg': '两次密码不一致',
                                  'register_form': register_form
                              })
            # 校验协议是否勾选
            if allow != 'on':
                return render(request,
                              'register.html',
                              context={
                                  'errmsg': '请勾选协议',
                                  'register_form': register_form
                              })
            # 检查邮箱不能重复
            try:
                user = User.objects.get(email=email)

            except Exception as e:
                user = None
            if user:
                return render(request,
                              'register.html',
                              context={
                                  'errmsg': '邮箱已经被注册',
                                  'register_form': register_form
                              })

            # 创建用户
            user = User.objects.create_user(username=username,
                                            password=pwd,
                                            email=email)
            # 上边的方法会自动将 is_active 改为1 也就是邮箱激活状态, 所以下边需要修改一下
            user.is_active = 0
            user.save()

            # 加密用户信息生成激活token
            serializer = Serializer(SECRET_KEY, 3600)
            info = {'confirm': user.id}
            token = serializer.dumps(info)
            # 获取到的数据是bytes类型的,需要解码
            token = token.decode()

            # 发送邮件
            send_active_email.delay(email, token, user.username)
            return redirect(reverse('user:login'))
        else:
            return render(request,
                          'register.html',
                          context={'register_form': register_form})