def login(data): # Assign vars email = data["email"] password = data["password"] try: # Fetch user data if not (user := User.objects(email=email).get_not_trashed().first()): return err_resp( "ایمیل یا رمزعبور صحیح نمیباشد.", "credentials_mismatch", 401, ) elif user and user.check_password(password): user_info = user_schema.dump(user) access_token = create_access_token(identity=str(user.id)) refresh_token = create_refresh_token(identity=str(user.id)) resp = message(True, "ورود موفقیت آمیز.") resp["access_token"] = access_token resp["refresh_token"] = refresh_token resp["user"] = user_info return resp, 200
def __add_user(data, is_superuser=False): # Required values email = data["email"] password = data["password"] date_joined = data["date_joined"] if type(date_joined) is str: date_joined = dateutil.parser.parse(date_joined) date_joined = date_joined.astimezone(timezone('UTC')) # Optional data_first_name = data.get("first_name") data_last_name = data.get("last_name") data_is_active = data.get("is_active") data_is_staff = data.get("is_staff") # Check if the email is taken if User.objects(email=email).first() is not None: return validation_error( False, {"email": ["این ایمیل قبلا ثبت شده است."]}), 422 try: new_user = User( first_name=data_first_name, last_name=data_last_name, date_joined=date_joined, email=email, is_active=data_is_active, is_staff=data_is_staff, is_superuser=is_superuser, ) new_user.set_password_hash(password) new_user.save() # Load the new user's info user_info = user_schema.dump(new_user) resp = message(True, "کاربر با موفقیت ایجاد شد.") resp["user"] = user_info return resp, 201 except Exception as error: current_app.logger.error(error) return internal_err_resp()