Ejemplo n.º 1
0
 def test_avatar(self):
     u = User(username="******", email="*****@*****.**")
     self.assertEqual(
         u.avatar(128),
         ("https://www.gravatar.com/avatar/"
          "d4c74594d841139328695756648b6bd6"
          "?d=identicon&s=128"),
     )
Ejemplo n.º 2
0
def send_weekly_newsletter():
    if not current_user.is_authenticated:
        return redirect(
            url_for("login", next=url_for("send_weekly_newsletter")))
    if not current_user.admin:
        return "Not Authorized!"
    User.send_weekly_newsletter()
    flash("You have successfully sent the newsletter!")
    return redirect(url_for("admin"))
Ejemplo n.º 3
0
def delete_users():
    if not current_user.is_authenticated:
        return redirect(url_for("login", next=url_for("delete_users")))
    if not current_user.admin:
        return "Not Authorized!"
    try:
        User.delete_all()
    except:
        db.session.rollback()
        User.delete_all()
    return redirect(url_for("admin"))
Ejemplo n.º 4
0
def forgot_password():
    form = ForgotPWForm()
    if form.validate_on_submit():
        try:
            User.forgot_password(email=form.email.data)
        except:
            db.session.rollback()
            User.forgot_password(email=form.email.data)
        flash("An email has been sent with a temporary password")
        return redirect(url_for("login"))
    return render_template("forgot_password.html",
                           title="Forgot Password",
                           form=form)
Ejemplo n.º 5
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for("feed"))
    form = RegistrationForm()
    if form.validate_on_submit():
        try:
            print("registering")
            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("login"))
        except:
            db.session.rollback()
            user = User(
                username=form.username.data,
                email=form.email.data,
                profile_picture_url=form.profile_picture_url.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("login"))
    return render_template("register.html", title="Register", form=form)
Ejemplo n.º 6
0
def admin():
    if not current_user.is_authenticated:
        return redirect(url_for("login", next=url_for("admin")))
    if not current_user.admin:
        return "Not Authorized!"

    try:
        users = User.get_users()
        posts = Post.get_posts()
    except:
        db.session.rollback()
        users = User.get_users()
        posts = Post.get_posts()

    return render_template("admin.html", users=users, posts=posts)
Ejemplo n.º 7
0
def delete_user(username):
    if not current_user.is_authenticated:
        return redirect(
            url_for("login", next=url_for("delete_user", username=username)))
    if not current_user.admin:
        return "Not Authorized!"
    try:
        user = User.query.filter_by(username=username).first_or_404()
        User.delete(user.id)
    except:
        db.session.rollback()
        user = User.query.filter_by(username=username).first_or_404()
        User.delete(user.id)

    return redirect(url_for("admin"))
Ejemplo n.º 8
0
def create_user(username: str,
                password: str,
                first_name: any = None,
                last_name: any = None):
    user = User(username, password, first_name=first_name, last_name=last_name)
    db.session.add(user)
    db.session.commit()
    return user
Ejemplo n.º 9
0
def register():
    if request.method == 'POST':
        user_name = request.args.get('user_name', default=None, type=str)
        password = request.args.get('password', default=None, type=str)
        user = User(
            name=user_name,
            unhashed_password=password,
        )
        db.session.add(user)
        db.session.commit()

        return '{ register_status : success,\nuser : '******',\npassword : '******' }'
    return '{ register_status : failed }'
Ejemplo n.º 10
0
def register():
    """ The controller to handle incoming GET and POST requests to the `/register` URL of the Flask web server.

    1. Checks to see if the user is already logged-in and authenticated. 
        a. If so, returns a response object that redirects the client to the '/index' route.
            - Results from a GET request from an authenticated user.

        b. If the user is not already logged-in and authenticated, makes the `RegistrationForm()` created using Flask-WTF available to the `templates/register` view by passing the view and the form as parameters to Flask's built-in `render_template()` function.
            - Results from a GET request from an unauthenticated user.

    2. If a valid username/pw/email combo is submitted, then an HTTP request is made to the remote SQL database requesting to insert a new row into the Users table. 

    4. The user is redirected to the `login` view. 

    Parameters
    ----------
    param1 : string
        The first parameter is the URL being requested by the client.

    Returns
    -------
    str
        The register page generated by the Jinja2 template.
    """
    if current_user.is_authenticated:
        return redirect(url_for("feed"))
    form = RegistrationForm()
    if form.validate_on_submit():
        try:
            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("login"))
        except:
            flash("Sorry, there was an error registering your account!")
            return redirect(url_for("register"))
    return render_template("register.html", title="Register", form=form)
Ejemplo n.º 11
0
    def test_follow(self):
        u1 = User(username="******", email="*****@*****.**")
        u2 = User(username="******", email="*****@*****.**")
        db.session.add(u1)
        db.session.add(u2)
        db.session.commit()
        self.assertEqual(u1.followed.all(), [])
        self.assertEqual(u1.followers.all(), [])

        u1.follow(u2)
        db.session.commit()
        self.assertTrue(u1.is_following(u2))
        self.assertEqual(u1.followed.count(), 1)
        self.assertEqual(u1.followed.first().username, "susan")
        self.assertEqual(u2.followers.count(), 1)
        self.assertEqual(u2.followers.first().username, "john")

        u1.unfollow(u2)
        db.session.commit()
        self.assertFalse(u1.is_following(u2))
        self.assertEqual(u1.followed.count(), 0)
        self.assertEqual(u2.followers.count(), 0)
    def decorated_function(*args, **kwargs):
        if not 'Authorization' in request.headers:
            raise Unauthorized

        user_id = None
        token = request.headers['Authorization'].replace('Bearer ', '')

        try:
            from flask_server.models import User
            from flask_server import db
            user_id = User.decode_auth_token(token)
            user = db.session.query(User).filter(User.id == user_id).first()
            if not user:
                raise Unauthorized
        except:
            raise Unauthorized

        return f(user, *args, **kwargs)
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main_menu'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        sha1 = passwd(form.password.data, algorithm='sha1')
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=hashed_password,
                    password_sha1=sha1)
        db.session.add(user)
        db.session.commit()
        flash('Your account has been created! You are now able to log in.',
              'success')
        return redirect(url_for('login'))
    return render_template('register.html', form=form)
