예제 #1
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))
    form = RegisterForm()
    if form.validate_on_submit():
        email = form.email.data.lower()
        password = form.password.data
        user = User(email=email, password=password)
        db.session.add(user)
        db.session.commit()
        user.send_verification_email()
        flash(('Welcome. An email verification message '
               'has been sent to {}'.format(email)), 'success')
        login_user(user)
        return redirect(url_for('main.index'))
    return render_template('register.j2', form=form)
예제 #2
0
 def post(self):
     user_info = request.get_json()
     try:
         db.session.add(
             User(username=user_info['username'],
                  role_id=user_info['role_id']))
         db.session.commit()
     except:
         print("User add error")
         db.session.rollback()
         return False
     else:
         print("User add {}".format(user_info['username']))
         return True
     finally:
         db.session.close()
예제 #3
0
def login():
    # form = LoginForm(request.form)
    if request.method == 'POST':
        graph = Graph4Match(current_app.config['NEO4J_IP'],
                            current_app.config['NEO4J_USER'],
                            current_app.config['NEO4J_PASSWORD'])
        user = User().first()
        if user and user.check_password(form.password.data):
            login_user(user, remember=True)
            next = request.args.get('next')
            if not next or not next.startswith('/'):
                next = url_for('web.index')
            return redirect(next)
        else:
            flash('账号不存在或密码错误', category='login_error')
    return render_template('auth/login.html')
예제 #4
0
파일: auth.py 프로젝트: Pyroyster/todoAPI
 def POST(self):
     info = register_reqparser.parse_args()
     status = 0
     data = {}
     user = User.query.filter_by(username=info['username']).first()
     if user is not None:
         status = 1
         message = "username already exits"
     else:
         new_user = User(info['username'])
         new_user.set_password(info['password'])
         db.session.add(new_user)
         db.session.commit()
         message = 'register succeed'
         data = {'user_id': new_user.id, 'username': new_user.username}
     return {'status': status, 'message': message, 'data': data}
예제 #5
0
def create_user():
    """
    创建用户
    """
    log('程序执行创建添加会员')
    for i in range(1, 13):
        n = str(i)
        form = dict(name='User' + n,
                    pwd=n.zfill(3),
                    email='9824924' + n.zfill(2) + '@qq.com',
                    phone='139287391' + n.zfill(2),
                    info='我是User' + n,
                    face=n.zfill(4) + '.png')
        user = User(form)
        log('u', user)
        user.save()
예제 #6
0
    def test_create_admin_test_login(self):
        # Inserting admin into DB
        admin_hash_password = bcrypt.generate_password_hash('toor')

        admin = User(public_id=str(uuid.uuid4()), first_name='John', last_name='Doe', username='******', company='IWS', active=True, email_address='*****@*****.**', password=admin_hash_password)

        admin_role = Role(name='admin', description="Administrator to manage clients, feature requests and message to clients.", user=admin)

        db.session.add(admin)
        db.session.add(admin_role)
        db.session.commit()

        # Testing admin authentication
        response = self.auth_user(admin.username, 'toor')
        data = json.loads(response.data.decode('utf8'))
        self.assertEqual(data['message'], 'Successfully login')
예제 #7
0
def register():
    """
    用户注册
    注册视图函数,使用form验证层
    注册成功后跳转到登录页面,使用redirect重定向
    :return:
    """
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User()
        user.set_attrs(form.data)
        db.session.add(user)
        db.session.commit()
        return redirect(url_for('web.login'))
        # user.password = generate_password_hash(form.password.data)  使密码加密的笨方法
    return render_template('auth/register.html', form=form)
예제 #8
0
def test_token_gets_saved(test_client, api_headers):
    password = "******"
    user = User(email="*****@*****.**",
                password=password,
                first_name="Max",
                last_name="Muster")
    insert_user(user)

    data = {"email": user.email, "password": password}

    test_client.post("/tokens", headers=api_headers, data=json.dumps(data))

    tokens = get_user_tokens(user.email)
    assert len(tokens) == 2
    assert tokens[0].revoked is False
    assert tokens[1].revoked is False
