Ejemplo n.º 1
0
def user_regist():
    form = RegistForm()
    if form.validate_on_submit():
        # 查看用户名是否已经存在
        user_name = form.user_name.data
        user_x = User.query.filter_by(name=user_name).first()
        if user_x:
            flash("用户名已经存在!", category='err')
            return render_template('user_regist.html', form=form)
        # 如果用户不存在,创建一个用户类的实例
        user = User()
        user.name = form.user_name.data
        user.pwd = generate_password_hash(form.user_pwd.data)
        user.email = form.data['user_email']
        user.phone = form.user_phone.data
        user.jianjie = form.user_jianjie.data
        user.uuid = str(uuid.uuid4().hex)[0:10]  # 给每个用户分配一个10个字符的身份标识符
        filestorage = request.files["user_face"]
        user.face = secure_filename_with_uuid(filestorage.filename)
        # 保存用户头像文件,执行插入操作
        try:
            photosSet.save(storage=filestorage,
                           folder=user.name,
                           name=user.face)
            db.session.add(user)
            db.session.commit()
            flash("用户注册成功!", category='ok')
            return redirect(url_for("user_login", username=user.name))
        except UploadNotAllowed:
            flash("头像文件格式不对!", category='err')
            return render_template('user_regist.html', form=form)
    return render_template('user_regist.html', form=form)
Ejemplo n.º 2
0
def create_user():
    """User registration in the system."""

    try:
        data = request.json
        first_name = request.json['first_name']
        last_name = request.json['last_name']
        email = request.json['email']
        password = request.json['password']
        user_info = User.query.filter_by(email=email).first()
        print(user_info)
        if user_info:
            message = "User already exits"
            code = 400
        else:
            password = generate_password_hash(password)
            user = User()
            user.first_name = first_name
            user.last_name = last_name
            user.email = email
            user.password = password
            db.session.add(user)
            db.session.commit()
            message = "User create successfully"
            code = 200
    except Exception as error:
        return jsonify({'message': str(error)}), 400
    return jsonify({'message': message}), code
Ejemplo n.º 3
0
def test_group_user():
    roles = ['FrontUser', 'Operator', 'Administrator', 'Super']
    msg = {}
    for r in roles:
        role = Role(group=r)
        u = User()
        u.telephone = fake.phone_number()
        u.username = r + '-test'
        u.email = fake.ascii_free_email()
        u.password = '******'
        u.confirm = True
        u.realname = fake.name()
        with open('mxavatar.json', 'r') as f:
            avatar_list = json.load(f)
        u.avatar = choice(avatar_list)
        u.signature = fake.paragraph(nb_sentences=3,
                                     variable_nb_sentences=True)
        u.gender = GenderEnum(randint(1, 3))
        u.join_time = fake.date_this_year(before_today=True, after_today=False)
        u.role = role
        db.session.add(u)
        msg[r] = u.telephone
    try:
        db.session.commit()
    except Exception as e:
        print(e)
        db.session.rollback()
        print('测试用户生成失败!')
        return
    print('测试用户生成成功!')
    print(msg)
Ejemplo n.º 4
0
def test_permission_user():
    ps = [
        'LOGIN', 'VIEW_POST', 'PUBLISH_POST', 'PUBLISH_COMMENT', 'LOGIN_CMS',
        'MANAGE_POST', 'MANAGE_COMMENTE', 'BOARDER', 'BANNER', 'FRONTUSER',
        'CMSUSER', 'ADMINER'
    ]
    msg = {}
    for p in ps:
        permissions = Permission.ALL_PERMISSION - getattr(Permission, p)
        role = Role(name='FrontUser', permissions=permissions)
        u = User()
        u.telephone = fake.phone_number()
        u.username = '******' + p
        u.email = fake.ascii_free_email()
        u.password = '******'
        u.confirm = True
        u.realname = 'NOT-' + p
        with open('mxavatar.json', 'r') as f:
            avatar_list = json.load(f)
        u.avatar = choice(avatar_list)
        u.signature = fake.paragraph(nb_sentences=3,
                                     variable_nb_sentences=True)
        u.gender = GenderEnum(randint(1, 4))
        u.join_time = fake.date_this_year(before_today=True, after_today=False)
        u.role = role
        db.session.add(u)
        msg[u.username] = u.telephone
    try:
        db.session.commit()
    except Exception:
        db.session.rollback()
    print('测试用户生成成功!')
    print(msg)
