flask_more_smorest.perms.user_blueprint
User Blueprint with authentication endpoints.
Classes
|
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:
- 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)