コード例 #1
0
ファイル: new_user_test.py プロジェクト: mhk8/ticket-and-game
 def setUp(self):
     super().setUp()
     user1 = User (
         oauth_id="password",
         name="test",
         username="******",
         email="*****@*****.**"
     )
     user2 = User (
         oauth_id="google",
         name="test",
         email="*****@*****.**"
     )
     with self.app.app_context():
         db.session.add(user1)
         db.session.add(user2)
         db.session.commit()
     self.success_test_params_user = [
     {
         KEY_INPUT: {KEY_USER: "******"},
         KEY_EXPECTED: {
             KEY_SUCCESS: False,
             KEY_MESSAGE: "Username already exist. please try another one."
         }
     },
     {
         KEY_INPUT: {KEY_USER: "******"},
         KEY_EXPECTED: {
             KEY_SUCCESS: True,
             KEY_USER_ID: 1
         }
     }]
     self.success_test_params_error = {"error": "Malformed request"}
コード例 #2
0
    def setUp(self):
        super().setUp()
        self.user_id = 1
        self.registration_time = datetime.datetime.utcnow()
        user = User(
            id=self.user_id,
            name="Current user",
            email="*****@*****.**",
            registration_datetime=self.registration_time,
            is_public=False,
        )
        self.other_user_id = 2
        other_user = User(
            id=self.other_user_id,
            name="Other user",
            email="*****@*****.**",
            registration_datetime=self.registration_time,
            is_public=True,
        )
        self.private_user_id = 3
        private_user = User(
            id=self.private_user_id,
            name="Private user",
            email="*****@*****.**",
            registration_datetime=self.registration_time,
            is_public=False,
        )

        with self.app.app_context():
            db.session.add(user)
            db.session.add(other_user)
            db.session.add(private_user)
            db.session.commit()
コード例 #3
0
ファイル: manage.py プロジェクト: gitter-badger/web-template
def seed_db():
    """Seeds the database."""
    from server.tests.utils import JOHN, JOHN_EMAIL, JOHN_PASSWORD
    from server.tests.utils import JANE, JANE_EMAIL, JANE_PASSWORD
    db.session.add(
        User(username=JOHN, email=JOHN_EMAIL, password=JOHN_PASSWORD))
    db.session.add(
        User(username=JANE, email=JANE_EMAIL, password=JANE_PASSWORD))
    db.session.commit()
コード例 #4
0
def register():
    # Check if user is logged in
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))

    # Initialize form object
    form = RegistrationForm()

    # Validate form POST
    if form.validate_on_submit():
        # Hash user password
        hashed_pw = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')

        # Create new user
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=hashed_pw)
        db.session.add(user)
        db.session.commit()

        # User feedback message
        flash('Your account has been created! You are able to log in',
              'success')
        return redirect(url_for('users.login'))

    return render_template('register.html', title='Register', form=form)
コード例 #5
0
ファイル: db_tests.py プロジェクト: tlpss/PA_Webserver
    def test_Feeder_User(self):
        user1 = User(username="******")
        user2 = User(username="******")

        feeder = Feeder()
        feeder.users.append(user1)
        user2.feeders.append(feeder)

        db.session.add(feeder)
        db.session.add(user1)
        db.session.add(user2)

        db.session.commit()

        self.assertTrue(len(feeder.users.all()) == 2)
        self.assertEqual(user1.feeders[0], feeder)
コード例 #6
0
ファイル: auth.py プロジェクト: ptouati/banner-creator
def oauth_callback(social_network_name):
    oauth_dict = oauth_apps[social_network_name]
    oauth_app = oauth_dict['oauth']
    resp = oauth_app.authorized_response()
    if resp is None or isinstance(resp, OAuthException):
        return None
    user_data = oauth_app.get(oauth_dict['fetch_query'],
                              token=(resp['access_token'], '')).data
    user = User.query.filter(((User.social_id == user_data['id'])
                              & (User.social_type == social_network_name))
                             | (User.email == user_data['email'])).first()

    if user is None:
        user_fields = oauth_dict['custom_fields']
        user = User(first_name=user_data[user_fields['first_name']],
                    last_name=user_data[user_fields['last_name']],
                    gender=user_data.get('gender', None),
                    social_id=user_data['id'],
                    email=user_data['email'],
                    role='user',
                    social_type=social_network_name)
        db.session.add(user)
        db.session.commit()
    if user.is_active():
        login_user(user)
    else:
        return render_template('auth/banned.html')
    return redirect(url_for('static', filename='auth_close.html'))
