Example #1
0
    def post(self):
        args = self.args
        resp = {}
        if not (args['username'] and args['email'] and args['contact']):
            resp = {
                "Error":
                "Required parameters \"username\" \"email\" \"password\" "
            }
            encrypted_resp = encrypt_resp(resp)
            return encrypted_resp

        userdata = User.query.filter(User.username == args['username'],
                                     User.email == args['email'],
                                     User.contact == args['contact'])
        if userdata.count():
            json_resp = self.process_query(userdata)
            json_resp["message"] = "Records Founds against given fields"
            encrypted_resp = encrypt_resp(json_resp)
            return encrypted_resp

        newrecord = User(username=args['username'],
                         email=args['email'],
                         contact=args['contact'])
        newrecord.save()
        userdata = User.query.filter(User.username == args['username'],
                                     User.email == args['email'],
                                     User.contact == args['contact'])
        json_resp = self.process_query(userdata)
        json_resp["message"] = "New Record Created"
        encrypted_resp = encrypt_resp(json_resp)
        return encrypted_resp
Example #2
0
def db_insert_test_data(app):
    with app.app_context():
        init_db()
        db = get_db()
        test_user = User(
            username='******',
            password_hash=
            'pbkdf2:sha256:50000$TCI4GzcX$0de171a4f4dac32e3364c7ddc7c14f3e2fa61f2d17574483f7ffbb431b4acb2f',
            first_name='TestUserFirstName',
            last_name='TestUserLastName',
        )
        other_user = User(
            username='******',
            password_hash=
            'pbkdf2:sha256:50000$kJPKsz6N$d2d4784f1b030a9761f5ccaeeaca413f27f2ecb76d6168407af962ddce849f79',
            first_name='OtherUserFirstName',
            last_name='OtherUserLastName',
        )
        test_post = Post(
            author_id=1,
            created=datetime.fromisoformat('2020-01-01 00:00:00'),
            title='test title',
            body='test\nbody',
        )
        other_post = Post(
            author_id=2,
            created=datetime.fromisoformat('2020-02-01 00:00:00'),
            title='other title',
            body='other\nbody',
        )
        db.session.add_all((test_user, other_user, test_post, other_post))
        db.session.commit()
Example #3
0
def register():
    form = RegisterForm(request.form)
    error = None
    if request.method == "POST":
        if 'name' in request.form and 'password' in request.form:
            User.query.all()
            user = User.query.filter_by(user_name=request.form['name']).first()
            if user is None:
                uid = uuid4()
                # Create User
                new_user = User(request.form['name'], request.form['password'], 'Alice', 'Anonymous', 'iDont Facegood, literally iDont Even. lol! #6443_EXAM_MEME', str(uid) )
                User.register_user(new_user)

                # Create User Mailbox
                mailbox_name = b64encode(bytes(str(uid), 'utf-8')).decode('utf-8')
                filepath = os.path.join(current_app.config.get("APP_BASE_DIR"), mailbox_name + ".txt")
                fp = open(filepath, "wb")
                fp.close()

                greeting = "Welcome to Facegood, {}. I am Noone.".format(new_user.user_name)
                greet_msg = Message(current_app.config.get("GREETER"), str(uid), greeting)
                greet_msg.send_msg()

                flash('Registration Successful')
                return redirect('/login')
                # Create Pubkey File Name
                # Create Privkey File Name
                # Generate Keypair
            else:
                error = "User already exists."

    return render_template('forms/register.html', form=form, err=error)
Example #4
0
def register():
    """Create a new blog user."""
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        first_name = request.form.get('first_name', '')
        last_name = request.form.get('last_name', '')
        db = get_db()
        error = None
        if not username:
            error = 'Username is required!'
        elif not password:
            error = 'Password is required!'
        elif User.query.filter_by(username=username).first() is not None:
            error = 'User {} is already registered!'.format(username)
        if error is None:
            user = User(username=username,
                        first_name=first_name,
                        last_name=last_name)
            user.set_password(password)
            db.session.add(user)
            db.session.commit()
            return redirect(url_for('auth.login'))

        flash(error)
    return render_template('auth/register.html')
Example #5
0
 def resolve_users(self, info, token, username=None):
     if username is not None:
         user = User(username=username).fetch()
         if user is None:
             raise GraphQLError(f"User {username} not found")
         return [UserField(**user.as_dict())]
     else:
         return [UserField(**user.as_dict()) for user in User().all()]
