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")
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")
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")
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
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
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()
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)