summaryrefslogtreecommitdiff
path: root/service/pixelated/config/register.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/config/register.py')
-rw-r--r--service/pixelated/config/register.py27
1 files changed, 23 insertions, 4 deletions
diff --git a/service/pixelated/config/register.py b/service/pixelated/config/register.py
index 8a7caa8b..e1a07eca 100644
--- a/service/pixelated/config/register.py
+++ b/service/pixelated/config/register.py
@@ -14,17 +14,36 @@
# You should have received a copy of the GNU Affero General Public License
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
import re
+import os
+import os.path
+import getpass
+import logging
+import pixelated.bitmask_libraries.session as LeapSession
+from pixelated.bitmask_libraries.certs import which_api_CA_bundle
+from pixelated.bitmask_libraries.config import LeapConfig
+from pixelated.bitmask_libraries.provider import LeapProvider
+from leap.auth import SRPAuth
-from pixelated.bitmask_libraries.register import register_new_user
+logger = logging.getLogger(__name__)
-def register(username, server_name):
+def register(server_name, username):
try:
validate_username(username)
- register_new_user(username, server_name)
- except ValueError:
+ except ValueError, e:
print('Only lowercase letters, digits, . - and _ allowed.')
+ config = LeapConfig()
+ provider = LeapProvider(server_name, config)
+ password = getpass.getpass('Please enter password for %s: ' % username)
+ srp_auth = SRPAuth(provider.api_uri, which_api_CA_bundle(provider))
+
+ if srp_auth.register(username, password):
+ session = LeapSession.open(username, password, server_name)
+ session.nicknym.generate_openpgp_key()
+ else:
+ logger.error("Register failed")
+
def validate_username(username):
accepted_characters = '^[a-z0-9\-\_\.]*$'