コード例 #7
0
def test_delete_user(test_client, init_database):
    test_user = User(name="dwain_johnson")
    db.session.add(test_user)
    db.session.commit()
    db.session.delete(User.query.filter_by(name="dwain_johnson").first())
    db.session.commit()
    assert (len(User.query.filter_by(name="dwain_johnson").all()) == 0)
コード例 #8
0
 def create_user(kwargs):
     password = kwargs.pop('password')
     accid = kwargs.get("accid")
     name = kwargs.get("name")
     info = request_im(accid, name)  # {'token': , 'name': , 'accid': }
     user = User(**info)
     user.set_password(password)
コード例 #9
0
ファイル: routes.py プロジェクト: nghipq/dcd
def register():
    data = request.json
    try:
        username = data.get("username")
        email = data.get("email")
        phonenumber = data.get("phonenumber")
        try:
            existUsername = User.query.filter_by(username=username).first()
            if existUsername:
                return jsonify(
                    success=False,
                    error="This username is alrealy exist"
                )

            existEmail = User.query.filter_by(email=email).first()
            if existEmail:
                return jsonify(
                    success=False,
                    error="This email is alrealy exist"
                )

            existPhonenumber = User.query.filter_by(username=username).first()
            if existPhonenumber:
                return jsonify(
                    success=False,
                    error="This phonenumber is alrealy exist"
                )
        except:
            pass

        address = data.get("address")

        password = data.get("password")
        confirm_password = data.get("confirm_password")

        if password != confirm_password:
            return jsonify(
                success=False,
                error="password not match"
            )

        newUser = User(username, email, phonenumber, address, password)
        try:
            db.session.add(newUser)
            db.session.commit()

            return jsonify(
                success=True,
            )
        except:
            return jsonify(
                success=False,
                error="cannot register"
            )

    except:
        return jsonify(
            success=False,
            error="cannot register"
        )
コード例 #10
0
def test_multiple_user(client, app):
    fake = Faker()

    for _ in range(2):
        u = User(email=fake.company_email(),
                 password=fake.password(),
                 username=fake.name(),
                 activated=True)
        u.save()

        for _ in range(randrange(1, 10)):
            p = Program(name=fake.name(), code=fake.text(), language="python")
            u.programs.append(p)

        u.save()

    for user in User.objects:
        with app.app_context():
            token = user.create_token()
        res = client.get('/api/users/1.0/programs',
                         headers={'Authorization': 'Bearer {}'.format(token)})
        assert res.status_code == 200
        assert len(user.programs) == len(res.json)

    user1 = User.objects[0]
    user2 = User.objects[1]

    with app.app_context():
        token = user1.create_token()

    res = client.get('/api/users/1.0/programs/{}'.format(user2.programs[0].id),
                     headers={'Authorization': 'Bearer {}'.format(token)})
    assert res.status_code == 404
コード例 #11
0
ファイル: test_tasks.py プロジェクト: matbloch/flask_examples
def test_update_task(test_client, init_database):
    s = db.session

    # create users
    users = []
    for i in range(1, 5):
        users.append(User(name="user_{}".format(i)))

    s.bulk_save_objects(users)
    user_ids = [id for (id, ) in s.query(User.id).all()]
    assert (len(user_ids) == 4)

    task = Task.query.first()
    assert task is not None

    request_content = {
        'name': "test_task_updated",
        'status': 2,
        'users': user_ids,
    }

    response = test_client.patch('/api/tasks/' + str(task.id),
                                 data=json.dumps(request_content),
                                 content_type='application/json')
    assert response.status_code == 200

    updated_task = s.query(Task).filter_by(id=task.id).first()

    assert updated_task is not None
    assert updated_task.name == request_content['name']
    assert updated_task.status == request_content['status']
    assert len(updated_task.users) == 4