예제 #9
0
 def decorator(*args, **kwargs):
     token = request.headers.get('_token')
     decoded_token = decode(token, jwt_secret())
     current_user = User(**decoded_token)
     if current_user.rol in decorator_args:
         return function(*args, **kwargs)
     else:
         return jsonify({
             'response': {
                 'system_message': 'El usuario no tiene permisos',
                 'api_response': {
                     'error': 'El usuario no tiene permisos'
                 },
                 'status_code': 403
             }
         })
예제 #10
0
 def create(cls, query: dict, session: dict) -> User:
     """
     Business method to create an user.
     """
     assert isinstance(session, dict)
     CreateUserQueryValidation.validate(query)
     try:
         cls.get_by_username(query[cls.USERNAME])
     except UserNotFoundException:
         new_user = User()
         new_user.username = query[cls.USERNAME]
         new_user.password = Hash.obfuscate(query[cls.PASSWORD])
         new_user.save()
     else:
         raise UsernameAlreadyTakenException()
     return new_user
예제 #11
0
def register_user(username, email, password, role):
    """ Register New User """
    try:
        u = User()
        u.username = username
        u.email = email
        u.set_password(password)
        u.set_slug(username)
        u.role = Role.objects.get(name=role.upper())
        u.save()

    except Exception as exp:
        print(exp)
    else:
        print(u.__repr__())
        del u
    def safe_user(self):
        from app.api.helpers.permission_manager import require_current_user
        from app.models.user import User

        if not self.user_id:
            return None
        can_access = require_current_user() and (
            current_user.is_staff or current_user.id == self.user_id)
        if not self.user.is_profile_public and not can_access:
            name = self.user.anonymous_name
            return User(
                id=self.user.id,
                email='*****@*****.**',
                public_name=name,
            )
        return self.user
예제 #13
0
    def create(self, db: Session, *, obj_in: UserCreate) -> User:
        # user = self.get_by_email(db, email=obj_in.email)
        # if not user:
        #     return None
    
        db_obj = User(
            email=obj_in.email,
            hashed_password=get_password_hash(obj_in.password),
            full_name=obj_in.full_name,
            is_superuser=obj_in.is_superuser,
        )

        db.add(db_obj)
        db.commit()
        db.refresh(db_obj)
        return db_obj
예제 #14
0
파일: auth.py 프로젝트: maiya90/spare
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        # user = User() #将数据库表模型Use实例化
        # user.set_attrs(form.data)  #调用model基类模型Base方法 form.data包含客户端提交来的参数
        # db.session.add(user)
        # db.session.commit()
        with db.auto_db_commit():
            user = User()
            user.set_attrs(form.data)
            db.session.add(user)
        return redirect(url_for('web.login'))

        #user.nickname = form.nickname.data
        #user.email = form.email.data
    return render_template('auth/register.html', form=form)
예제 #15
0
    def test_routes_user_all_get_fail(self):
        """
        Testing the get method from API creating new register after getting the response from the API to make sure it
        isn't the same.
        """
        with app.app.app_context():
            # Getting response from the API
            api_response = app.routes.UserAll.get(self.userAll)
            # Assigning API response relevant fields to an instance of the object
            response = ApiResponseMock(api_response)
            User(name='user5', email='*****@*****.**', password=password_encrypt.hash_password('user5pass')).save()
            # Creating expected response object.
            expected = ExpectedResponse(200, jsonify(User.objects.all()).data.decode())

            self.assertNotEqual(expected.data, response.data)
            self.assertEqual(expected.status_code, response.status_code)
예제 #16
0
def register_user(registration_data) -> User:
    registration_data = dict(registration_data)
    user = User(
        login=registration_data['login']
    )
    user.set_password(registration_data['password'])
    del registration_data['login']
    del registration_data['password']
    profile = Profile(user=user, **registration_data)
    user.save()
    try:
        profile.save()
    except:
        user.delete()
        raise
    return user
