예제 #1
0
def db_add_user(config, user_email):
    """Adding user"""

    if not os.path.isfile(config.DB_FILE):
        print('[WARNING] File [{}] doesn\'t exist.'.format(config.DB_FILE))
        sys.exit(1)

    app = create_app(config_object=config)

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

        user = User.query.filter_by(email=user_email).first()
        if user:
            print('[WARNING] User [{}] is already added. '.format(user_email))
            sys.exit(0)

        admin = User(email=user_email,
                     password=BCRYPT.generate_password_hash(uuid.uuid4().hex),
                     gdpr_version=config.GDPR_VERSION,
                     is_active=True)

        DB.session.add(admin)
        DB.session.commit()

    print(
        '[SUCCESS] Admin user was set. For activation, you should reset password.'
    )
    sys.exit(0)
예제 #2
0
def create_account(email):
    """
    Create new account.

    :param email: e-mail
    :return: user.uid.hex
    """

    with current_app.app_context():

        user = User(password=BCRYPT.generate_password_hash(uuid.uuid4().hex),
                    email=email,
                    confirmed_at=None,
                    gdpr_version=0,
                    is_active=True)

        try:
            DB.session.add(user)
            DB.session.flush()
            DB.session.commit()
        except Exception as error:  # pylint: disable=broad-except,unused-variable
            current_app.logger.error(
                'Write new account into DB fails! {}'.format(error))

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

    return new_user
예제 #3
0
def adduser():
    depts = association.query.all()
    roles = Role.query.all()
    shifts = shift.query.all()
    cycles = cycle.query.all()
    print('1')
    if request.method == "POST":
        print('2')
        username = request.form['username']
        truename = request.form['truename']
        EnrollNumber = request.form['EnrollNumber']
        password = '******'
        deptid = request.form['dept']
        roleid = request.form['role']
        shiftid = request.form['shift']
        cycleid = request.form['cycle']
        startdate = request.form['startdate']
        db.session.add(
            User(username, truename, password, deptid, roleid, shiftid,
                 cycleid, startdate, EnrollNumber))

        db.session.commit()
        flash('添加成功')
        print('2')
        return redirect(url_for('.getuser'))

    return render_template("t-users-add.html",
                           depts=depts,
                           roles=roles,
                           shifts=shifts,
                           cycles=cycles)
예제 #4
0
def regist():
    if (request.method == 'GET'):
        return render_template("signup.html")
    else:
        userid = request.form.get('userid')
        password = request.form.get('password')
        password2 = request.form.get('password2')
        identity = request.form.get('identity')

        if (userid == ''):
            return render_template("signup.html", text="请填入学号")
        if (password == ''):
            return render_template("signup.html", text="请填入密码")

        user = User.query.filter(User.id == userid).first()
        if (user):
            return render_template("signup.html", text="该用户已经注册")
        elif (password != password2):
            return render_template("signup.html", text="两次密码不同,请核对")
        else:
            user = User(id=userid,
                        usertype=identity,
                        password=generate_password_hash(password))
            db.session.add(user)
            db.session.commit()

    return redirect(url_for("auth.login"))
예제 #5
0
def register():
    form = RegistrationForm()
    if form.validate_on_submit():
        hashedPassword = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(username=form.username.data, password=hashedPassword)
        db.session.add(user)
        db.session.commit()
        return redirect(url_for('index'))
    return render_template("register.html", title='Register', form=form)
예제 #6
0
def add_user(user):
    db = connect_db(app.config.get('DB'))
    User.set_db(db)
    Comment.set_db(db)
    #
    db_user = User()
    db_user.username = user['username']
    db_user.real_name = user['name']
    db_user.salt, db_user.password = make_salt_passwd(DEFAULT_PASSWORD)
    #
    db.save_doc(db_user)
예제 #7
0
def load_user(username):
    """Flask will try to load a user before every request by calling get_id method
    from the User class on it and feeding the return value to this function.
    If the username returned from Flask is valid the user will be loaded."""

    user = User.find_user(username_val=username)

    if not user:

        return None

    return User(username=user[USERNAME], password=user[USER_PASSWORD],
                email=[USER_EMAIL], roles=user[USER_ROLES], _id=user[USER_ID])
예제 #8
0
def populate_db():
    """Populates the database with seed data."""
    try:
        users = [
            User(name=u'admin', role=1),
        ]
        db.session.add_all(users)
        db.session.commit()
    except:
        db.session.rollback()
        raise Exception("Failed to populate the database")
    finally:
        db.session.close()
