Exemple #1
0
def app_client(sample_app: Flask):

    with sample_app.test_request_context():

        sample_app.db.create_all()
        session = sample_app.db.session

        for user in populate_users:
            new_user = UserModel(
                nickname=user["nickname"],
                first_name=user["first_name"],
                last_name=user["last_name"],
                email=user["email"],
                password=user["password"],
                biography=user["biography"],
            )

            session.add(new_user)
            session.commit()

        session.close()

    yield sample_app.test_client()

    with sample_app.test_request_context():
        all_users = session.query(UserModel).paginate().items

        for user in all_users:
            session.delete(user)
            session.commit()

        session.close()
        sample_app.db.drop_all()
Exemple #2
0
def login():
    login_form = LoginForm()
    context = {'login_form': login_form}

    if login_form.validate_on_submit():
        username = login_form.username.data
        password = login_form.password.data

        user_doc = get_user(username)

        if user_doc.to_dict() is not None:
            password_from_db = user_doc.to_dict()['password']

            if password == password_from_db:
                user_data = UserData(username, password)
                user = UserModel(user_data)

                login_user(user)
                flash('Bienvenido de nuevo')

                redirect(url_for('hello'))
            else:
                flash('La informacion no coincide')
        else:
            flash('El usuario no existe')

        return redirect(url_for('index'))

    return render_template('login.html', **context)
Exemple #3
0
def register(request):
    method = request.method
    if method == "GET":  #展示注册界面
        return render(request, "user/user_register.html")

    elif method == "POST":  #处理注册请求
        #  获取数据
        postParam = request.POST
        username = postParam.get("username")
        password = postParam.get("password")
        email = postParam.get("email")
        imgFile = request.FILES.get("imgFile")

        # 保存到数据库中
        userModel = UserModel()
        userModel.u_name = username
        # userModel.u_passwd = pass
        # print(password)
        userModel.u_passwd = password
        userModel.u_mail = email
        userModel.u_img = imgFile

        userModel.save()

        # 重定向到登录界面
        # return  HttpResponse("注册成功")
        return redirect(reverse("axf:login"))
Exemple #4
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    login_form = LoginForm()
    context = {
        'login_form': login_form,
    }
    if login_form.validate_on_submit():
        username = login_form.username.data
        password = login_form.password.data
        user_doc = get_user(username)
        if user_doc.to_dict() is not None:
            db_password = user_doc.to_dict()['password']
            if check_password_hash(db_password, password):
                user_data = UserData(username, password)
                user_model = UserModel(user_data)
                login_user(user_model)
                flash(f'Login Correcto!!!', 'success')
                return redirect(url_for('hello'))
            else:
                flash(f'La informacion no coincide!!!', 'danger')
        else:
            flash(f'Usuario no encontrado!!!', 'danger')
        return redirect(url_for('index'))
    return render_template('login.html', **context)
Exemple #5
0
def signup():
    sign_form = loginForm()
    context = {
        'form': sign_form
    }

    if sign_form.validate_on_submit():
        username = sign_form.username.data
        password = sign_form.password.data

        user_doc = get_user_by_id(username)

        if user_doc.to_dict() is None:
            pass_hash = generate_password_hash(password)
            user_data = UserData(username, pass_hash)
            insert_user(user_data)

            user = UserModel(user_data)
            login_user(user)

            flash('Usuario creado correctamente', 'success')
            return redirect(url_for('hello'))
        else:
            flash('El usuario ya existe', 'warning')

    return render_template('signup.html', **context)
def signup():
    signup_form = LoginForm()

    context = {'signup_form': signup_form}

    #POST: buscamos al usuario si es que existe, ya es usuario, si no, lo creamos
    if signup_form.validate_on_submit():
        username = signup_form.username.data
        password = signup_form.password.data

        #vamos a buscar ese usuario en nuestra BD
        user_doc = get_user(username)
        if user_doc.to_dict() is None:
            #generamos un password hash del password que nos envia el usuario
            password_hash = generate_password_hash(password)
            #creamos una nueva instancia de user_data
            user_data = UserData(username, password_hash)

            #creamos una funcion desde firestore_service para que persista el dato del usuario
            user_put(user_data)
            #ya que creamos un nuevo usuario en la base de datos, creamos un usermodel para poder logearlo en la sesion
            user = UserModel(user_data)
            login_user(user)
            flash('Bienvenido')

            return redirect(url_for('hello'))

        else:
            flash('El usuario ya existe')
    return render_template('signup.html', **context)
