Ejemplo n.º 1
0
def test_forum_questions():
    """
    Tests whether forum questions are properly added and referenced
    :return: tuple (boolean, message list)
    """
    messages = []
    messages.append("Adding user to empty database")
    u1 = User(first_name='u1', last_name='u1', username='******', email='*****@*****.**', password='******', school='KU', grade='col_jun', state='KS')
    db.session.add(u1)
    db.session.commit()
    messages.append("Adding 2 forum questions under the created user's username")
    forumq1 = ForumQuestion(author_username='******', content='This is a test post')
    forumq2 = ForumQuestion(author_username='******', content='This is another test post')
    db.session.add(forumq1)
    db.session.add(forumq2)
    db.session.commit()
    try:
        messages.append("Testing whether there are 2 forum questions referenced by user")
        assert len(list(u1.forum_questions)) == 2
    except:
        messages.append("There are not two referenced forum questions")
        return (False, messages)
    try:
        messages.append("Testing whether the referenced forum questions are equivalent")
        assert list(u1.forum_questions) == [forumq1, forumq2]
    except:
        messages.append("Different content")
        return (False, messages)
    return (True, messages)
Ejemplo n.º 2
0
def register():
    form = RegisterForm()
    if form.validate_on_submit():

        if User.query.filter_by(email=form.email.data).first():
            print(User.query.filter_by(email=form.email.data).first())
            # User already exists
            flash("You've already signed up with that email, log in instead!")
            return redirect(url_for('login'))

        hash_and_salted_password = generate_password_hash(
            form.password.data, method='pbkdf2:sha256', salt_length=8)
        new_user = User(
            email=form.email.data,
            name=form.name.data,
            password=hash_and_salted_password,
        )
        db_session.add(new_user)
        db_session.commit()
        login_user(new_user)
        return redirect(url_for("get_all_posts"))

    return render_template("register.html",
                           form=form,
                           current_user=current_user)
Ejemplo n.º 3
0
def register():
    if not request.is_json:
        return jsonify({"msg": "Missing JSON in request"}), 400

    username = request.json.get('username', None)
    password = request.json.get('password', None)
    if not username:
        return jsonify({"msg": "Missing username parameter"}), 400
    if not password:
        return jsonify({"msg": "Missing password parameter"}), 400

    maybe_user = User.query.filter_by(username=username).first()
    if maybe_user:
        return jsonify({"msg": "Username already registered"}), 409
    new_user = User(username=username, password=password)

    # Create sample document
    if os.path.isfile(DOCUMENTS_FOLDER + "/document-SAMPLE.document"):
        sample_document = get_document("SAMPLE")
        id = uuid4()
        dbDocument = DBDocument(id=id, name="Document", user=new_user, model=model_name)
        save_document(sample_document, id)
        db.session.add(dbDocument)

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

    # Identity can be any data that is json serializable
    access_token = create_access_token(identity=username)
    return jsonify(access_token=access_token, status="success", username=username), 200
Ejemplo n.º 4
0
def test_forum_posts():
    """
    Tests whether forum posts are properly added and referenced
    :return: tuple (boolean, message list)
    """
    messages = []
    messages.append("Adding user to empty database")
    u1 = User(first_name='u1', last_name='u1', username='******', email='*****@*****.**', password='******', school='Blue Valley West', grade='hs_jun', state='KS')
    db.session.add(u1)
    db.session.commit()
    messages.append("Adding a user-referenced forum question to database")
    forumq1 = ForumQuestion(author_username='******', content='This is a test post')
    db.session.add(forumq1)
    db.session.commit()
    messages.append("Adding 2 forum posts to database, referenced by both username and forum question id")
    forumpost1 = ForumPost(author_username='******', forum_question_id=forumq1.id, content='Test forum reply')
    forumpost2 = ForumPost(author_username='******', forum_question_id=forumq1.id, content='Test forum reply 2')
    db.session.add(forumpost1)
    db.session.add(forumpost2)
    db.session.commit()
    try:
        messages.append("Testing whether there are 2 forum posts referenced by username")
        assert len(list(u1.forum_posts)) == 2
    except:
        messages.append("There are not 2 referenced forum posts by username")
        return (False, messages)
    try:
        messages.append("Testing whether there are 2 forum posts referenced by forum question id")
        assert len(list(forumq1.forum_posts)) == 2
    except:
        messages.append("There are not 2 referenced forum posts by forum question id")
        return (False, messages)
    return (True, messages)