Ejemplo n.º 5
0
def front_user(count=10):
    fake = Faker(locale='zh_CN')
    n = 0
    for i in range(count):
        u = User()
        u.telephone = fake.phone_number()
        u.username = fake.user_name()
        u.email = fake.ascii_free_email()
        u.password = '******'
        u.confirm = choice([True, False])
        u.realname = fake.name()
        with open('mxavatar.json', 'r') as f:
            avatar_list = json.load(f)
        u.avatar = choice(avatar_list)
        u.signature = fake.paragraph(nb_sentences=3,
                                     variable_nb_sentences=True)
        u.gender = GenderEnum(randint(1, 4))
        u.join_time = fake.date_this_year(before_today=True, after_today=False)
        role = Role()
        u.role = role
        db.session.add(u)
        try:
            db.session.commit()
            n += 1
        except Exception:
            db.session.rollback()
    print('Front用户添加成功,共同添加%d个用户' % n)
Ejemplo n.º 6
0
    def create_user(self, data, is_active=True):
        valid_input, valid_input_message = self.validate_signup_payload(data)
        if not valid_input:
            return {"success": valid_input, "message": valid_input_message}
        is_exists, exists_message = self.check_user_existence(
            data["email"], data["phone"])
        if is_exists:
            return {"success": True, "message": exists_message}

        try:
            hash_text = data["email"] + data["phone"] + data["full_name"]
            hash_object = hashlib.md5(hash_text)
            unique_hash = hash_object.hexdigest()
            try:
                validation = Schema({
                    'full_name':
                    And(basestring,
                        lambda n: 30 >= len(n) >= 3,
                        error="Minimum 3 Characters are Required"),
                    'email':
                    And(basestring,
                        lambda n: len(n) >= 3,
                        error="Minimum 3 Characters are Required"),
                    'phone':
                    And(basestring,
                        lambda n: len(n) >= 6,
                        error="Minimum 6 Characters are Required"),
                    "password":
                    And(basestring,
                        lambda n: len(n) >= 6,
                        error="Minimum 6 Characters are Required")
                }).validate(data)
            except SchemaError as e:
                error = e.message
                return {"success": False, "message": error}

            account_create = User()
            user_id = str(uuid.uuid4())
            account_create.username = user_id
            account_create.email = data['email']
            account_create.phone = data['phone']
            account_create.full_name = data['full_name']
            account_create.is_active = is_active
            account_create.password = self.pwd_context.encrypt(
                data['password'])
            account_create.token = self.generate_api_token(unique_hash)
            account_create.save()

            return {"success": True, "message": "Created User Successfully"}

        except Exception as e:
            print(traceback.format_exc())
Ejemplo n.º 7
0
def register():
    form = RegisterForm()
    if form.validate_on_submit():

        # 检查用户上传的图像文件是否符合要求
        if not check_files_extension([form.photo.data.filename],
                                     ALLOWED_IMAGE_EXTENSION):
            flash('图片格式不正确!', 'danger')
            return redirect(url_for('auth.register'), form=form)

        user_name_db = User.query.filter(
            User.name == form.user_name.data).first()
        if user_name_db:
            flash('用户名已经存在!', 'danger')
            return render_template('register.html', form=form)
        user_email_db = User.query.filter(
            User.email == form.email.data).first()
        if user_email_db:
            flash('邮箱已经被注册过!', 'danger')
            return render_template('register.html', form=form)
        user_phone_db = User.query.filter(
            User.phone == form.phone.data).first()
        if user_phone_db:
            flash('手机号已经被注册过!', 'danger')
            return render_template('register.html', form=form)

        user = User()
        user.name = form.user_name.data
        user.pwd = generate_password_hash(form.user_pwd.data)
        user.email = form.email.data
        user.phone = form.phone.data
        user.introduce = form.introduce.data
        user.birthday = form.birthday.data
        # 文件上传
        # img_file = request.files['photo']
        img_file = request.files.get('photo')
        user.photo = secure_filename(img_file.filename)

        flash('注册成功', 'success')
        db.session.add(user)
        db.session.commit()
        # file_path = file_bastpath + img_file.filename
        user_folder = os.path.join(app.config['UPLOADED_FOLDER'], user.name)
        create_folder(user_folder)
        img_file.save(os.path.join(user_folder, user.photo))

        return redirect(url_for('auth.login', user_name=user.name))
    # user_name = form.data['user_name']
    return render_template('register.html', form=form)
