コード例 #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
ファイル: view.py プロジェクト: xzc5858/AttendanceSystem
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
ファイル: routes.py プロジェクト: mage1711/flask-chatapp
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
ファイル: views.py プロジェクト: master-walker/flask_demo
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
ファイル: users.py プロジェクト: Pumph0use/rocketrandy-api
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,