summaryrefslogtreecommitdiff
path: root/service/pixelated/authentication.py
blob: 4b26843553ac5c762802111406ce6a50ffdb680c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import re
from email.utils import parseaddr

class Authentication(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:
            return True
        else:
            return False

    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)