Ejemplo n.º 8
0
Archivo: user.py Proyecto: ap13p/elearn
def user_create():
    form = UserForm(request.form)
    form.action = url_for('admin:user:create')
    form.level.choices = get_level()
    if form.validate_on_submit():
        user = User()
        user.email = form.email.data
        user.password = form.password.data
        user.no_induk = form.no_induk.data
        level = Level.get(Level.id == form.level.data)
        jenkel = form.profile.jenis_kelamin.data
        nama = form.profile.nama.data
        profile = Profile.create(nama=nama, jenis_kelamin=jenkel)
        user.level = level
        user.profile = profile
        user.save()
        return redirect(url_for('admin:user:list'))
    if form.errors:
        print form.errors
    return render_template('admin/user/create.html', form=form)
Ejemplo n.º 9
0
def user_regist():  # 注册
    form = RegistForm()
    if form.validate_on_submit(
    ):  # 检查提交方式是否为post 验证forms.py定义的validators 验证是否通过
        # 检查用户上传的头像文件名是否符合要求
        # if not check_files_extension([form.user_face.data.filename], ALLOWED_IMAGEEXTENSIONS):
        #     flash("头像文件格式错误!", category="err")
        #     return render_template("user_regist.html", form=form)
        # 查看用户是否存在
        user_name = form.user_name.data
        query_user_by_name = User.query.filter_by(name=user_name).first()
        if query_user_by_name:
            # 返回注册界面,重新注册
            flash("用户名已存在!", category="err"
                  )  # Flashes a message to the next request 闪现一条消息到下一次消息请求
            return render_template("user_regist.html", form=form)

        query_user_by_email = User.query.filter_by(
            email=form.user_email.data).first()
        if query_user_by_email:
            # 返回注册界面,重新注册
            flash("用户邮箱已被注册注册!", category="err"
                  )  # Flashes a message to the next request 闪现一条消息到下一次消息请求
            return render_template("user_regist.html", form=form)

        query_user_by_phone = User.query.filter_by(
            phone=form.user_phone.data).first()
        if query_user_by_phone:
            # 返回注册界面,重新注册
            flash("手机号已被注册!", category="err"
                  )  # Flashes a message to the next request 闪现一条消息到下一次消息请求
            return render_template("user_regist.html", form=form)

        # print("form", form.user_name.data)
        # print("form", form.data)
        # print("form", form.data["user_name"])
        # print("request.form", request.form)
        user = User()
        # user.name = request.form["user_name"]
        user.name = form.user_name.data
        # user.pwd = request.form["user_pwd"]
        user.pwd = generate_password_hash(form.user_pwd.data)
        # user.age = request.form["user_age"]
        user.phone = form.user_phone.data
        # user.birthday = request.form["user_birthday"]
        user.jianjie = form.user_jianjie.data
        # user.email = request.form["user_email"]
        user.email = form.user_email.data
        # user.face = request.form["user_face"]
        # user.face = form.user_face.data
        # filerstorage = form.user_face.data
        user.uuid = str(uuid.uuid4().hex)[0:10]  # 10个字符长度
        filerstorage = request.files["user_face"]  # 获取头像文件
        user.face = secure_filename_with_uuid(
            filerstorage.filename
        )  # secure_filename 文件名安全性检测,如果文件名有特殊字符,会将特殊字符转义,没有就返回原文件名
        # print(user.face)

        # 保存用户头像文件
        # user_folder = os.path.join(app.config["UPLOADS_FOLDER"], user.name)
        # create_folder(user_folder)  # 创建用户文件夹
        # filerstorage.save(os.path.join(user_folder, user.face))
        try:
            photosSet.save(storage=filerstorage,
                           folder=user.name,
                           name=user.face)
            # 如果不存在执行插入操作,创建一个用户类 User 的实例
            # 插入一条数据
            db.session.add(user)
            db.session.commit()
            flash("注册成功!", category="ok")
            # username作为查询参数带到url中去
            # 重定向页面 生成url 执行 user_login 函数 跳转到登录界面
            return redirect(url_for("user_login", username=user.name))
        except UploadNotAllowed:
            flash("头像文件格式错误!", category="err")
            return render_template("user_regist.html", form=form)

    return render_template("user_regist.html", form=form)