コード例 #12
0
ファイル: __init__.py プロジェクト: youenn98/ok
 def make_student(self, n, section=None):
     user = User(email='student{0}@aol.com'.format(n))
     participant = Enrollment(user=user,
                              course=self.course,
                              section=section)
     db.session.add(participant)
     return user
コード例 #13
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)

    with transaction.manager:
        # Create default models

        group = Group(name="group:admin")
        DBSession.add(group)

        user = User(name='Test', password=hash_password('1234'))
        DBSession.add(user)

        new_group_id = int(
            DBSession.query(Group).filter(Group.name == group.name).first().id)

        new_user_id = int(
            DBSession.query(User).filter(User.name == user.name).first().id)

        user_in_group = UserInGroup(user_id=new_user_id, group_id=new_group_id)
        DBSession.add(user_in_group)
コード例 #14
0
def generate_auth_token(server_token,
                        username,
                        name=None,
                        email=None,
                        duration_days=1):
    # Check for a valid server token in the database
    server = Server.query.filter_by(server_token=server_token).first()
    if not server:
        raise InvalidServerToken({"message": "Invalid server token"})

    # Get user from db or create a new one
    user_id = '{}/{}'.format(server.server_id, username)
    user = User.query.filter_by(user_id=user_id).first()
    if not user:
        user = User(user_id=user_id, user_name=name, user_email=email)
        db.session.add(user)
        # Attach the new user to the server
        server.users.append(user)

    auth_token = base64.urlsafe_b64encode(os.urandom(12))
    current_date = dt.datetime.today()
    expiry_date = current_date + dt.timedelta(duration_days)
    access = Access(auth_token=auth_token,
                    creation_date=current_date,
                    expiration_date=expiry_date)
    db.session.add(access)

    # Attach the new token to the user
    user.access.append(access)
    db.session.commit()

    return auth_token, expiry_date
コード例 #15
0
ファイル: auth.py プロジェクト: imfht/flaskapps
def register():
    json_data = request.json
    code = 403
    user = False
    status_text = ''
    try:
        user = User(email=json_data['email'].lower(),
                    password=json_data['password'])
    except Exception as e:
        status_text = str(e)
    if user:
        try:
            db.session.add(user)

            # temporary feature flag
            if app.config['ENABLE_AUTO_SHARE_RULES']:
                for rule in db.session.query(Rule).filter_by(
                        source='gobo', shareable=True).all():
                    user_rule = UserRule(user.id, rule.id)
                    db.session.add(user_rule)

            db.session.commit()
            status_text = 'success'
            code = 200
            login_user(user, remember=True)
        except IntegrityError:
            status_text = 'A user with that e-mail already exist!'
        except Exception as e:
            status_text = "Something went wrong. Reload the page and try again."
            logger.exception(e)
        finally:
            db.session.close()
    return jsonify({'statusText': status_text}), code
コード例 #16
0
def signup():
    logger.debug('begin user registration')

    logger.debug('validating request body')
    body = request.json
    errors.ValidationError.raise_assert(body is not None, 'json missing')
    if 'username' not in body or 'password' not in body:
        raise errors.APIError('username and password required')

    username = body['username'].lower().strip()
    logger.debug('searching for existing user "{}"'.format(username))

    query = db.session.query(User).filter(
        db.func.lower(User.username) == username)
    user = query.first()
    errors.AuthError.raise_assert(user is None, 'user already exists')

    logger.debug('creating new user')
    user = User(username=username,
                display_name=(body.get('display_name') or username))

    logger.debug('setting password')
    user.set_password(body['password'])

    logger.debug('writing to db')
    db.session.add(user)
    db.session.commit()

    return jsonify({'code': 'success'})
