Exemple #1
0
def login():
    data = request.get_json()
    if "password" not in data:
        raise BadRequest("Password was not Given")
    password = data["password"]
    if "email" in data:
        email = data["email"]
        if user_repository.exists_by_email(email):
            user = user_repository.get_by_email(email)
        else:
            raise Unauthorized("Email or Password is incorrect")
    elif "username" in data:
        username = data["username"]
        if user_repository.exists_by_username(username):
            user = user_repository.get_by_username(username)
        else:
            raise Unauthorized("Username or Password is incorrect")
    else:
        raise BadRequest("Neither username nor email was given")
    if user.password == hash_password(password):
        if user.is_active:
            return jsonify({"Token": create_token(user)})
        else:
            raise Unauthorized("Inactivated Account")
    raise Unauthorized("Email or Username or Password is incorrect")
Exemple #2
0
def admin_login():
    if check_request_data("username", "password"):
        username = request.get_json()["username"]
        password = request.get_json()["password"]
        if admin_repository.exists_by_username(username):
            admin = admin_repository.get_by_username(username)
        else:
            raise Unauthorized("Username or Password is incorrect")
        if admin.password == hash_password(password):
            return jsonify({"Token": create_token(admin)})
        raise Unauthorized("Username or Password is incorrect")
Exemple #3
0
def register():
    if check_request_data("username", "password", "email"):
        data = request.get_json()
        username = data["username"]
        password = data["password"]
        email = data["email"]
        if not user_repository.exists_by_username(username):
            if not user_repository.exists_by_email(email):
                password = hash_password(password)
                user = User(username=username,
                            password=password,
                            email=email,
                            is_active=True)
                user = user_repository.add(user)
                #send_activation_mail(email,user)
                return jsonify({"Message": "Successful"}), 201
            raise Conflict("Another User uses this email")
        raise Conflict("Another User uses this username")
Exemple #4
0
def create_user(
    user: CreateUserSchema,
    db: sa.orm.Session = get_db,
) -> UserSchema:
    """
    Create new user.
    """
    user = user.dict(exclude_unset=True)
    user["password"] = hash_password(user["password"])
    user = User(**user)
    db.add(user)
    try:
        db.commit()
    except sa.exc.IntegrityError:
        db.rollback()
        raise HTTPException(
            status_code=400,
            detail="A user with this email already exists.",
        )

    return user
Exemple #5
0
def update_user(
        updated_user: UpdateUserSchema,
        user_id: int = Path(...),
        db: sa.orm.Session = get_db,
) -> UserSchema:
    """
    Update a user.
    """
    user = db.get(User, user_id)
    if user is None:
        raise HTTPException(status_code=404, detail="User not found")

    updated_user = updated_user.dict(exclude_unset=True)
    try:
        updated_user["password"] = hash_password(updated_user["password"])
    except KeyError:
        pass

    user.update(updated_user)
    db.commit()

    return user
Exemple #6
0
from app.models import User
from app.schemas import CreateUserSchema
from app.security import hash_password

# %%
db: sa.orm.Session = SessionLocal()

# %%
user = CreateUserSchema(name="Gustavo Carvalho",
                        email="*****@*****.**",
                        password="******")

# %%
user = User(email=user.email,
            name=user.name,
            password=hash_password(user.password))

# %%
print(user.created_at)
print(user.is_admin)

# %%
db.add(user)

# %%
try:
    db.commit()
except sa.exc.IntegrityError as err:
    print(err)
    e = err
    db.rollback()
Exemple #7
0
def create_admin():
    with app.app_context():
        admin_repository = AdminRepository()
        if admin_repository.count() == 0:
            admin = Admin(username="******", password=hash_password("1234"))
            admin_repository.add(admin)