Exemple #7
0
def login():
    login_form = LoginForm()
    context = {'login_form': login_form}

    if login_form.validate_on_submit():
        username = login_form.username.data
        password = login_form.password.data

        user_doc = get_user(username)

        if user_doc[0] is not None:
            password_from_db = user_doc[1]

            if password == password_from_db:
                user_data = UserData(username, password)
                user = UserModel(user_data)
                login_user(user)
                flash('Welcome again')
                redirect(url_for('hello'))
            else:
                flash('The information dont match')
        else:
            flash('The user doesnt exists')

        return redirect(url_for('index'))

    return render_template('login.html', **context)
Exemple #8
0
def signup():
    signup_form = SignupForm()

    if signup_form.validate_on_submit():
        email = signup_form.email.data
        password = signup_form.password.data

        user_doc = get_user(email).to_dict()
        if user_doc is None:
            password_hash = generate_password_hash(password)
            user_data = UserData(email, password_hash)

            user_put(user_data)

            user = UserModel(user_data)
            login_user(user)

            flash('Welcome to our app', 'success')

            return redirect(url_for('panel'))
        else:
            signup_form.email.errors.append('User already exists')

    context = {
        'signup_form': signup_form,
    }

    return render_template('signup.html', **context)
Exemple #9
0
def login():
    """Login view"""

    login_form = LoginForm()

    context = {
        'login_form': login_form
    }

    if login_form.validate_on_submit():
        username = login_form.username.data
        password = login_form.password.data
        user_doc = get_user(username)

        if user_doc.to_dict() is not None:
            password_from_db = user_doc.to_dict()['password']
            if password_from_db == password:
                user_data = UserData(username, password)
                user = UserModel(user_data)

                login_user(user)
                flash('Welcome aboard')
                redirect(url_for('hello'))
            else:
                flash('password incorrect')
        else:
            flash('User does not exist!')
        return redirect(url_for('index'))
    return render_template('login.html', **context)
Exemple #10
0
def signup():
    signup_form = LoginForm()
    context = {
        'signup_form': signup_form,
    }

    if signup_form.validate_on_submit():
        username = signup_form.username.data
        password = signup_form.password.data

        user_doc = get_user(username)

        if user_doc.to_dict() is None:
            password_hash = generate_password_hash(password)

            user_data = UserData(username, password_hash)

            # create user in the data base
            create_user(user_data)

            # login user in the app
            user = UserModel(user_data)
            login_user(user)

            flash('Welcome')

            return redirect(url_for('hello'))
        else:
            flash('This user already exists')

    return render_template('signup.html', **context)
Exemple #11
0
def login():
    login_form = LoginForm()

    if login_form.validate_on_submit():
        email = login_form.email.data
        password = login_form.password.data

        user_doc = get_user(email).to_dict()
        if user_doc is not None:
            if check_password_hash(user_doc['password'], password):
                user_data = UserData(email, password)
                user = UserModel(user_data)

                login_user(user)

                flash('Login successful', 'success')

                return redirect(url_for('index'))
            else:
                login_form.email.errors.append('Invalid Username/password')
        else:
            login_form.email.errors.append('User not found')

    context = {
        'login_form': login_form,
    }

    return render_template('login.html', **context)
Exemple #12
0
def login():
    login_form = LoginForm()
    context = {
        'login_form': LoginForm(),
    }

    if login_form.validate_on_submit():
        username = login_form.username.data
        password = login_form.password.data

        # Get user from database
        user_doc = get_user(username)

        if user_doc.to_dict() is not None:
            # Getting password from DB
            password_from_db = user_doc.to_dict()['password']

            # Check is password is correct
            if check_password_hash(password_from_db, password):
                user_data = UserData(username, password)
                user = UserModel(user_data)

                login_user(user)

                flash('Welcome back')

                redirect(url_for('hello'))
            else:  # wrong password
                flash('Wrong password')
        else:  # User not found
            flash('User doesn\'t exists')

        return redirect(url_for('index'))

    return render_template('login.html', **context)