コード例 #17
0
def register():
    username = request.json.get('username')
    password = request.json.get('password')
    mail = request.json.get('email')
    user = User.query.filter_by(username=username).first()
    email = User.query.filter_by(email=mail).first()
    if user:
        return jsonify(
            result={
                'message': 'Konto o podanej nazwie użytkownika już istnieje.',
                'category': 'danger'
            })
    if email:
        return jsonify(
            result={
                'message': 'Konto o podanym adresie email już istnieje!',
                'category': 'danger'
            })
    hashed_password = bcrypt.generate_password_hash(password).decode('utf-8')
    newUser = User(username=username,
                   password=hashed_password,
                   email=mail,
                   registered_on=datetime.now())
    token = generate_confirmation_token(newUser.email)
    confirm_url = url_for('auth.confirm_email', token=token, _external=True)
    subject = "Potwierdź swoje konto"
    send_email(newUser.email, subject, confirm_url)
    db.session.add(newUser)
    db.session.commit()
    return jsonify(
        result={
            'message':
            'Rejestracja przebiegła pomyślnie, na podany adres email została wysłana wiadomość z linkiem wymaganym do dokończenia rejestracji.',
            'category': 'succes'
        })
コード例 #18
0
 def test_add_user_duplicate_username(self):
     add_user()
     duplicate_user = User(username=NAME,
                           email='*****@*****.**',
                           password=PASSWORD)
     db.session.add(duplicate_user)
     self.assertRaises(IntegrityError, db.session.commit)
コード例 #19
0
def setup_default():
    admin = User(email="*****@*****.**", is_admin=True)
    db.session.add(admin)
    admin = User(email="*****@*****.**", is_admin=True)
    db.session.add(admin)
    db.session.commit()
    course = Course(offering='cal/cs61a/sp16',
                    institution='UC Berkeley',
                    display_name='CS 61A',
                    active=True)
    db.session.add(course)

    url = 'https://github.com/Cal-CS-61A-Staff/ok-client/releases/download/v1.5.5/ok'
    ok = Version(name='ok-client', current_version='v1.5.4', download_link=url)
    db.session.add(ok)
    db.session.commit()
コード例 #20
0
 def test_add_user_duplicate_email(self):
     add_user()
     duplicate_user = User(username='******',
                           email=EMAIL,
                           password=PASSWORD)
     db.session.add(duplicate_user)
     self.assertRaises(IntegrityError, db.session.commit)
コード例 #21
0
ファイル: views.py プロジェクト: naiaden/auth-manager
 def post(self):
     # get the post data
     post_data = request.get_json()
     # check if user already exists
     user = User.query.filter_by(email=post_data.get('email')).first()
     if not user:
         try:
             user = User(email=post_data.get('email'),
                         password=post_data.get('password'))
             # insert the user
             db.session.add(user)
             db.session.commit()
             # generate the auth token
             auth_token = user.encode_auth_token(user.id)
             responseObject = {
                 'status': 'success',
                 'message': 'Successfully registered.',
                 'auth_token': auth_token.decode()
             }
             return make_response(jsonify(responseObject)), 201
         except Exception as e:
             responseObject = {
                 'status': 'fail',
                 'message': 'Some error occurred. Please try again.'
             }
             return make_response(jsonify(responseObject)), 401
     else:
         responseObject = {
             'status': 'fail',
             'message': 'User already exists. Please Log in.',
         }
         return make_response(jsonify(responseObject)), 202
コード例 #22
0
    def test_user_password(self, client):
        """ Test password hashing and checking """

        admin = User('admin', 'pass')

        assert admin.username == 'admin'
        assert admin.verify_password('pass')
