Exemplo n.º 1
0
def create(self):

    data = tornado.escape.json_decode(self.request.body)

    password = None
    if 'password' in data:
        password = bcrypt.encrypt(data['password'])

    isExist = (yield User.objects.filter(email=data['email'],
                                         status__ne='Deleted').count())
    if isExist > 0:
        self.set_status(400)
        self.write('Email address is already in use.')
    else:
        try:
            user = User(
                first_name=data['first_name'],
                # middle_name=data['middle_name'],
                last_name=data['last_name'],
                email=data['email'].lower(),
                password=password,
                status='Unverified',
                credits=0)

            if 'phone_number' in data:
                user.phone_number = data['phone_number']

            user.agreed_terms = True
            user = yield user.save()

        except:
            value = sys.exc_info()[1]
            self.set_status(403)
            str_value = str(value)
            if 'The index ' in str_value and ' was violated ' in str_value:
                str_value = 'Email already in used'
            self.write(str_value)
    self.finish()
Exemplo n.º 2
0
def authenticated_client():
    file = tempfile.mkstemp()
    db, app.config["SQLALCHEMY_DATABASE_URI"] = file[
        0], "sqlite:///" + file[1] + ".db"
    app.config["TESTING"] = True
    with app.test_client() as client:
        with app.app_context():
            database.init_app(app)
            database.create_all()
            database.session.commit()
            login.init_app(app)
            test_user = User(username="******", email="*****@*****.**")
            test_user.set_password("admin")
            database.session.add(test_user)
            database.session.commit()
            test_todo_1 = Todo(task="Cooking", owner=test_user)
            test_todo_2 = Todo(task="Playing", owner=test_user)
            database.session.add(test_todo_1)
            database.session.add(test_todo_2)
            database.session.commit()
        yield client

    os.close(db)
Exemplo n.º 3
0
def inviteAdmin(zemail, zaccountType=None, zpassword=None):
    import app.models.users, app.models.invitations

    if zaccountType == None:
        zaccountType = User.accountTypes.student

    try:
        zaccountType = toAccountNum(zaccountType)
    except ValueError:
        return False

    if zpassword:
        hash = User.createHash(zpassword)

        newUser = User(email=zemail, hash=hash, accountType=zaccountType)
        newUser.save()

        print "inviteAdmin: Created user {email: %s, hash: %s, accountType: %s}" % \
                  (zemail, hash, User.accountTypes.getName(zaccountType))
    else:
        raise NotImplementedError

    return True
Exemplo n.º 4
0
def client():
    file = tempfile.mkstemp()
    db, app.config["SQLALCHEMY_DATABASE_URI"] = file[
        0], "sqlite:///" + file[1] + ".db"
    app.config["TESTING"] = True
    with app.test_client() as client:
        with app.app_context():
            database.init_app(app)
            database.create_all()
            database.session.commit()
            login.init_app(app)
            test_user = User(username="******", email="*****@*****.**")
            test_user.set_password("admin")
            database.session.add(test_user)
            database.session.commit()

            @login.user_loader
            def load_user(user_id):
                return User.query.get(int(user_id))

        yield client

    os.close(db)
Exemplo n.º 5
0
def register():
    # if already logged in redirect to homepage
    if current_user.is_authenticated:
        return redirect(url_for('index'))

    form = RegistrationForm()
    if form.validate_on_submit():
        # Add new user record to db
        new_user = User(username=form.username.data,
                        email=form.email.data,
                        group_id=1)
        new_user.set_password(form.password.data)
        db.session.add(new_user)
        db.session.commit()

        # Autologin and redirect new user
        login_user(new_user)
        db_tools.add_login_record()
        session['payment_due'] = None
        return redirect(url_for('index'))

    return render_template('register.html',
                           title='EBS: Account Registration',
                           form=form)