Exemple #13
0
    def post(self):
        data = parser.parse_args()

        if UserModel.find_by_username(data['username']):
            return {
                'message': 'User {} already exists'.format(data['username'])
            }

        new_user = UserModel(username=data['username'],
                             email=data['email'],
                             fullname=data['fullname'],
                             password=UserModel.generate_hash(
                                 data['password']))

        try:
            new_user.save_to_db()
            access_token = create_access_token(identity=data['username'])
            refresh_token = create_refresh_token(identity=data['username'])
            return {
                'message': 'User {} was created'.format(data['username']),
                'access_token': access_token,
                'refresh_token': refresh_token
            }
        except:
            return {'message': 'Something went wrong'}, 500
Exemple #14
0
def register(request):
    method = request.method
    if method == "GET":  #请求注册页面
        return render(request, "user/user_register.html")
    elif method == "POST":  #执行注册
        #         现获取到上传的数据
        username = request.POST.get("username")
        password = request.POST.get("password")
        email = request.POST.get("email")
        icon = request.FILES["icon"]

        # print(username)
        # print(password)
        # print(email)
        # print(icon)

        # 保存到数据库
        userModel = UserModel()
        userModel.username = username
        userModel.password = createPwd(password)
        userModel.email = email
        userModel.icon = icon

        # 保存
        userModel.save()

        # 设置session,存储userid
        request.session["user_id"] = userModel.id

        return redirect(reverse("axf:mine"))
Exemple #15
0
def login():
    login_form = LoginForm()
    context = {
        'login_form': login_form
    }

    if login_form.validate_on_submit():
        username = login_form.username.data
        password = login_form.password.data
        user_doc = get_user(username)
        
        
        if user_doc.to_dict() is not None:
            #password_from_db = user_doc.to_dict()['password']

            if check_password_hash(user_doc.to_dict()['password'], password):
                user_data = UserData(username, password)
                user = UserModel(user_data)
                print(f'-user: {user}')
                status=login_user(user)
               
                redirect(url_for('hello'))
            else:
                flash('La información no coincide')
        else:
          flash('El usario no existe')
        return redirect(url_for('index'))

    return render_template('login.html', **context)
Exemple #16
0
def login():
    login_form = LoginForm()
    context = {'login_form': login_form}

    if login_form.validate_on_submit():
        username = login_form.username.data
        password = login_form.password.data
        user_doc = get_user(username)

        if user_doc.to_dict() is not None:
            password_from_db = user_doc.to_dict()['password']

            if check_password_hash(password_from_db, password):
                user_data = UserData(username, password)
                user = UserModel(user_data)
                login_user(user)
                flash('Welcome Back')
                redirect(url_for('hello'))
            else:
                flash('Data does not match')
        else:
            flash('User does not exist')

        return redirect(url_for('index'))

    return render_template('login.html', **context)
def login():
    #Para mandar un submit, hay que agregarlo al contexto
    login_form = LoginForm()
    # La funcion debe retornar 200 y la app debe tener incluido el Blueprint
    context = {'login_form': LoginForm()}

    if login_form.validate_on_submit():
        #validemos que el usuario esta en la base de datos
        #Si la forma es valida, obtenemos el username y password
        username = login_form.username.data  #es ua instancia de StringField
        password = login_form.password.data

        user_doc = get_user(username)

        if user_doc.to_dict() is not None:
            password_from_db = user_doc.to_dict()['password']

            if password == password_from_db:
                user_data = UserData(username, password)
                user = UserModel(user_data)

                login_user(user)

                flash('Bienvenido de nuevo')

                redirect(url_for('hello'))
            else:
                flash('La información no coincide')
        else:
            flash('El usuario no existe')
        #como ya obtenemos el username, lo guardamos en la sesion
        #para desplegar el username
        return redirect(url_for('index'))
    return render_template('login.html',
                           **context)  # se envia el contexto expandido
Exemple #18
0
def login():
    login_form = Login_Form()
    context = {'login_form': login_form}

    if request.method == 'POST':
        username = login_form.username.data
        password = login_form.password.data
        user_doc = get_user(username)

        if user_doc.to_dict():
            if check_password_hash(user_doc.to_dict()['password'], password):
                email = user_doc.to_dict()['email']
                user_data = UserData(username, password, email)
                user = UserModel(user_data)

                login_user(user)
                flash('Welcome again!', 'success')
                redirect(url_for('hello'))
            else:
                flash('Username or password is incorrect', 'danger')
        else:
            flash('Username not found', 'danger')

        return redirect(url_for('hello'))

    return render_template('auth/login.html', **context)