Example #6
0
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User(email=form.email.data,
                    username=form.username.data,
                    password=form.password.data)
        user.add_user()
        return redirect(url_for('app.login'))
    return render_template('register.html', form=form)
Example #7
0
 def mutate(cls, _, info, username, password):
     if User(username=username).fetch() is not None:
         return RegisterMutation(ok=False)
     pwhash = app.becrypt.generate_password_hash(password)
     user = User(username=username, passwordHash=pwhash)
     user.save()
     return RegisterMutation(ok=True,
                             access_token=create_access_token(
                                 user.username))
Example #8
0
def createUser():
    userData = request.json
    newUser = User(displayName=userData['displayName'],
                   email=userData['email'])
    try:
        saved = newUser.save(force_insert=True)
    except:
        return "Error saving user to database."

    return "User created: %s" % (saved.displayName)
Example #9
0
def signup():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User(email=form.email.data,
                    username=form.username.data,
                    password=form.password.data)
        with db.session.begin(subtransactions=True):
            user.create_new_user()
        db.session.commit()
        return redirect(url_for('login.login'))
    return render_template('signup/signup.html', form=form)
Example #10
0
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        username = form.username.data
        email = form.email.data
        password = form.password.data
        user = User(username, email, password)
        user.add_user()
        flash('登録が完了しました。ご利用するにはログインしてください。')
        return redirect(url_for('app.login'))
    return render_template('register.html', form=form)
Example #11
0
def auth_login():
    if not request.is_json:
        return error_bad_request()
    username = request.json.get('username')
    password = request.json.get('password')
    if not username or not password:
        return error_bad_login()
    user = User().query.filter_by(username=username).first()
    if not user or not user.checkpassword(password):
        return error_bad_login()
    access_token = create_access_token(username)
    return jsonify(token=access_token), 200  # OK
Example #12
0
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', title='Register', form=form)
Example #13
0
def home():
    friends = requested_friends = requesting_friends = None
    connect_form = ConnectForm()
    session['url'] = 'app.home'
    if current_user.is_authenticated:
        friends = User.select_friends()
        requested_friends = User.select_requested_friends()
        requesting_friends = User.select_requesting_friends()
    return render_template('home.html',
                           friends=friends,
                           requested_friends=requested_friends,
                           requesting_friends=requesting_friends,
                           connect_form=connect_form)
Example #14
0
def new():
    form = RegistrationForm(request.form)
    if request.method == 'POST' and form.validate():
        u = User()
        u.firstName = request.form['firstName']
        u.lastName = request.form['lastName']
        u.email = request.form['email']
        db_session.add(u)
        db_session.commit()
        flash('New user created.')
        return redirect(url_for('index'))
    else:
        return render_template('new.html', form=form)
Example #15
0
def create():
    form = UsersNewForm()
    if form.validate_on_submit():
        user = User()
        form.populate_obj(user)
        user.set_password(form.password.data)
        db.session.add(user)
        try:
          db.session.commit()
          flash('User created correctly.', 'success')
          return redirect(url_for('users.index'))
        except:
          db.session.rollback()
          flash('Error generating user!', 'danger')
    return render_template('users/create.pug', form=form)
Example #16
0
def register():
    if request.method == 'POST':
        username = request.form.get('username')
        password = request.form.get('password')
        error = None

        if not username:
            error = 'Username is required.'
        elif not password:
            error = 'Password is required.'
        elif User.query.filter_by(username=username).first() is not None:
            error = 'User {} is already registered.'.format(username)

        if error is None:
            user = User(username=username,
                        password=generate_password_hash(password))
            db.session.add(user)
            db.session.commit()
            current_app.logger.info('%s registered successfully',
                                    user.username)
            return redirect(url_for('auth.login', _external=True))

        current_app.logger.info('%s failed to log in', username)
        flash(error)

    return render_template('auth/register.html')
Example #17
0
def create():
    form = UserNewForm()
    if form.validate_on_submit():
        user = User()
        form.populate_obj(user)
        user.set_password(form.password.data)
        db.session.add(user)
        try:
            db.session.commit()
            flash('ユーザを追加しました', 'success')
            return redirect(url_for('users.index'))
        except Exception as e:
            db.session.rollback()
            flash('ユーザ追加時にエラーが発生しました {}'.format(e), 'danger')
            app.logger.exception(e)
    return render_template('users/edit.pug', form=form)