Ejemplo n.º 5
0
def createUser(login_session):
    newUser = User(name=login_session['username'],
                   email=login_session['email'],
                   picture=login_session['picture'])
    session.add(newUser)
    session.commit()
    user = session.query(User).filter_by(email=login_session['email']).one()
    return user.id
Ejemplo n.º 6
0
 def _add_ctf_member(self, user, ctf):
     member = self._get_member(user.id)
     if not member:
         member = User(user_id=user.id, name=user.name)
     if not ctf in member.ctfs:
         member.ctfs.append(ctf)
     member.save()
     return member
Ejemplo n.º 7
0
def create_user(db: Session, user: UserCreate) -> User:
    """ Create a new entry in the database user table """
    user_data = user.dict()
    user_data["password"] = hash_password(user.password)
    db_user = User(**user_data)
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user
Ejemplo n.º 8
0
def greet(message):
    user_id = message.from_user.id
    user = session.query(User).get(user_id)
    if user is None:
        user = User(id=user_id)
        session.add(user)
        session.commit()
    bot.reply_to(
        message,
        "Hello, %s! \n Send '/jobs' to get offers" % message.chat.username)
Ejemplo n.º 9
0
def addUser(netid, name, year):
    # below is my shitty code for the secret admirers issue
    # your code's not shitty homie ily <3
    user = User(netid=netid,
                name=name,
                year=year,
                visible=True,
                secretAdmirers=0)
    # user = User(netid=netid, name=name, year=year, visible=True)
    db.session.add(user)
    db.session.commit()
Ejemplo n.º 10
0
def create_user(user_in: UserIn):
    user = User(first_name=user_in.first_name,
                last_name=user_in.last_name,
                user_name=user_in.user_name,
                email=user_in.email,
                password=user_in.password)
    try:
        user.save()
        return user
    except:
        return False
Ejemplo n.º 11
0
def createUser():
    newUser = User(name=login_session['username'],
                   email=login_session['email'],
                   picture=login_session['picture'])
    DB_session.add(newUser)
    DB_session.commit()
    try:
        user = DB_session.query(User).filter_by(
            email=login_session['email']).one()
        return user.id
    except NoResultFound:
        return None
Ejemplo n.º 12
0
def registerUser(name, email, passwd):
    user = db.query(User).filter_by(name=name).first()
    if not user:
        user = db.query(User).filter_by(email=email).first()
        if not user:
            user = User(name=name, email=email)
            user.set_passwd(passwd)
            db.add(user)
            db.commit()
            return None
        return 'This email has already been registered!'
    return 'This name is already been changed!'
Ejemplo n.º 13
0
def create_or_get_user(username):
    session = Session()

    user = session.query(User).filter_by(username=username).first()
    if not user:
        user = User(username=username)
        session.add(user)
        session.commit()

    user_id = user.id
    session.close()

    return user_id
Ejemplo n.º 14
0
def create_login():
    from forms import register_form
    form = register_form(request.form)
    if request.method == 'POST' and form.validate():
        user = User()
        form.populate_obj(user)
        user.set_password(form.password.data)

        db.session.add(user)
        db.session.commit()

        login_user(user)
        return redirect(url_for('index'))
    return render_template("reg.html", form=form)
Ejemplo n.º 15
0
def test_unique_email():
    """
    Tests whether only unique email addresses are allowed
    :return: tuple (boolean, message list)
    """
    messages = []
    messages.append("Attempting to add 2 users with same email address to the empty database")
    u1 = User(first_name='u1', last_name='u1', username='******', email='*****@*****.**', password='******', school='KU', grade='col_jun', state='KS')
    db.session.add(u1)
    db.session.commit()
    u2 = User(first_name='u2', last_name='u2', username='******', email='*****@*****.**', password='******', school='KU', grade='col_jun', state='KS')
    try:
        db.session.add(u2)
        db.session.commit()
    except:
        db.session.rollback()
    try:
        messages.append("Testing whether the number of database users is 1")
        assert len(list(User.query.all())) == 1
    except:
        messages.append("Not one user in database")
        return (False, messages)
    return (True, messages)
Ejemplo n.º 16
0
def register_new_user(form_email, form_pw, form_data):
    """Funkcja rejestrująca nowego użytkownika, parametry funkcji z wtforms."""
    unique_value = str(uuid.uuid4())
    new_user = User(
        email=form_email.email.data,
        password=bcrypt.hashpw(form_pw.password.data.encode('UTF_8'),
                               bcrypt.gensalt()),
        token_id=serializer.dumps([form_email.email.data, unique_value]),
        name=form_data.name.data,
        last_name=form_data.last_name.data,
        city=form_data.city.data,
        zip_code=form_data.zip_code.data,
        street=form_data.street.data,
        house_number=form_data.house_number.data,
        flat_number=form_data.flat_number.data)
    return new_user