Exemple #19
0
def signup():
    signup_form = loginForm()
    context = {
        'signup_form': signup_form,
    }

    if signup_form.validate_on_submit():
        username = signup_form.username.data
        password = signup_form.password.data
        print(signup_form.submit.data)

        user_document = get_user(username)

        if user_document.to_dict() is None:
            password_hash = generate_password_hash(password)
            #password_db = user_document.to_dict().get('password')
            user_data = UserData(username, password_hash)
            put_user(user_data)
            user_model = UserModel(user_data)
            login_user(user_model)

            flash('Bienvenido !!!')
            redirect((url_for('hello')))
        else:
            flash('El usuario ya existe !')

        #session['username'] = username
        #flash('Registro exitoso')

        return redirect(url_for('index'))

    return render_template('signup.html', **context)
    def test_create_user(self):
        user = UserModel(username='******', email='*****@*****.**')
        user.password = '******'

        self.assertEqual(user.username, 'testusername', "error try again")
        self.assertTrue(user.verify_password('testpassword'),
                        "error try again")
Exemple #21
0
def signup():
    signup_form = LoginForm()
    context = {'signup_form': signup_form}

    if signup_form.validate_on_submit():
        username = signup_form.username.data
        password = signup_form.password.data

        user_doc = get_user(username)

        if not user_doc.to_dict():
            password_hash = generate_password_hash(password)
            user_data = UserData(username, password_hash)
            user_put(user_data)

            user = UserModel(user_data)
            login_user(user)

            flash('Bienvenido!!')
            return redirect(url_for('hello'))

        else:
            flash('El usuario ya existe')

    return render_template('signup.html', **context)
Exemple #22
0
def login():
    login_form = LoginForm()

    context = {'login_form': login_form}

    if login_form.validate_on_submit():
        username = login_form.username.data
        password = login_form.password.data

        user_doc = get_user(user_id=username)

        if user_doc.to_dict() is not None:
            password_from_db = user_doc.to_dict()['password']

            if check_password_hash(password_from_db, password):
                user_Data = UserData(username, password)
                user = UserModel(user_Data)

                login_user(user)

                return redirect(url_for("hello"))
            else:
                flash("La información no coincide")

        else:
            flash("Usuario no existe")

        return redirect(url_for('index'))

    return render_template('login.html', **context)
Exemple #23
0
def login():
    login_form = loginForm()
    context = {
        'form': login_form
    }

    if login_form.validate_on_submit():
        username = login_form.username.data
        password = login_form.password.data

        user_doc = get_user_by_id(username)

        if user_doc.to_dict() is not None:
            password_from_db = user_doc.to_dict()['password']
            if check_password_hash(password_from_db, password):
                user_data = UserData(username, password)
                user = UserModel(user_data)
                login_user(user)
                flash('Bienvenido de nuevo', 'success')
                redirect(url_for('hello'))
            else:
                flash('Usuario y/o contrasena incorrectos', 'warning')
        return redirect(url_for('index'))

    return render_template('login.html', **context)
Exemple #24
0
 def register(self):
     headline("Pendaftaran Pelanggan")
     first_name = input("Masukkan nama depan: ")
     last_name = input("Masukkan nama belakang: ")
     username = input("Masukkan username: "******"Masukkan password: "******"Masukkan email: ")
     phone = input("Masukkan phone: ")
     address = input("Masukkan address: ")
     gender = input("Masukkan gender (L/P): ")
     try:
         UserModel().add_user(
             first_name=first_name,
             last_name=last_name,
             username=username,
             password=password,
             email=email,
             phone=phone,
             address=address,
             gender=gender,
             is_admin=0,
         )
     except Exception as err:
         return print(err)
     input("Berhasil daftar, Tekan Enter login.")
     self.login()
Exemple #25
0
    def post(self):
        current_app.logger.info(f'Received POST on users')

        gov_id = request.form.get('gov_id')
        first_name = request.form.get('first_name')
        last_name = request.form.get('last_name')
        email = request.form.get('email')
        ethereum_id = request.form.get('ethereum_id')
        password = request.form.get('password')
        role_id = request.form.get('role_id')

        user = UserModel(gov_id=gov_id,
                         first_name=first_name,
                         last_name=last_name,
                         email=email,
                         ethereum_id=ethereum_id,
                         password=password,
                         role_id=role_id)

        try:
            db.session.add(user)
            db.session.commit()
        except exc.IntegrityError as e:
            current_app.logger.error(e.orig)
            db.session.rollback()
            return dict(
                error=f'There was an error creating the user:{e.orig}'), 400

        return dict(user=user.to_dict()), 201