Example #18
0
def register():
    """Register a new user.

    Validates that the username is not already taken. Hashes the
    password for security.
    """
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        error = None

        if not username:
            error = 'Username is required.'
        elif not password:
            error = 'Password is required.'
        elif User.query.filter(User.username == username).first() is not None:
            error = 'User {0} is already registered.'.format(username)

        if error is None:
            # the name is available, store it in the database and go to
            # the login page
            u = User(username, generate_password_hash(password))
            db_session.add(u)
            db_session.commit()
            return redirect(url_for('auth.login'))
        flash(error)
    return render_template('auth/register.html')
Example #19
0
def journal():
    users = User.query.all()
    journals = Journal.query.all()
    comments = Comment.query.all()
    like_journals = LikeJournal.query.all()

    user_id = current_user.get_id()
    user = User.select_user_by_id(user_id)

    form = LikeJournalForm(request.form)
    form_c = CommentForm(request.form)

    if request.method == 'POST' and form.validate():
        new_like = LikeJournal(user_id, form.to_journal_id.data)
        with db.session.begin(subtransactions=True):
            if new_like.is_liked(form.to_journal_id.data) == False:
                new_like.add_like()
            else:
                liked_items = LikeJournal.query.filter_by(
                    from_user_id = user_id,
                    to_journal_id = form.to_journal_id.data
                ).all()
                for liked_item in liked_items:
                    liked_item.delete_like()
        db.session.commit()
        return redirect(url_for('user.user'))

    # if request.method == 'POST' and form_c.validate():
    #     new_comment = Comment(user_id, form_c.to_journal_id.data, form_c.comment.data)
    #     with db.session.begin(subtransactions=True):
    #         new_comment.create_comment()
    #     db.session.commit()
    #     flash("Your comment has been added!", "success")
    return render_template('journal/journal.html',  users=users, journals=journals, comments=comments, like_journals=like_journals, form=form, form_c=form_c)
Example #20
0
def register():
    if (current_user.is_authenticated):
        return redirect(url_for('routes.home'))
    form = RegistrationForm(request.form)
    # If the user is trying to register
    if (form.validate_on_submit()):
        print('Register request')
        # Checks that the information in the form is valid
        valid = True
        if (check_for_dup_email(form.email.data)):
            valid = False
            flash('That email is already taken', 'email')
        if (check_for_dup_username(form.username.data)):
            valid = False
            flash('That username is already taken', 'username')
        print(valid)
        if (valid):
            try:
                user = User(first_name=form.firstname.data,
                            last_name=form.lastname.data,
                            email=form.email.data,
                            username=form.username.data,
                            pass_hash=generate_password_hash(
                                form.password.data))
                # Add the user account into the database
                db.session.add(user)
                db.session.commit()
                return redirect(url_for('routes.login'))
            except:
                return "There was an issue getting you registered"
        else:
            return render_template("register.html", form=form)
    # If the user is visiting the webpage
    else:
        return render_template("register.html", form=form)
Example #21
0
def message(id):
    if not UserConnect.is_friend(id):
        return redirect(url_for('app.home'))
    form = MessageForm(request.form)
    # 自分と相手のやり取りのメッセージを取得
    messages = Message.get_friend_messages(current_user.get_id(), id)
    user = User.select_user_by_id(id)
    # まだ読まれていないが、新たに読まれるメッセージ
    read_message_ids = [message.id for message in messages if (not message.is_read) and (message.from_user_id == int(id))]
    # すでに読まれていて、かつまだチェックしていない自分のメッセージをチェック
    not_checked_message_ids = [message.id for message in messages if message.is_read and (not message.is_checked) and (message.from_user_id == int(current_user.get_id()))]
    if not_checked_message_ids:
        with db.session.begin(subtransactions=True):
            Message.update_is_checked_by_ids(not_checked_message_ids)
        db.session.commit()
    # read_message_idsのis_readをTrueに変更
    if read_message_ids:
        with db.session.begin(subtransactions=True):
            Message.update_is_read_by_ids(read_message_ids)
        db.session.commit()
    if request.method == 'POST' and form.validate():
        new_message = Message(current_user.get_id(), id, form.message.data)
        with db.session.begin(subtransactions=True):
            new_message.create_message()
        db.session.commit()
        return redirect(url_for('app.message', id=id))
    return render_template(
        'message.html', form=form,
        messages=messages, to_user_id=id,
        user=user
    )
