flask_more_smorest.perms.user_blueprint

User Blueprint with authentication endpoints.

Classes

UserBlueprint([name, import_name, model, ...])

Blueprint for User CRUD operations with authentication endpoints.

flask_more_smorest.perms.user_blueprint.__getattr__(name)[source]

Lazy attribute access for default user_bp instance.

Return type:

UserBlueprint

class flask_more_smorest.perms.user_blueprint.UserBlueprint(name='users', import_name='flask_more_smorest.perms.user_blueprint', model=None, schema=None, url_prefix='/api/users/', methods=None, skip_methods=None, register=False, **kwargs)[source]

Blueprint for User CRUD operations with authentication endpoints.

This blueprint extends CRUDBlueprint to provide: - Standard CRUD operations for User model (GET, POST, PATCH, DELETE) - Public login endpoint (POST /login/) - Current user profile endpoint (GET /me/)

When the User model has PUBLIC_REGISTRATION=True, the POST endpoint is automatically made public to allow unauthenticated user registration.

Parameters:
  • name (str) – Blueprint name (default: “users”)

  • import_name (str) – Import name (default: __name__)

  • model (type[BaseModel] | str | None) – Model class or string (default: User from registry)

  • schema (type[Schema] | str | None) – Schema class or string (default: UserSchema)

  • url_prefix (str | None) – URL prefix for all routes (default: “/api/users/”)

  • methods (list[CRUDMethod] | Mapping[CRUDMethod, MethodConfig | bool] | None) – CRUD methods to enable (default: all methods)

  • skip_methods (list[CRUDMethod] | None) – CRUD methods to disable (default: None)

  • register (bool) – If True, register the model with init_fms (default: False)

  • **kwargs (Any) – Additional arguments passed to CRUDBlueprint

Example

>>> user_bp = UserBlueprint()
>>> app.register_blueprint(user_bp)
>>> # With custom configuration
>>> user_bp = UserBlueprint(
...     url_prefix="/api/v2/users/",
...     skip_methods=[CRUDMethod.DELETE]
... )
>>> # Register custom user model
>>> user_bp = UserBlueprint(model=MyUser, register=True)
>>> # Enable public registration
>>> class PublicUser(User):
...     PUBLIC_REGISTRATION = True
>>> public_bp = UserBlueprint(model=PublicUser)
__init__(name='users', import_name='flask_more_smorest.perms.user_blueprint', model=None, schema=None, url_prefix='/api/users/', methods=None, skip_methods=None, register=False, **kwargs)[source]

Initialize UserBlueprint with default User model and schema.