Exemple #26
0
def login():

    form = Login()


    if current_user.is_authenticated:
        return redirect(url_for('home'))

    if form.validate_on_submit():

        email = form.email.data 
        password = form.password.data    

        user_doc = get_user(email)

        if user_doc.to_dict() is not None:
            password_from_db = user_doc.to_dict()['password']
            if check_password_hash(password_from_db, password):

                user_data = UserData(user_doc.to_dict()['name'], email, password)
                
                user = UserModel(user_data)

                login_user(user)

                flash(u'Bienvenido de nuevo!', 'success')
                return redirect(url_for('home'))
            else:
                flash('Información no validad', 'error')
        else:
            flash('El usuario no existe!', 'error')
        
        return redirect(url_for('auth.login'))

    return render_template('login.html', form=form)
Exemple #27
0
def register():
    error = None
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = RegistrationForm()
    if form.validate_on_submit():
        user = UserModel(first_name=form.first_name.data,
                         email=form.email.data)
        user.username = user.email
        if len(form.password.data) < 8:
            error = 'Make sure your password is at least 8 letters'
            flash('Invalid password.', 'error')
        elif re.search('[0-9]', form.password.data) is None:
            error = 'Make sure your password has a number in it'
        elif re.search('[A-Z]', form.password.data) is None:
            error = 'Make sure your password has a capital letter in it'
        else:
            user.set_password(form.password.data)
            db.session.add(user)
            db.session.commit()
            flash('Congratulations, you are now a registered user!')
            return redirect(url_for('login'))
    flash('Invalid password.', 'error')
    #return redirect(url_for('register'))
    return render_template('register.html',
                           title='Register',
                           form=form,
                           error=error)
Exemple #28
0
def register(request):
    if request.method == 'GET':
        return render(request, 'user/user_register.html')
    elif request.method == 'POST':
        username = request.POST.get('username')
        password = make_password(request.POST.get('password'))

        users = UserModel.objects.filter(username=username)

        if users.exists():
            return HttpResponse("此用户已经存在")

        email = request.POST.get('email')
        icon = request.FILES["icon"]

        user = UserModel()
        user.username = username
        user.password = password
        user.mail = email
        user.icon = icon

        user.save()

        request.session['user_id'] = user.id

        return redirect(reverse('app:mine'))
Exemple #29
0
def login():
    """
    Exchange Google's authorization code for an access token
    :return:
    """

    # Only accept Google authorization at this time
    if request.args.get('provider') != 'google':
        return send_error('Invalid provider', status_code=400)

    code = request.get_json()['code']
    access_token_data = {}

    if code is None:
        raise ValidationError('Authorization code is missing.')

    try:
        # Upgrade the authorization code into a credentials object
        oauth_flow = flow_from_clientsecrets(CLIENT_SECRET_FILE, scope='')
        oauth_flow.redirect_uri = 'postmessage'
        credentials = oauth_flow.step2_exchange(code)
    except Exception as e:

        raise ValidationError('Can\'t use authorization code to exchange for access token')

    gplus_id = credentials.id_token['sub']
    access_token_data['gplus_id'] = gplus_id

    # Get user info
    user_info_url = 'https://www.googleapis.com/oauth2/v1/userinfo'
    params = {'access_token': credentials.access_token, 'alt': 'json'}
    response = requests.get(user_info_url, params=params)
    data = json.loads(response.text)

    oauth = OpenAuthenticationModel.find(data['id'], 'google')

    if oauth is not None:
        user = UserModel.find(user_id=oauth.user_id)

        access_token_data['id'] = user.id
        access_token_data['type'] = oauth.type

    else:

        # Create user and provider_info
        new_user = UserModel(username=data['email'])
        db.session.add(new_user)
        db.session.commit()

        new_oauth = OpenAuthenticationModel(id=data['id'], user_id=new_user.id, type='google')
        db.session.add(new_oauth)
        db.session.commit()

        access_token_data['id'] = new_user.id
        access_token_data['type'] = new_oauth.type

    access_token = jwt.encode(access_token_data, config.JWT_SECRET_KEY, algorithm='HS256')

    return send_success(access_token.decode('utf-8'))
Exemple #30
0
    def test_create_category(self):
        user = UserModel(username='******', password='******')

        category = CategoryModel(name='categoryname', user=user)

        self.assertEqual(
            category.name, 'categoryname',
            "The name of the category after creation in wrong!!.")