Ejemplo n.º 17
0
def register():
    creds = request.get_json()
    user = Session.query(User).filter_by(
        email=creds.get('email'), password=creds.get('password')).first()
    if user:
        abort(409, 'User exists.')
    try:
        new_user = User(email=creds.get('email'),
                        password=creds.get('password'))
        Session.add(new_user)
        Session.commit()
        return 'Success!'
    except Exception as e:
        print(e)
        Session.rollback()
        abort(500)
Ejemplo n.º 18
0
def build_sample_db():
    db.create_all()
    db.drop_all()
    db.create_all()
    user = User()
    user.first_name = 'admin'
    user.last_name = 'admin'
    user.login = '******'
    user.email = user.login + "@example.com"
    user.password = generate_password_hash('admin')
    db.session.add(user)
    db.session.add(RequestType(type='User'))
    db.session.add(RequestType(type='Bot'))
    db.session.add(Technique(name='chi_square'))
    db.session.add(Technique(name='Kolmogorov-Smirnov'))
    db.session.commit()
Ejemplo n.º 19
0
def update_user_by_chat_id(chat_id, first_name, last_name, username):
    """
        Обновление информации о пользователе
    """
    try:
        us = User.objects.get(chat_id=chat_id)
    except DoesNotExist:
        us = User(chat_id=chat_id)
    us.first_name = first_name
    us.last_name = last_name
    us.username = username

    try:
        us.save()
    except Exception:
        pass
Ejemplo n.º 20
0
def register():
    email = request.form['email']
    test = User.query.filter_by(email=email).first()

    if test:
        return jsonify(message='That email already exists'), 409
    else:
        first_name = request.form['first_name']
        last_name = request.form['last_name']
        password = request.form['password']
        user = User(first_name=first_name,
                    last_name=last_name,
                    password=password)
        db.session.add(user)
        db.session.commit()
        return jsonify(message='User created successfully'), 201
Ejemplo n.º 21
0
    def post(self):
        orig_user = self.request.get("username")
        username = cgi.escape(orig_user, quote=True)
        password = cgi.escape(self.request.get("password"), quote=True)
        verify = cgi.escape(self.request.get("verify"), quote=True)
        email = cgi.escape(self.request.get("email"), quote=True).strip()

        name = validate_username(username)
        passw = validate_password(password)
        ver = validate_verify(password, verify)
        mail = validate_email(email)
        res = {
            "username": username,
            "error_name": "" if name else "That's not a valid username.",
            "password": password,
            "error_pass": "" if passw else "That wasn't a valid password.",
            "verify": verify,
            "error_ver":
            "" if not passw or ver else "Your passwords didn't match.",
            "mail": email,
            "error_mail": "" if mail else "That's not a valid email."
        }
        exists = False
        if name:
            # check if user exists in the User db
            users = db.GqlQuery("SELECT * FROM User WHERE username=:1",
                                username)
            user_len = 0
            for user in users:
                user_len += 1
            exists = user_len != 0

        if name and passw and ver and mail and not exists:
            user = User(username=username,
                        password=enc.hash_passw(password),
                        email=email)
            user.put()
            user_key = str(user.key().id())
            hidden_key = enc.encode(user_key)
            cookie_val = str("user_id=%s|%s; Path=/" % (user_key, hidden_key))
            self.response.headers.add_header('Set-Cookie', cookie_val)
            self.redirect('/')
        else:
            if exists:
                res["error_name"] = "Username '%s' already taken." % username
            self.render("registration.html", **res)