Exemplo n.º 6
0
 def post(self):
     """
     Register a user, generate their token and add them to the database
     :return: Json Response with the user`s token
     """
     if request.content_type == 'application/json':
         post_data = request.get_json()
         email = post_data.get('email')
         password = post_data.get('password')
         if re.match(r"[^@]+@[^@]+\.[^@]+", email) and len(password) > 4:
             user = User.get_by_email(email)
             if not user:
                 token = User(email=email, password=password).save()
                 return response_auth('success', 'Successfully registered',
                                      token, 201)
             else:
                 return response(
                     'failed',
                     'Failed, User already exists, Please sign In', 400)
         return response(
             'failed',
             'Missing or wrong email format or password is less than four characters',
             401)
     return response('failed', 'Content-type must be json', 400)
 def deactivateUser():
     requestBody = request.get_json()
     instanceUsr = User(allData=False)
     disableUser = instanceUsr.disableUser(requestBody)
     return disableUser
 def updateUser():
     requestBody = request.get_json()
     newUser = User(requestBody)
     updateUser = newUser.updateUser()
     return updateUser
Exemplo n.º 9
0
from app.models.users import User
from random import randint
from . import users

# In order to generate valid User entries, we must follow the
# constraits of the models and the procedurally generated data sets...
# print(all_names)
seed_users = [
    User(email=user[0],
         name=user[1],
         hashed_password=user[2],
         profile_img=user[3]) for user in users
]
# image_ids = range(1, 301)
# users = zip(emails, all_names, hashed_passwords, range(1, 301))
# user_info = set(users)
# print(users)
# print(emails)
Exemplo n.º 10
0
 def test_valid_confirmation_token(self):
     u = User(password='******')
     db.session.add(u)
     db.session.commit()
     token = u.generate_confirmation_token()
     self.assertTrue(u.confirm(token))
fake = Faker()
defaultPic = 'https://randomuser.me/api/portraits/'
# Regardless of the lint error you receive,
# load_dotenv must run before running this
# so that the environment variables are
# properly loaded.