예제 #9
0
def add_user():
    id = request.form['facebookId']
    try:
        user_data = facebook_api.get_user_info(id)
        user_name = user_data['username'] if 'username' in user_data else ''
        gender = user_data['gender'] if 'gender ' in user_data else ''
        new_user = User(id=user_data['id'],
                        name=user_data['name'],
                        username=user_name,
                        gender=gender)
        fb_users.add(new_user)
        return make_response('', 201)
    except Exception as e:
        return make_response(jsonify({'error': e}), 500)
예제 #10
0
        def recur():
            role_id = role or choice(range(1, 4))
            snm = "TEST" + str(randint(10000, 99999999))
            go = True if User.query.filter_by(
                name=snm).first() is None else False

            if not go:
                return recur()
            user = User(snm, snm, role_id)

            db.session.add(user)
            db.session.commit()
            role_id == 3 and db.session.add(
                Operators(id=user.id, office_id=choice(Office.query.all()).id))
예제 #11
0
파일: app.py 프로젝트: cnryng/Campfire
def register():
    username = get_arg('username')
    password = get_arg('password')
    if username is None or username == "" or password is None or password == "":
        return jsonify({
            "success": False,
            "reason": "Username and password can't be empty"
        })
    if User.query.filter_by(username=username).first() is not None:
        return jsonify({"success": False, "reason": "Username already used"})
    db.session.add(
        User(username=username, hashed_password=hash_password(password)))
    db.session.commit()
    return jsonify({"success": True})
예제 #12
0
def form_db():
    form = FormDemo()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.name.data).first()
        if user is None:
            user = User(username=form.name.data)
            db.session.add(user)
            session["known"] = False
            send_mail("*****@*****.**","create successful","requirements")
        else:
            session["known"] = True
        session['name'] = form.name.data
        form.name.data = ''
        return redirect(url_for("form_db"))
    return render_template("form_demo.html",form=form,name=session.get("name"),known=session.get("known", False))
예제 #13
0
def register():
    if request.method == 'POST':
        try:
            name = request.form.get('name')
            email = request.form.get('email')
            password = request.form.get('password')
            usr = User(name=name, email=email)
            usr.set_password(password)
            usr.save()
            flash(flashes["registered"])
            return redirect('/login')
        except NotUniqueError:
            flash(flashes["notUnique"], "error")
        except Exception:
            flash(flashes["error"])
    form = RegisterForm()
    return render_template('authorization/register.html', form=form)
예제 #14
0
def login():

    """checks to see if the user is already authenticated or not. If not
    the user will input their username and password and if it matches they will be stored
    in flask-login so they can be authenticated. It also checks to see which role the user
    is and directs them to the appropriate homepage"""

    if current_user.is_authenticated:

        user = User.find_user(username_val=current_user.username)

        path = User.check_roles(user)

        return redirect(path)

    form = LoginForm()

    if form.validate_on_submit() and request.method == "POST":

        raw_username = request.form.get("username")
        username = strip_text(raw_username, toStr=True)  
        user = User.find_user(username_val=username) 

        raw_password = request.form.get("password")
        password = strip_text(raw_password, toStr=True)

        if user and User.check_pass(user[USER_PASSWORD], password):

            user_obj = User(username=user[USERNAME], password=user[USER_PASSWORD],
                email=[USER_EMAIL], roles=user[USER_ROLES], _id=user[USER_ID])

            login_user(user_obj)

            newpath = User.check_roles(user)

            print(newpath)

            return redirect(newpath)

        else:
            error = "Username or Password was incorrect."

            return render_template('auth/login.html', title='Sign In', form=form, error=error)

    return render_template('auth/login.html', title='Sign In', form=form)
예제 #15
0
파일: user.py 프로젝트: dperkins65/rated
def login():
    form = LoginForm()
    if form.validate_on_submit():
        name = form.name.data.lower()
        try:
            user = User.query.filter_by(name=name).first()
            login_user(user)
        except:  #TODO fix exception type/reason
            user = User(name=name)
            db.session.add(user)
            db.session.commit()
            login_user(user)
        user = g.user
        if current_user.is_admin:
            return redirect(url_for('admin.admin'))
        else:
            return redirect(url_for("index.index"))
    return render_template('login.html', form=form)
예제 #16
0
def generate_api_key():
    """
    Generates a random API key associated with the logged in Net ID and adds that user to the database.
    """
    net_id = session.get(app.config['CAS_USERNAME_SESSION_KEY'], None)
    user = User.query.filter_by(net_id=net_id).first()
    if user is None:
        # Generate a string representation of a random, 30-character alphanumeric sequence
        api_key_list = [
            alphanumeric[random.randint(0,
                                        len(alphanumeric) - 1)]
            for i in range(config.API_KEY_LENGTH)
        ]
        api_key = "".join(map(str, api_key_list))
        # Create the user and commit to the database
        user = User(net_id, api_key)
        db.session.add(user)
        db.session.commit()
    return redirect('/api_key')
