Пример #1
0
    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
Пример #2
0
    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()