with app.app_context():
    db.drop_all()
    db.create_all()

    users = [
        User(
            email='*****@*****.**',
            fullName='James Robertson',
            username='******',
            password='******',
            profileImageUrl=
            'https://slickpics.s3.us-east-2.amazonaws.com/uploads/FriJul242125202020.png',
            bio='This is my bio. Enjoy my roasts :)')
    ]

    for i in range(1, 15):
        name = fake.name()
        username = f"{name.replace(' ', '')}{randint(1,1000)}"
        email = f'{username}@coffeehub.com'
        men_or_women = 'men' if randint(1, 2) % 2 == 0 else 'women'
        userPic = f'{defaultPic}{men_or_women}/{i}.jpg'
        user = User(fullName=name,
                    username=username,
                    password='******',
                    email=email,
Exemplo n.º 12
0
 def test_password_salts_are_random(self):
     u1 = User(email=u"*****@*****.**", username=u"u1", password=u"cat")
     u2 = User(email=u"*****@*****.**", username=u"u2", password=u"cat")
     self.assertTrue(u1.password_hash != u2.password_hash)
Exemplo n.º 13
0
def register():
    """
    使用这个api来创建新的账户
    ---
    tags:
      - Register
    parameters:
      - name: username
        in: body
        type: string
        required: true
        description: username
        example: user
      - name: password
        in: body
        type: string
        required: true
        description: password
        example: 123456
      - name: email
        in: body
        type: string
        required: true
        description: email
        example: [email protected]
      - name: role
        in: body
        type: integer
        required: true
        description: 1-admin, 2-user, 3-guest
        example: 2
    responses:
      200:
        description: success return verified=true,failed return verified=false and reason
        schema:
           $ref: "#/definitions/RegisterJson"

    definitions:
        RegisterJson:
          properties:
            verified:
              type: boolean
              example: false
            reason:
              type: string
              example: 相同的用户名
    """
    # 判断用户是否有注册权限
    if session['role'] == 1:
        # 获取数据
        user_info = request.get_json()
        back_data = {
            'username': user_info.get('username'),
            'password': user_info.get('password'),
            'email': user_info.get('email'),
            'role': user_info.get('role')
        }
        back_json = {'verified': True, 'reason': '成功'}

        # 数据库查询
        # 检查是否存在相同username,email
        result = query_object(back_data['username'], '', back_data['email'],
                              'register')
        if result == 1:
            back_json['reason'] = '用户名被占用'
            back_json['verified'] = False
            current_app.logger.info('%s register failed ,reason : %s',
                                    back_data['username'], back_json['reason'])
        elif result == 2:
            back_json['reason'] = '已存在的邮箱地址,请直接登录'
            back_json['verified'] = False
            current_app.info('%s register failed ,reason : %s',
                             back_data['username'], back_json['reason'])
        elif result == 3:
            # add new_account
            user = User()
            user.username = back_data['username']
            user.password = back_data['password']
            user.email = back_data['email']
            user.role = back_data['role']
            user.isActive = 1
            add_object(user)
            current_app.logger.info('%s register successfully ',
                                    back_data['username'])
    else:
        back_json = {'status': False, 'reason': '你无权这么做'}

    return json.dumps(back_json), 200
Exemplo n.º 14
0
 def test_no_password_getter(self):
     u = User(email=u"*****@*****.**", username=u"u", password=u"cat")
     with self.assertRaises(AttributeError):
         u.password
Exemplo n.º 15
0
 def test_password_verification(self):
     u = User(email=u"*****@*****.**", username=u"u", password=u"cat")
     self.assertTrue(u.verify_password(u"cat"))
     self.assertFalse(u.verify_password(u"dog"))
Exemplo n.º 16
0
 def test_password_setter(self):
     u = User(email=u"*****@*****.**", username=u"u", password=u"cat")
     self.assertTrue(u.password_hash is not None)
Exemplo n.º 17
0
 def test_password_not_nullable(self):
     with self.assertRaises(IntegrityError):
         u = User(email=u"*****@*****.**", username=u"u")
         db.session.add(u)
         db.session.commit()
Exemplo n.º 18
0
 def test_email_not_nullable(self):
     with self.assertRaises(IntegrityError):
         u = User(username=u"u", password=u"cat")
         db.session.add(u)
         db.session.commit()
Exemplo n.º 19
0
def create_user(username, password):
    return User(uuid.UUID, username, password)
Exemplo n.º 20
0
 def test_valid_confirmation_token(self):
     u = User(email=u"*****@*****.**", password=u"cat")
     db.session.add(u)
     db.session.commit()
     token = u.generate_confirmation_token()
     self.assertTrue(u.confirm(token))
Exemplo n.º 21
0
from functools import wraps
import jwt
from app.models.orders import Orders
from app.models.users import User
from app.models.db_user_sql_queries import UserQueries
from flasgger import swag_from
from flask import Blueprint, jsonify, request, current_app
from flask import redirect

user_blue = Blueprint('user_b', __name__)
user_obj = User()
order_obj = Orders()
querry = UserQueries()


@user_blue.route('/api/v1/auth/signup', methods=['POST'])
@swag_from('../docs/signup.yml')
def user_signup():
    " a function to signp user"
    new_user = request.json

    #validating user object
    if not user_obj.validate_user_obj(new_user):
        return jsonify({"error": "ivalid user obj"}), 400

    new_first_name = new_user["first_name"]
    new_last_name = new_user["last_name"]
    new_user_name = new_user["user_name"]
    new_email = new_user["email"]
    new_password = new_user["password"]
Exemplo n.º 22
0
from app import db
from app.models.users import User

db.create_all()

guest = User(username='******', email='*****@*****.**', password='******')
admin = User(username='******', email='*****@*****.**', password='******')

db.session.add(guest)
db.session.add(admin)

db.session.commit()
Exemplo n.º 23
0
from sqlalchemy.orm.session import Session
from app.database import SessionLocal
from app.models.users import User
from app.dependencies import hash_password, get_db

if __name__ == '__main__':
    db = SessionLocal()

    admin = db.query(User).get("admin")
    if admin:
        print("Admin user already exists")
        db.close()
        quit()

    user = User()
    user.active = True
    user.admin = True
    user.username = "******"
    user.hashed_password = hash_password("admin")
    user.name = "Admin"
    db.add(user)
    db.flush()
    db.commit()

    print("Admin user created")
    db.close()
Exemplo n.º 24
0
from app.models.users import User
from app.models.wines import Wine
from app import app, db
from dotenv import load_dotenv
load_dotenv()

with app.app_context():
    db.drop_all()
    db.create_all()

    demo = User(name='demo',
                email='*****@*****.**',
                hashed_password=
                "******")

    # wine = Wine(

    #   name='Rosé Win',
    #   description='The estate was founded by the Meyer family circa 1870, and was known as Weingut A. Meyer for four generations. In 1950 through marriage of a Meyer daughter and Willibald Nakel (who also came from a wine making family) the estate became known as Weingut Meyer-Nakel. After completing his university studies Werner Nakel first taught mathematics and coached sports. In 1983 Werner took over the estate and with the 1987 vintage won top honors for the best Pinot Noir in Germany according to the German language publication Vinum. This was repeated in 1994 and 1995. Since 1987 the estate has been continuously listed as one of the top 100 wineries in Germany by DM magazine. The estate joined the V.D.P. in 1993 and in 1996 Feinschmecker nominated Werner Nakel as a candidate for vintner of the year. In the 1997 Gault Millau guide, the ‘94 Meyer-Nakel ”S” Pinot Noir was voted the best red wine in Germany. The estate consists of 21 acres and produces approximately 5800 cases ever year. The top vineyard sites include Pfarrwingert in Dernau, the Sonnenberg in Neuenahr, and the Riegelfeld and Ursulinengarten in Ahrweiler. The soil is made up primarily of weathered slate with some loamy loess. The vineyards are planted 73% to Pinot Noir, 12% to Fruhburgunder, 10% to Dornfelder and 5% to Riesling. Average yield is about 60 hl\ha.',
    #     verietal='Mourvèdre'

    # )

    db.session.add(demo)
    # db.session.add(wine)

    db.session.commit()
Exemplo n.º 25
0
def addUser(email, username, password):
    "Run the add-user"
    user = User(email=email, username=username, password=password)
    db.session.add(user)
    db.session.commit()
Exemplo n.º 26
0
 def getAllUsers():
     allUsers = User(allData=False)
     request = allUsers.getAllUsers()
     return request
Exemplo n.º 27
0
 def new():
     user = User()
     return render_template('users/new.html')
Exemplo n.º 28
0
 def createUsers():
     requestBody = request.get_json()
     newUser = User(requestBody)
     createUser = newUser.createUser()
     return createUser
Exemplo n.º 29
0
def insert_user(name: str) -> User:
    user = User(name)
    with session_scope() as session:
        session.add(user)
        session.flush()
        return user
from app.models.users import User

ian = User(username='******',
           email='*****@*****.**',
           hashed_password='******')
javier = User(username='******',
              email='*****@*****.**',
              hashed_password='******')
dean = User(username='******',
            email='*****@*****.**',
            hashed_password='******')
angela = User(username='******',
              email='*****@*****.**',
              hashed_password='******')
soonmi = User(username='******',
              email='*****@*****.**',
              hashed_password='******')
alissa = User(username='******',
              email='*****@*****.**',
              hashed_password='******')
bob = User(username='******',
           email='*****@*****.**',
           hashed_password='******')
tim = User(username='******',
           email='*****@*****.**',
           hashed_password='******')
jenny = User(username='******',
             email='*****@*****.**',
             hashed_password='******')
sam = User(username='******',
           email='*****@*****.**',