コード例 #23
0
def login():
    if not request.json or not 'username' in request.json or not 'password' in request.json:
        return jsonify({"error": "Invalid request format"}), 404
    else:
        if session.get('logged_in'):
            return jsonify(success=True), 200
        else:
            try:
                # Strip the unicode
                username = str(request.json['username'])
                client = myfitnesspal.Client(username,
                                             request.json['password'])
                clients[username] = client
                session['logged_in'] = True
                session['username'] = username
                print('Querying...')
                if User.query.filter_by(username=username).first():
                    print("Successful login.")
                    return jsonify(success=True), 200
                else:
                    newUser = User(username, request.json['password'])
                    db.session.add(newUser)
                    db.session.commit()
                    print("User created.")
                    return jsonify(success=True), 200
            except ValueError:
                raise InvalidUsage('Invalid Credentials', status_code=401)
コード例 #24
0
 def create(self, validated_data):
     password = validated_data.pop('password')
     user = User(**validated_data)
     user.username = validated_data.get('email')
     user.set_password(password)
     user.save()
     return user
コード例 #25
0
def new_user():
    u = User(
        username="******",
        email="*****@*****.**")
    u.set_password("Password1234567890!")

    return u
コード例 #26
0
ファイル: views.py プロジェクト: adrianplusplus/rest-api
def register():
    # get the post data
    post_data = request.get_json()
    # check if user already exists
    user = User.query.filter_by(email=post_data.get('email')).first()
    if not user:
        user = User(
            email=post_data.get('email'),
            password=post_data.get('password')
        )
        # insert the user
        db.session.add(user)
        db.session.commit()
        # generate the auth token
        auth_token = encode_auth_token(user.id, user.admin)
        responseObject = {
            'status': 'success',
            'message': 'Successfully registered.',
            'auth_token': auth_token.decode(),
            'token_max_age': app.config.get('JWT_MAX_AGE')
        }
        return make_response(jsonify(responseObject)), \
            html_codes.HTTP_OK_CREATED
    else:
        raise InvalidAPIUsage(
            message='User already exists. Please Log in.',
            status_code=html_codes.HTTP_BAD_FORBIDDEN
        )
コード例 #27
0
ファイル: db_tests.py プロジェクト: tlpss/PA_Webserver
    def test_Feederusage(self):
        user1 = User(username="******")
        feeder = Feeder()
        #feeder.users.append(user1)

        moment1 = FeedMoment(amount=2, Feeder=feeder)
        moment1.setFeedTime(5, 12)

        moment2 = FeedMoment(amount=3, Feeder=feeder)
        moment2.setFeedTime(14, 15)

        db.session.add(feeder)
        db.session.add(moment1)
        db.session.add(moment2)
        db.session.commit()
        #print(feeder.get_lastupdate())
        self.assertEqual(moment2.last_updated,
                         feeder.get_lastupdate())  #test global last update
        #!! current time is important!
        time = datetime.now().hour * 60 + datetime.now().minute
        print(time)
        if time > moment2.feed_time:
            self.assertEqual(feeder.get_next_moment(), moment1)
        else:
            self.assertEqual(feeder.get_next_moment(), moment2)
コード例 #28
0
def add_user(username, birthdate):
    if get_user(username):
        return None
    user = User(username=username, birthdate=birthdate)
    db.session.add(user)
    db.session.commit()
    return user
コード例 #29
0
    def create(self, email: str, profile: Profile) -> User:

        user = User(fake.user_name(), email, profile)

        self.users.append(user)

        return self.get(user.id)
コード例 #30
0
    def post(self, request):
        bodyUnicode = request.body.decode('utf-8')
        jsonRequestData = json.loads(bodyUnicode)

        username = jsonRequestData["username"]
        password = jsonRequestData["password"]
        name = jsonRequestData["name"]

        user = User()
        user.setUsername(username)
        user.setPassword(password)
        user.setName(name)

        try:
            # Save may raise an exception (for example if the username is already in use)
            user.save()
        except Exception as ex:
            return JsonResponse({
                'status': "error",
                "message": "O username escolhido já existe."
            })

        return JsonResponse({
            'status': "success",
            "message": "Registo efetuado com sucesso.",
            "username": user.getUsername(),
            "name": user.getName(),
            "userId": user.getId()
        })