예제 #17
0
    def create_user(userdata, is_verified=False):
        user = User(email=userdata[0],
                    password=userdata[1],
                    is_verified=is_verified)
        # we hash the users password to avoid saving it as plaintext in the db,
        # remove to use plain text:
        salt = generate_random_salt()
        user.password = generate_password_hash(user.password, salt)
        hash = random.getrandbits(128)
        user.reset_password = str(hash)

        user.salt = salt
        save_to_db(user, "User created")
        record_activity('create_user', user=user)

        return user
예제 #18
0
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        with db.auto_commit():
            user = User()
            # 不一个一个赋值,如何简化? 利用python动态语言的特性
            user.set_attrs(form.data)
            # 将模型存入到数据库中,session是什么
            db.session.add(user)
            # 错误在form的error下

            # 跳转到其他视图函数,这是一次重定向
            return redirect(url_for('web.login'))

    # 如果想要提交后保存用户的提交信息,要把form重新传进去
    return render_template('auth/register.html', form=form)
예제 #19
0
파일: routes.py 프로젝트: samsimsom/PYTHON
def register():

    if current_user.is_authenticated:
        return redirect(url_for('main.index'))

    form = RegistrationForm()

    if form.validate_on_submit():
        user = User(username=form.username.data, email=form.email.data)
        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('auth.login'))

    return render_template('auth/register.html', form=form)
예제 #20
0
def register():
    form = RegisterationForm(request.form)

    if request.method == 'POST' and form.validate():
        username = request.form['username']
        password = request.form['password']
        nickname = request.form['nickname']

        #users = User(nickname=nickname, username=username, password=generate_password_hash(password))
        users = User(nickname=nickname, username=username, password=password)
        db.session.add(users)
        db.session.commit()
        flash('성공')
        return redirect(url_for('login'))

    return render_template('user/register.html', form=form)
예제 #21
0
파일: auth.py 프로젝트: xiaofanzhi/Fisher
def register():
    # 通过request.form 拿到用户post 提交的表单信息 还需要作校验

    # 验证form
    # 错误信息在form.error
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        with db.auto_commit():
            user = User()
            # 用动态方法不需要一个个赋值
            user.set_attrs(form.data)
            # user.nickname = form.nickname.dataGift
            db.session.add(user)
        # db.session.commit()
        return redirect(url_for('web.login'))
    return render_template('auth/register.html', form=form)
예제 #22
0
    def login(self, user, mocker=None, service=None):
        # Skipping authentication here and just log them in
        model_user = User(user)
        with self.session_transaction() as session:
            session['current_session_id'] = model_user.current_session_id
            session['user_id'] = model_user.id
        if mocker:
            mocker.patch('app.user_api_client.get_user', return_value=user)
        if mocker and service:
            with self.session_transaction() as session:
                session['service_id'] = service['id']
            mocker.patch('app.service_api_client.get_service',
                         return_value={'data': service})

        with patch('app.events_api_client.create_event'):
            login_user(model_user)
예제 #23
0
def change_bio():
    if not 'signed_user' in session:
        return json.dumps({
            'answer': False,
            'details': 'You are not signed in'
        })

    form = BioForm()

    text = form.text.data

    res = User().change_bio(session['signed_user'], text)

    if not res:
        return json.dumps({'answer': False, 'details': 'Set bio error'})
    return json.dumps({'answer': True})
예제 #24
0
def signup_post():
    email = request.form.get('email')
    name = request.form.get('name')
    password = request.form.get('password')
    lastname = request.form.get('lastname')
    telephone = request.form.get('telephone')
    profession = request.form.get('profession')
    if email is None or password is None:
            abort(400) # missing arguments
    if User.query.filter_by(email = email).first() is not None:
            abort(400) # existing user
    user = User(email = email, name = name, lastname = lastname, telephone = telephone, profession = profession)
    user.hash_password(password)
    db.session.add(user)
    db.session.commit()
    return redirect(url_for('index'))