예제 #17
0
파일: views.py 프로젝트: leonprou/inviter
def upload_csv(stream):
    fieldnames = ('name', 'number_of_guests', 'related_to', 'group', 'phone_number', None, 'email')
    reader = DictReader(stream, fieldnames=fieldnames)
    next(reader)
    next(reader)
    try:
        for row in reader:
            if not row.get('email'):
                continue
            del row[None]
            user = User(email=row['email'])
            del row['email']
            invitation = Invitation(**row, user=user)
            db.session.add(user)
            db.session.add(invitation)
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        raise e
예제 #18
0
def sign_up():
    errors = []
    form = SignUpForm(request.form)
    if request.method == 'POST' and form.validate():
        username = form.username.data
        real_name = form.real_name.data
        salt, passwd_hash = make_salt_passwd(form.password.data)
        user = list(User.view('users/by_username', key=username))
        if user:
            errors.append('User already exists')
        else:
            new_user = User(username=username,
                            real_name=real_name,
                            salt=salt,
                            password=passwd_hash)
            g.db.save_doc(new_user)
            flash('You have successfully registered')
            return redirect(url_for('index.index'))
    errors.extend(format_form_errors(form.errors.items()))
    return render_template('sign_up.html', form=form, errors=errors)
예제 #19
0
def add_user():
    content = request.json
    if content and all(key in ['id', 'display_name']
                       for key in content.keys()):
        user = User.query.filter(User.id == content['id']).first()

        if user:
            return json.dumps({'status': 'User already exists'}), 400, {
                'Content-Type': 'application/json'
            }
        else:
            user = User()
            user.id = content['id']
            user.display_name = content['display_name']
            current_app.db.session.add(user)
            current_app.db.session.commit()
            return '', 204
    else:
        return json.dumps({'status': 'Bad request'}), 400, {
            'Content-Type': 'application/json'
        }
예제 #20
0
파일: views.py 프로젝트: zelazna/hr_api
 def post():
     post_data = request.get_json()
     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'))
             db.session.add(user)
             db.session.commit()
             auth_token = user.encode_auth_token(user.id)
             response_object = {
                 'status': 'success',
                 'message': 'Successfully registered.',
                 'auth_token': auth_token.decode()
             }
             return make_response(jsonify(response_object)), 201
         except Exception:
             return error_response(
                 401, 'Some error occurred. Please try again.')
     else:
         return error_response(202, 'User already exists. Please Log in.')
예제 #21
0
def user_create():
    data = request.get_json()

    if not data:
        return FAILED

    if "username" not in data:
        return FAILED
    if "password" not in data:
        return FAILED

    if User.query.filter_by(username=data['username']).first():
        return jsonify({'success': False})

    bcrypt_password = bcrypt.generate_password_hash(data['password']).decode()

    new_user = User(username=data['username'], password=bcrypt_password)
    db.session.add(new_user)
    db.session.commit()

    flash("You have successfully registered! Now you can login!", "info")

    return jsonify({'success': True})
예제 #22
0
def signup():
    signup_error = None
    form_email = request.form['email']
    form_username = request.form['username']
    form_password = request.form['password']
    if request.method == 'POST':
        try:
            if not form_email or not form_username or not form_password:
                flash('Required fields are missing', 'error')
            else:
                user = User(email=form_email, username=form_username, password=form_password, logged_in=True)
                db.session.add(user)
                db.session.commit()

                flash('User successfully added')
                return redirect(url_for('room_code'))
        except IntegrityError:
            if db.session.query(User).filter_by(email = form_email).first() is not None:
                signup_error = 'This email already exists'
                return render_template('index.html', error = signup_error)
            if db.session.query(User).filter_by(username = form_username).first() is not None:
                signup_error = 'This username already exists'
                return render_template('index.html', error = signup_error)
    return redirect(url_for('room_code'))
예제 #23
0
class UserLogin(BaseModel):
    email: str
    password: str


class UserRegister(BaseModel):
    email: str
    password: str
    confirm: str
    referrer: str
    first: str
    last: str
    ip: str


user_db = User()
userapi = FastAPI(openapi_prefix="/user")


@userapi.post('/')
async def user_root(request):
    return {'msg': 'This is pretty darn basic'}


@userapi.post('/info')
async def user_info(uinfo: UserInfo):
    email = uinfo.email
    should_continue = any_none([email])

    if should_continue == False:
        wrong = formatting(400,