Example #22
0
def signup_post():
    email = request.form.get('email')
    name = request.form.get('name')
    password = request.form.get('password')
    confirmPassword = request.form.get('confirm-password')
    confirmEmail = request.form.get('confirm-email')

    user = User.query.filter_by(email=email).first()

    if user:
        flash('Email address already exists.')
        return redirect(url_for('auth.signup'))
    elif password != confirmPassword:
        flash('Passwords do not match')
        return redirect(url_for('auth.signup'))
    elif password != confirmEmail:
        flash('Emails do not match')
        return redirect(url_for('auth.signup'))

    new_user = User(email=email,
                    name=name,
                    password=generate_password_hash(password, method='sha256'))

    db.session.add(new_user)
    db.session.commit()

    return redirect(url_for('auth.login'))
Example #23
0
def user_search():
    form = UserSearchForm(request.form)
    connect_form = ConnectForm()
    session['url'] = 'app.user_search'
    users = None
    user_name = request.args.get('username', None, type=str)
    next_url = prev_url = None
    if user_name:
        page = request.args.get('page', 1, type=int)
        posts = User.search_by_name(user_name, page)
        next_url = url_for('app.user_search',
                           page=posts.next_num,
                           username=user_name) if posts.has_next else None
        prev_url = url_for('app.user_search',
                           page=posts.prev_num,
                           username=user_name) if posts.has_prev else None
        users = posts.items

        # 検索結果のユーザを取ってくる。UserテーブルとUserConnectテーブルを紐づけて、
        # UserConnectテーブルのstatusを見ます
        # from_user_id = 自分のID, to_user_id = 相手のID、status=1の場合は自分から友達申請中
        # to_user_id = 自分のID, from_user_id = 相手のID、status=1の場合は、相手から友達申請されている
        # status = 2の場合、友達になっている
        # レコードが存在しない場合、申請していないし、されていない
    return render_template('user_search.html',
                           form=form,
                           connect_form=connect_form,
                           users=users,
                           next_url=next_url,
                           prev_url=prev_url)
Example #24
0
def login():
    # 認証処理
    oauth_token = request.args.get('oauth_token')
    oauth_verifier = request.args.get('oauth_verifier')
    auth.request_token = {'oauth_token': oauth_token,
                          'oauth_token_secret': oauth_verifier}
    api = tweepy.API(auth)
    auth.get_access_token(oauth_verifier)
    me = api.me()
    # frontにリダイレクトさせるurl作成
    profile_url = str(me.profile_image_url).\
        replace('normal.jpg', '400x400.jpg')
    querys = '?name=' + str(me.screen_name) \
             + '&access_token=' + str(auth.access_token) \
             + '&url=' + profile_url
    result_url = FRONT_URL + querys

    # dbへの保存処理
    twitter_id_s = db.session.query(User.twitter_id).all()
    twitter_id_list = [user_id[0] for user_id in twitter_id_s]
    if me.id not in twitter_id_list:
        user = User(
            twitter_id=me.id,
            name=me.screen_name,
            access_token=auth.access_token,
            access_token_secret=auth.access_token_secret,
            url=profile_url
        )
        db.session.add(user)
        db.session.commit()

    return redirect(result_url)
Example #25
0
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User(username=form.username.data, email=form.email.data)
        with db.session.begin(subtransactions=True):
            user.create_new_user()
        db.session.commit()
        token = ''
        with db.session.begin(subtransactions=True):
            token = PasswordResetToken.publish_token(user)
        db.session.commit()
        # メールに飛ばすほうがいい
        print(f'パスワード設定用URL: http://127.0.0.1:5000/reset_password/{token}')
        flash('パスワード設定用のURLをお送りしました。ご確認ください')
        return redirect(url_for('app.login'))
    return render_template('register.html', form=form)
Example #26
0
def create_user(email, password):
    email = email or prompt('Email')
    password = password or prompt_pass('Password')
    user = User(email=email, password=password)
    db.session.add(user)
    db.session.commit()
    print('User created successfully')
Example #27
0
def register():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        #db = get_db()
        error = None

        if not username:
            error = 'Username is required.'
        elif not password:
            error = 'Password is required.'
        #elif db.execute(
        #    'SELECT id FROM user WHERE username = ?', (username,)
        #).fetchone() is not None:
        elif User.query.filter(User.name == username).first() is not None:
            error = 'User {} is already registered.'.format(username)

        if error is None:
            #db.execute(
            #    'INSERT INTO user (username, password) VALUES (?, ?)',
            #    (username, generate_password_hash(password))
            #)
            #db.commit()
            u = User(username, password)
            db_session.add(u)
            db_session.commit()
            return redirect(url_for('auth.login'))

        flash(error)

    return render_template('auth/register.html')
