Skip to content

Commit 1d96e1f

Browse files
committed
feat: implement captcha creation and account registration endpoints
1 parent f1ec864 commit 1d96e1f

File tree

4 files changed

+18
-13
lines changed

4 files changed

+18
-13
lines changed

services/web/server/src/simcore_service_webserver/login_accounts/_service.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
import functools
23
import logging
34
from io import BytesIO
@@ -112,19 +113,23 @@ async def send_account_request_email_to_support(
112113

113114

114115
async def create_captcha() -> tuple[str, bytes]:
115-
captcha_text = generate_passcode(number_of_digits=6)
116-
image = ImageCaptcha(width=140, height=45)
116+
def _run() -> tuple[str, bytes]:
117+
captcha_text = generate_passcode(number_of_digits=6)
118+
image = ImageCaptcha(width=140, height=45)
117119

118-
# Generate image
119-
data: Image = image.create_captcha_image(
120-
chars=captcha_text, color=(221, 221, 221), background=(0, 20, 46)
121-
)
120+
# Generate image
121+
data: Image = image.create_captcha_image(
122+
chars=captcha_text, color=(221, 221, 221), background=(0, 20, 46)
123+
)
124+
125+
img_byte_arr = BytesIO()
126+
data.save(img_byte_arr, format="PNG")
127+
image_data = img_byte_arr.getvalue()
122128

123-
img_byte_arr = BytesIO()
124-
data.save(img_byte_arr, format="PNG")
125-
image_data = img_byte_arr.getvalue()
129+
return (captcha_text, image_data)
126130

127-
return (captcha_text, image_data)
131+
loop = asyncio.get_event_loop()
132+
return await loop.run_in_executor(None, _run)
128133

129134

130135
async def create_pre_registration(

services/web/server/src/simcore_service_webserver/login_accounts/plugin.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
from aiohttp import web
44
from servicelib.aiohttp.application_setup import ensure_single_setup
55

6-
from . import _controler_rest
6+
from . import _controller_rest
77

88
_logger = logging.getLogger(__name__)
99

1010

1111
@ensure_single_setup(__name__, logger=_logger)
1212
def setup_login_account(app: web.Application):
13-
app.add_routes(_controler_rest.routes)
13+
app.add_routes(_controller_rest.routes)

services/web/server/tests/unit/with_dbs/03/login/test_login_accounts_preregistration.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def mocked_send_email(mocker: MockerFixture) -> MagicMock:
6060
@pytest.fixture
6161
def mocked_captcha_session(mocker: MockerFixture) -> MagicMock:
6262
return mocker.patch(
63-
"simcore_service_webserver.login._controller.rest.preregistration.session_service.get_session",
63+
"simcore_service_webserver.login_accounts._controller_rest.session_service.get_session",
6464
spec=True,
6565
return_value={"captcha": "123456"},
6666
)

0 commit comments

Comments
 (0)