예제 #25
0
파일: auth.py 프로젝트: JJ810/React_Flask
def signup():
    if current_user.is_authenticated():
        return redirect('/user')

    form = SignupForm()

    if request.method == 'POST' and form.validate_on_submit():
        user = User(form.username.data, form.email.data, form.password.data)
        db.session.add(user)
        db.session.commit()

        login_user(user, remember=True)

        return redirect(request.args.get('next') or '/user')

    return render_template('signup.html', form=form)
예제 #26
0
    def create(self, request_body, as_string=False):
        response = {}
        try:
            post_handler_validator = UserPostRequestHandlerValidator()
            post_handler_validator.validate(request_body)
            if post_handler_validator.has_errors():
                response = AppAPI.Error(
                    post_handler_validator.error_messages).json_object()
            else:
                user = User(request_body)
                user.id = str(self.user_factory.insert(user))

                response = {UsersAPIHandler.Constants.UserKey: user.to_json()}

        except Exception, e:
            response = AppAPI.Error([str(e)]).json_object()
예제 #27
0
def users(count=20):
    i = 0
    while i < count:
        u = User(email=fake.email(),
                 username=fake.user_name(),
                 phone_number=fake.phone_number(),
                 password='******',
                 confirmed=True,
                 name=fake.name(),
                 location=fake.city(),
                 about_me=fake.text(20),
                 create_time=fake.past_date(),
                 last_seen=fake.past_date())
        db.session.add(u)
        i += 1
    db.session.commit()
예제 #28
0
파일: auth.py 프로젝트: vickisy/flask
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User()
        user.set_attrs(form.data)
        db.session.add(user)
        db.session.commit()
        # token = user.generate_confirmation_token()
        # send_email(user.email, 'Confirm Your Account',
        #            'email/confirm', user=user, token=token)
        login_user(user, False)
        # flash('一封激活邮件已发送至您的邮箱,请快完成验证', 'confirm')
        # 由于发送的是ajax请求,所以redirect是无效的
        # return render_template('index.html')
        return redirect(url_for('web.index'))
    return render_template('auth/register.html', form=form)
def test_on_user_logged_in_calls_events_api(app_, api_user_active,
                                            mock_events):

    with app_.test_request_context():
        on_user_logged_in(app_, User(api_user_active))
        mock_events.assert_called_with(
            'sucessful_login', {
                'browser_fingerprint': {
                    'browser': ANY,
                    'version': ANY,
                    'platform': ANY,
                    'user_agent_string': ''
                },
                'ip_address': ANY,
                'user_id': str(api_user_active['id'])
            })
예제 #30
0
def login():
    response = {'code': 200, 'msg': '登录成功', 'data': {}}
    request_value = request.values
    code = request_value['code'] if 'code' in request_value else ''
    if not code or len(code) < 1:
        response['code'] = -1
        response['msg'] = '登录失败, 未得到code凭证'
        return jsonify(response)

    # spider = LoginSpider()   # spider is loaded with openid
    # spider.get_openid(code)
    # result = UserBind.in_table(spider.openID)  # result is a record
    Test_openid = '119'
    result = UserBind.in_table(Test_openid)

    if result:  # user's openid has been bound
        # login procedure
        login_user(result.user, remember=True)
        response['data'] = {
            'gender': result.user.gender,
            'nickName': result.user.nickname,
            'id': result.user.id,
            'avatarUrl': result.user.avatarUrl
        }
    else:  # register procedure
        with db.auto_commit():
            user = User()
            user.nickname = request_value['nickName']
            user.gender = request_value['gender']
            user.avatarUrl = request_value['avatarUrl']
            db.session.add(user)
        with db.auto_commit():
            user_bind = UserBind()
            #user_bind.openid = spider.openID          ################
            user_bind.openid = Test_openid
            user_bind.user = user
            # Mind this statement, not sure if it can work
            db.session.add(user_bind)

        login_user(user, remember=True)
        response['data'] = {  # response after the register procedure
            'gender': user.gender,
            'nickName': user.nickname,
            'id': user.id,
            'avatarUrl': user.avatarUrl
        }
    return jsonify(response)