Ejemplo n.º 22
0
def signup():
    if request.method == 'GET':
        pass
    elif request.method == 'POST':
        username = request.form.get('username')
        email = request.form.get('email')

        exists_username = db.session.query(
            db.session.query(User).filter_by(username=username).exists()).scalar()
        exists_email = db.session.query(
            db.session.query(User).filter_by(email=email).exists()).scalar()

        if exists_username and exists_email:
            return jsonify(dict(code=0, error="Username e email já existem"))
        if exists_username and not exists_email:
            return jsonify(dict(code=0, error="Username já existe"))
        if not exists_username and exists_email:
            return jsonify(dict(code=0, error="Email já existe"))

        new_user = User(un=username,
                        e=email,
                        pw=request.form.get('password'),
                        gender=int(request.form.get('gender')),
                        dob=request.form.get('dob_string'),
                        tribe_id=int(request.form.get('tribe_id')),
                        cz=int(request.form.get('city_zone_id'))
                        )
        db.session.add(new_user)
        db.session.flush()

        if not exists(join(USER_IMAGES_FOLDER, str(new_user.id))):
            makedirs(join(USER_IMAGES_FOLDER, str(new_user.id)))

        if new_user.gender == 1:
            image = Image.open(join(USER_IMAGES_FOLDER, 'female.png')).convert('RGB')
        else:
            image = Image.open(join(USER_IMAGES_FOLDER, 'female.png')).convert('RGB')

        image.save(join(USER_IMAGES_FOLDER, str(new_user.id) + "\\0.jpg"), optimize=True, quality=85,
                   format='JPEG')

        try:
            db.session.commit()
            return jsonify(dict(code=1))
        except exc.SQLAlchemyError:
            return jsonify(dict(code=0, error="Erro no servidor, por favor tente mais tarde"))
Ejemplo n.º 23
0
def register():
    user_data = request.get_json()
    # 判断获取结果
    if not user_data:
        return jsonify(errno=RET.PARAMERR, errmsg='参数错误')
    name = user_data.get('name')
    title = user_data.get('title')
    organization = user_data.get('organization')
    email = user_data.get('email')
    password = user_data.get('password')
    if not re.match(
            r"^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$",
            email):
        return jsonify(errno=RET.PARAMERR, errmsg="邮箱格式不正确")

    # 检查参数的完整性
    if not all([name, title, organization, email, password]):
        return jsonify(errno=RET.PARAMERR, errmsg='参数缺失')
    # 判断用户是否已经注册
    try:
        user = User.query.filter_by(email=email).first()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg='查询数据库异常')
    else:
        # 判断查询结果
        if user:
            return jsonify(errno=RET.DATAEXIST, errmsg='邮箱号已注册')
    user = User()
    user.name = name
    user.title = title
    user.organization = organization
    user.email = email
    user.password = password
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        # 如果提交数据发生异常,需要进行回滚
        db.session.rollback()
        return jsonify(errno=RET.DBERR, errmsg='保存用户信息失败')
    return jsonify(errno=RET.OK, errmsg='OK',
                   data=user.to_dict())  # 登录成功,重定向到登录页
Ejemplo n.º 24
0
def registration():
    flash("Поздавляю вас с регистарцией на нашем сайте")
    if request.method == "POST":
        from db_models import User, Password, db
        login = request.form.get('login', '')
        pasw = request.form.get('password', '')
        if not User.query.filter_by(login=login).first():
            print("i'm where!")

            new_user = User(login=login)

            pas = Password(pas=pasw, user=new_user)

            #db.session.add(Password(pas=pasw, user=User(login=login)))
            db.session.add(user)
            db.session.add(pas)
            db.session.commit()
            session['known'] = True
            session['name'] = login

            return redirect(url_for("user"))
    return render_template("registration.html")
Ejemplo n.º 25
0
def test_non_completed_user_not_in_db():
    """
    Tests whether a User object with incomplete parameters is denied from database
    :return: tuple (boolean, message list)
    """
    messages = []
    messages.append("Creating user with incomplete parameters")
    u1 = User(first_name='u1', last_name='u1', username='******', password='******')
    try:
        messages.append("Attempting to add incomplete user to database")
        db.session.add(u1)
        db.session.commit()
    except:
        messages.append("Incomplete user not added to database; exception thrown")
        db.session.rollback()
    try:
        messages.append("Testing whether a query list for users returns empty")
        assert User.query.all() == []
    except:
        messages.append("User query nonempty")
        return (False, messages)
    return (True, messages)
Ejemplo n.º 26
0
def setup_flask():
    app = Flask(__name__)
    app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
    app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
    app.config['JWT_SECRET_KEY'] = "supersecretkeyhastochange"
    app.config['JWT_ACCESS_TOKEN_EXPIRES'] = False
    app.config['SQLALCHEMY_DATABASE_URI'] = f'sqlite:///{DB_PATH}'
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

    CORS(app)
    Compress(app)
    jwt = JWTManager(app)

    # init DB
    with app.app_context():
        db.init_app(app)
        if not os.path.exists(DB_PATH):
            db.create_all()
            admin = User(username="******", password="******")
            if db.session.query(User).filter_by(username='******').count() < 1:
                db.session.add(admin)
                db.session.commit()
    return app
