summaryrefslogtreecommitdiff
path: root/service/pixelated/register.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/register.py')
-rw-r--r--service/pixelated/register.py24
1 files changed, 17 insertions, 7 deletions
diff --git a/service/pixelated/register.py b/service/pixelated/register.py
index 97f19d2e..2bdbb27b 100644
--- a/service/pixelated/register.py
+++ b/service/pixelated/register.py
@@ -16,6 +16,7 @@
import re
import getpass
import logging
+import sys
from pixelated.config import arguments
from pixelated.config import logger as logger_config
@@ -24,6 +25,7 @@ from pixelated.bitmask_libraries.config import LeapConfig
from pixelated.bitmask_libraries.provider import LeapProvider
from pixelated.bitmask_libraries.session import LeapSessionFactory
from leap.auth import SRPAuth
+from leap.common.events import server as events_server
import pixelated.extensions.shared_db
@@ -38,14 +40,17 @@ def register(
provider_cert,
provider_cert_fingerprint):
- try:
- validate_username(username)
- except ValueError:
- print('Only lowercase letters, digits, . - and _ allowed.')
-
if not password:
password = getpass.getpass('Please enter password for %s: ' % username)
+ try:
+ validate_username(username)
+ validate_password(password)
+ except ValueError, e:
+ print(e.message)
+ sys.exit(1)
+
+ events_server.ensure_server()
LeapCertificate.set_cert_and_fingerprint(provider_cert, provider_cert_fingerprint)
config = LeapConfig(leap_home=leap_home)
provider = LeapProvider(server_name, config)
@@ -60,8 +65,13 @@ def register(
def validate_username(username):
accepted_characters = '^[a-z0-9\-\_\.]*$'
- if not re.match(accepted_characters, username):
- raise ValueError
+ if (not re.match(accepted_characters, username)):
+ raise ValueError('Only lowercase letters, digits, . - and _ allowed.')
+
+
+def validate_password(password):
+ if len(password) < 8:
+ raise ValueError('The password must have at least 8 characters')
def initialize():