Source code for flask_unchained.bundles.security.views.user_resource
from flask_unchained import injectable
from flask_unchained.bundles.api import ModelResource
from flask_unchained.bundles.controller.constants import CREATE, GET, PATCH
from ..decorators import anonymous_user_required, auth_required_same_user
from ..models import User
from ..services import SecurityService
[docs]class UserResource(ModelResource):
"""
RESTful API resource for the :class:`~flask_unchained.bundles.security.User` model.
"""
security_service: SecurityService = injectable
class Meta:
model = User
include_methods = {CREATE, GET, PATCH}
method_decorators = {
CREATE: [anonymous_user_required],
GET: [auth_required_same_user],
PATCH: [auth_required_same_user],
}
# skipcq: PYL-W0221 (parameters mismatch in overridden method)
[docs] def create(self, user, errors):
if errors:
return self.errors(errors)
user_logged_in = self.security_service.register_user(user)
if user_logged_in:
return self.created({'token': user.get_auth_token(),
'user': user}, commit=False)
return self.created({'user': user}, commit=False)