Ejemplo n.º 27
0
def test_password_verification():
    """
    Tests the password verification method
    :return: tuple (boolean, message list)
    """
    messages = []
    messages.append("Adding a user with known password to the empty database")
    u1 = User(first_name='u1', last_name='u1', username='******', email='*****@*****.**', password='******', school='KU', grade='col_jun', state='KS')
    db.session.add(u1)
    db.session.commit()
    try:
        messages.append("Verfiying the known password")
        assert u1.test_password('password') == True
    except:
        messages.append("Verification failed")
        return (False, messages)
    try:
        messages.append("Testing verification of incorrect passwords")
        assert u1.test_password('diffpassword') == False
    except:
        messages.append("Verification failed")
        return (False, messages)
    return (True, messages)
Ejemplo n.º 28
0
def test_user_posts():
    """
    Tests whether user post objects are properly added and referenced
    :return: tuple (boolean, message list)
    """
    messages = []
    messages.append("Adding user to empty database")
    u1 = User(first_name='u1', last_name='u1', username='******', email='*****@*****.**', password='******', school='Blue Valley West', grade='hs_jun', state='KS')
    db.session.add(u1)
    db.session.commit()
    messages.append("Adding 2 user posts under the created user's username")
    p1 = UserPost(author_username='******', content='Test post')
    p2 = UserPost(author_username='******', content='Test post 2')
    db.session.add(p1)
    db.session.add(p2)
    db.session.commit()
    try:
        messages.append("Testing whether there are 2 user posts referenced by user")
        assert len(list(u1.user_posts)) == 2
    except:
        messages.append("There are not 2 referenced user posts by username")
        return (False, messages)
    return (True, messages)
Ejemplo n.º 29
0
CORS(app)
Compress(app)
jwt = JWTManager(app)

from shared import db
from db_models import User, Document as DBDocument

with app.app_context():
    db.init_app(app)

    import os.path

    if not os.path.exists(DB_NAME):
        db.create_all()
        admin = User(username="******", password="******")
        db.session.add(admin)
        db.session.commit()

from myseq2seq.seq2seq import seq2seq_model
from myseq2seq.document import Document as Document, Sentence
from myseq2seq.scorer import Scorer
from myseq2seq.keyphrase_extractor import DomainSpecificExtractor


@app.route('/api/auth/login', methods=['POST'])
def login():
    if not request.is_json:
        return jsonify({"msg": "Missing JSON in request"}), 400

    username = request.json.get('username', None)
Ejemplo n.º 30
0
def login_oauth():
    if "access_token" not in session:
        return redirect(url_for("index"))

    params = {
        "site": "ru.stackoverflow",
        "order": "desc",
        "sort": "reputation",
        "key": STACKEXCHANGE_CLIENT_KEY, 
        "access_token": session['access_token']
    }

    r = requests.get(STACKEXCHANGE_OAUTH_ME_ENDPOINT, data=params)
    data = json.loads(r.text)
    account_id = -1
    user_id = -1
    display_name = ""
    role = ""
    reputation = -1
    profile_image = ""
    link = ""
    if data.get("items", None) is not None:
        for item in data["items"]:
            if item.get("account_id", None) is not None:
                account_id = item["account_id"]
            if item.get("user_id", None) is not None:
                user_id = item["user_id"]
            if item.get("display_name", None) is not None:    
                display_name = item["display_name"]
            if item.get("user_type", None) is not None:    
                role = item["user_type"]
            if item.get("reputation", None) is not None:    
                reputation = item["reputation"]
            if item.get("profile_image", None) is not None:    
                profile_image = item["profile_image"]
            if item.get("link", None) is not None:    
                link = item["link"]
    
    if account_id < 0 or user_id < 0 or display_name == "":
        logging.error("OAuth response: %s. Url: %s" % (r.text, r.url))
        logging.error("account_id: %s, user_id: %s, display_name: %s" % (str(account_id), str(user_id), display_name))
        return redirect(url_for("no_way"))

    adder = DBModelAdder()
    adder.start()
    user = User.get_by_account_id(account_id)
    if user is None:
        adder.add(User(account_id, 
            user_id, 
            display_name, 
            reputation, 
            profile_image,
            link,
            role))
    else:
        if user.username != display_name:
            user.username = display_name
        if user.role != role:
            user.role = role
        if user.reputation != reputation:
            user.reputation = reputation
        if user.profile_image != profile_image:
            user.profile_image = profile_image
        if user.profile_link != link:
            user.profile_link = link
        adder.add(user)
    adder.done()

    session["account_id"] = account_id
    return redirect(url_for("index"))