Ejemplo n.º 14
0
def register():

    #if the user is already logged in it will redirect to the home page
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))

    hashed_password = bcrypt.generate_password_hash('2$`CT6[aXMVg~v{)').decode('utf-8')

    user = User(username='******', password=hashed_password)
    president = President(name='Test Name', email='*****@*****.**')
    # This is fake login info, and it will be changed once the website is running!!!

    db.session.add(user)
    db.session.add(president)
    db.session.commit()
    flash(f'Your account has been created! You are now able to log in.', 'success')
    # if the form was valid on submit then flash this string
    # flash messages are only one time, and disappear on reload
    return redirect(url_for('main.login'))
Ejemplo n.º 15
0
def create_user():
    '''
        :: add new user to User table using request.form json data.
        if success, return code 200.
    '''

    jsonData = request.get_json()
    data = jsonData['data']
    email = data['email']
    passwd = data['passwd']
    nickname = data['nickname']
    # print(">>>>>> ", data, type(data), data['methods'])

    # QQQ 기가입자인지 확인이 필요함.
    # user_list = url_for('get_users')
    # for ujson in user_list:
    #     if ujson['email'] == email:
    #         return jsonify({"result" : {"code" : 500, "message" : "already joined user."}})
    #         break

    try:
        u = User(email, passwd, nickname, make_sha=True)
        db_session.add(u)
        db_session.commit()
        return jsonify(
            {"result": {
                "code": 200,
                "message": "user successfully added."
            }})
    except SQLAlchemyError as sqlerr:
        db_session.rollback()
        return jsonify(
            {"result": {
                "code": 500,
                "message": "user add failed."
            }})
def seed_db():
    db.session.add(User('admin', 'admin', True))
    db.session.commit()
Ejemplo n.º 17
0
    def test_follow_posts(self):
        # create four users
        u1 = User(username="******", email="*****@*****.**")
        u2 = User(username="******", email="*****@*****.**")
        u3 = User(username="******", email="*****@*****.**")
        u4 = User(username="******", email="*****@*****.**")
        db.session.add_all([u1, u2, u3, u4])

        # create four posts
        now = datetime.utcnow()
        p1 = Post(body="post from john",
                  author=u1,
                  timestamp=now + timedelta(seconds=1))
        p2 = Post(body="post from susan",
                  author=u2,
                  timestamp=now + timedelta(seconds=4))
        p3 = Post(body="post from mary",
                  author=u3,
                  timestamp=now + timedelta(seconds=3))
        p4 = Post(body="post from david",
                  author=u4,
                  timestamp=now + timedelta(seconds=2))
        db.session.add_all([p1, p2, p3, p4])
        db.session.commit()

        # setup the followers
        u1.follow(u2)  # john follows susan
        u1.follow(u4)  # john follows david
        u2.follow(u3)  # susan follows mary
        u3.follow(u4)  # mary follows david
        db.session.commit()

        # check the followed posts of each user
        f1 = u1.followed_posts().all()
        f2 = u2.followed_posts().all()
        f3 = u3.followed_posts().all()
        f4 = u4.followed_posts().all()
        self.assertEqual(f1, [p2, p4, p1])
        self.assertEqual(f2, [p2, p3])
        self.assertEqual(f3, [p3, p4])
        self.assertEqual(f4, [p4])
Ejemplo n.º 18
0
experiment1 = Experiment(name='lab1',owner_id=Course.query.filter_by(name='ME461').first().id)
experiment2 = Experiment(name='training1',owner_id=Course.query.filter_by(name='ME220').first().id)
db.session.add(experiment1)
db.session.add(experiment2)
db.session.commit()

#Setup model changed
setup1 = Setup(name='setup1',period_of_res=5,max_res_for_week=3,owner_id=1)
setup2 = Setup(name='setup3',period_of_res=60,max_res_for_week=3,owner_id=2)
db.session.add(setup1)
db.session.add(setup2)
db.session.commit()

passs1 = 'koral231'
hashed_password1 = bcrypt.generate_password_hash(passs1).decode('utf-8')
sha1_1 = passwd(passs1, algorithm='sha1')
user1 = User(username='******', email='*****@*****.**', password=hashed_password1,password_sha1=sha1_1)
db.session.add(user1)
'''
passs2 = 'admin231'
hashed_password2 = bcrypt.generate_password_hash(passs2).decode('utf-8')
sha1_2 = passwd(passs2, algorithm='sha1')
user2 = User(username='******',
             email='*****@*****.**',
             password=hashed_password2,
             password_sha1=sha1_2,
             is_admin=True)
db.session.add(user2)
db.session.commit()
Ejemplo n.º 19
0
 def test_password_hashing(self):
     u = User(username="******")
     u.set_password("cat")
     self.assertFalse(u.check_password("dog"))
     self.assertTrue(u.check_password("cat"))