Example #28
0
def register_user(username, email, passw):
    """Добавление пользователя в БД с параметрами *username*, 
    *email*, *passw*.

    В случае если пользователь с указанным именем *username* или 
    *email* существует в БД, то возвращает предупреждение с 
    использованием функции :func:`flask.flash`. В случае, если 
    такого пользователя не существует, то добавляет соответствующую 
    запись в БД.

    :param str username: имя пользователя
    :param str email: электронная почта пользователя
    :param str passw: пароль
    :returns: перенаправление (redirect в случае успешного добавления)
     или None (но выводиться предупреждение с использованием :func:`flask.flash`)
    """
    if User.query.filter_by(username=username).first():
        flash('Пользователь с таким именем уже существует!')
        return

    if User.query.filter_by(email=email).first():
        flash('Пользователь с таким email\'ом уже существует!')
        return

    digest = hashlib.sha256(passw.encode('utf-8')).hexdigest()
    user = User(username=username, email=email, passw_hash=digest)
    db.session.add(user)
    db.session.commit()

    return redirect(url_for('.signup_success'))
Example #29
0
def register():
    if request.method == 'POST':
        # request.form is a special type of dict mapping submitted form keys and values.
        username = request.form['username']
        password = request.form['password']
        error = None

        if not username:
            error = 'Username is required.'
        elif not password:
            error = 'Password is required.'
        elif User.query.filter(User.username == username).first() is not None:
            error = 'User {} is already registered.'.format(username)

        if error is None:
            # For security, passwords should never be stored in the database directly.
            # generate_password_hash() is used to securely hash the password, and that hash is stored.
            user = User(username=username,
                        password=generate_password_hash(password))
            db.session.add(user)
            db.session.commit()
            return redirect(url_for('auth.login'))
        # flash() stores messages that can be retrieved when rendering the template.
        flash(error)
    # render_template() will render a template containing the HTML
    return render_template('auth/register.html')
Example #30
0
def register_api():
    try:
        username = str(request.args.get('username'))
        password = str(request.args.get('password'))

        # if user is exist
        user = User.query.filter_by(username=username).first()
        if user:
            return 'Username has already existed'
        else:
            salt = base64.urlsafe_b64encode(uuid.uuid4().bytes)
            salt = salt.decode('utf-8')
            password_hash = hash_password(salt, password)
            user = User(username=username,
                        password_hash=password_hash,
                        salt=salt)
            db.session.add(user)
            db.session.commit()

        return 'Sign up successfully!'

    except Exception as e:
        # print(e)
        traceback.print_tb(e.__traceback__)
        return 'Fail to sign up!'
Example #31
0
def login():
    if request.method == "POST":
        user, authenticated = User.authenticate(db.session.query, request.form["email"], request.form["password"])
        if authenticated:
            session["user_id"] = user.id
            flash("You were logged in")
            return redirect(url_for("show_entries"))
        else:
            flash("Invalid email or password")
    return render_template("login.html")
def login():
    if request.method == 'POST':
        user, authenticated = User.authenticate(db.session.query, 
                request.form['email'], request.form['password'])
        if authenticated:
            session['user_id'] = user.id
            flash('You were logged in')
            return redirect(url_for('show_entries'))
        else:
            flash('Invalid email or password')
    return render_template('login.html')
Example #33
0
def login():
	if request.method == 'POST':
		user, authenticated = User.authenticate(db.session.query,
			request.form['user_nm'], request.form['password'])
		if authenticated:
			session['user_id'] = user.id
			flash(u'ログイン完了')
			return redirect(url_for('show_entries'))
		else:
			flash(u'ユーザーかパスワードが違います。')
	return render_template('login.html')
def login():
    form = LoginForm(request.form)
    if form.validate_on_submit():
        user, authenticated = User.authenticate(db.session.query, 
                form.email.data, form.password.data)
        if authenticated:
            session['user_id'] = user.id
            flash('You were logged in')
            return redirect(url_for('index'))
        else:
            flash('Invalid email or password')
    return render_template('login.html', form=form)