Source code for magpie.api.management.register

from pyramid.security import NO_PERMISSION_REQUIRED
from pyramid.settings import asbool

from magpie.api import schemas as s
from magpie.api.management.register import register_views as rv
from magpie.constants import get_constant
from magpie.utils import get_logger

[docs] LOGGER = get_logger(__name__)
[docs] def includeme(config): LOGGER.info("Adding API register...") config.add_route(**s.service_api_route_info(s.RegisterGroupsAPI)) config.add_route(**s.service_api_route_info(s.RegisterGroupAPI)) config.add_route(**s.service_api_route_info(s.TemporaryUrlAPI)) register_user_enabled = asbool(get_constant("MAGPIE_USER_REGISTRATION_ENABLED", settings_container=config, default_value=False, print_missing=True, raise_missing=False, raise_not_set=False)) if register_user_enabled: LOGGER.info("Adding user registration route.") config.add_route(**s.service_api_route_info(s.RegisterUsersAPI)) config.add_route(**s.service_api_route_info(s.RegisterUserAPI)) # only admins can view/list/remove pending users, but anyone can self-register with pending user approval config.add_view(rv.get_pending_users_view, route_name=s.RegisterUsersAPI.name, request_method="GET") config.add_view(rv.create_pending_user_view, route_name=s.RegisterUsersAPI.name, request_method="POST", permission=NO_PERMISSION_REQUIRED) config.add_view(rv.get_pending_user_view, route_name=s.RegisterUserAPI.name, request_method="GET") config.add_view(rv.delete_pending_user_view, route_name=s.RegisterUserAPI.name, request_method="DELETE") else: LOGGER.info("User registration disabled [setting MAGPIE_USER_REGISTRATION].") config.scan()