summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/pixelated/authentication.py28
-rw-r--r--service/test/unit/test_authentication.py18
2 files changed, 23 insertions, 23 deletions
diff --git a/service/pixelated/authentication.py b/service/pixelated/authentication.py
index 4b268435..c9961476 100644
--- a/service/pixelated/authentication.py
+++ b/service/pixelated/authentication.py
@@ -1,32 +1,34 @@
import re
-from email.utils import parseaddr
+
class Authentication(object):
+ def __init__(self, username, token, uuid, session_id, user_attributes):
+ self.username = username
+ self.token = token
+ self.uuid = uuid
+ self.session_id = session_id
+ self._user_attributes = user_attributes
+
+ def is_admin(self):
+ return self._user_attributes.get('is_admin', False)
+
+class Authenticator(object):
def __init__(self, domain):
self.domain = domain
- # self.token = token
- # self.uuid = uuid
- # self.session_id = session_id
- # self._user_attributes = user_attributes
def authenticate(self, username, password):
self.username = self.validate_username(username)
self.srp_auth(username, password)
def validate_username(self, username):
- if '@' not in username: return True
- extracted_username = self.extract_username(username)
- if self.username_with_domain(extracted_username) == username:
+ if '@' not in username:
return True
- else:
- return False
+ extracted_username = self.extract_username(username)
+ return self.username_with_domain(extracted_username) == username
def extract_username(self, username):
return re.search('^([^@]+)@?.*$', username).group(1)
def username_with_domain(self, username):
return '%s@%s' % (username, self.domain)
-
- def is_admin(self):
- return self._user_attributes.get('is_admin', False)
diff --git a/service/test/unit/test_authentication.py b/service/test/unit/test_authentication.py
index 2fb97d69..34138b5e 100644
--- a/service/test/unit/test_authentication.py
+++ b/service/test/unit/test_authentication.py
@@ -1,34 +1,32 @@
from twisted.trial import unittest
-from leap.bitmask.bonafide._srp import SRPAuthError
-from pixelated.authentication import Authentication
+from pixelated.authentication import Authenticator
-class AuthenticationTest(unittest.TestCase):
-
+class AuthenticatorTest(unittest.TestCase):
def test_authenticates_with_username_and_password(self):
self.fail()
def test_validate_username_accepts_username(self):
- auth = Authentication('domain.org')
+ auth = Authenticator('domain.org')
self.assertTrue(auth.validate_username('username'))
def test_validate_username_accepts_email_address(self):
- auth = Authentication('domain.org')
+ auth = Authenticator('domain.org')
self.assertTrue(auth.validate_username('username@domain.org'))
def test_validate_username_denies_other_domains(self):
- auth = Authentication('domain.org')
+ auth = Authenticator('domain.org')
self.assertFalse(auth.validate_username('username@wrongdomain.org'))
def test_username_with_domain(self):
- auth = Authentication('domain.org')
+ auth = Authenticator('domain.org')
self.assertEqual('user@domain.org', auth.username_with_domain('user'))
def test_extract_username_extracts_from_plain_username(self):
- auth = Authentication('domain.org')
+ auth = Authenticator('domain.org')
self.assertEqual(auth.extract_username('user'), 'user')
def test_extract_username_extracts_from_email_address(self):
- auth = Authentication('domain.org')
+ auth = Authenticator('domain.org')
self.assertEqual(auth.extract_username('user@domain.org'), 'user')