From 696895715943030398572c6f3699f97f6241b133 Mon Sep 17 00:00:00 2001 From: aitzol Date: Tue, 4 Apr 2023 20:26:56 +0200 Subject: [PATCH] device detection --- app.py | 31 ++++++++++--------- data/invite-codes.db | Bin 8192 -> 8192 bytes libs/__pycache__/flist.cpython-39.pyc | Bin 21988 -> 21988 bytes libs/__pycache__/helper.cpython-39.pyc | Bin 1659 -> 1659 bytes libs/__pycache__/localization.cpython-39.pyc | Bin 3585 -> 3585 bytes libs/__pycache__/slist.cpython-39.pyc | Bin 8243 -> 8243 bytes 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app.py b/app.py index e1e4e46..23055ae 100644 --- a/app.py +++ b/app.py @@ -186,8 +186,8 @@ def post_signup(): elif form('password') != form('confirm-password'): return error(i18n.msg[7]) - try: - account_request(username, firstname, surname, form('password'), email, isFake) + try: + account_request(username, firstname, surname, form('password'), email, isFake, get_dev()) except Error as e: LOG.warning("Unsuccessful attempt to create an account for %s: %s" % (form('username'), e)) return error(str(e)) @@ -444,14 +444,14 @@ def logout_user_ldap(conf, username): LOG.info("%s LOGED OUT" % (username)) #SIGN UP -def account_request(username, firstname, surname, password, email, isFake): +def account_request(username, firstname, surname, password, email, isFake, device): created = [] for key in (key for key in CONF.sections() if key == 'ldap' or key.startswith('ldap:')): LOG.debug("Creating account for %s on %s server" % (username, key)) try: - new_user_account(CONF[key], username, firstname, surname, password, email, isFake) + new_user_account(CONF[key], username, firstname, surname, password, email, isFake, device) created.append(key) except Error as e: for key in reversed(created): @@ -478,7 +478,7 @@ def new_user_account(conf, *args): LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) raise Error(i18n.msg[23]) -def register(conf, username, firstname, surname, password, email, isFake): +def register(conf, username, firstname, surname, password, email, isFake, device): def to_ascii(str): ascii_str="" @@ -509,7 +509,8 @@ def register(conf, username, firstname, surname, password, email, isFake): uidNumber = find_uid_number(conf,c)+1 directory = 'home/user/'+to_ascii(username) OBJECT_CLASS = ['top', 'inetOrgPerson', 'posixAccount', 'accountsManagement'] - attributes = {'gidNumber': '501', 'uidNumber': uidNumber, 'homeDirectory': directory, 'givenName': firstname, 'sn': surname, 'uid' : username, 'mail': email, 'active': False, 'fakeCn': isFake} + attributes = {'gidNumber': '501', 'uidNumber': uidNumber, 'homeDirectory': directory, 'givenName': + firstname, 'sn': surname, 'uid' : username, 'mail': email, 'active': False, 'fakeCn': isFake, 'device':device} new_user_dn = "cn="+firstname+" "+surname+" - "+username+",cn=users,"+conf['base'] c.add(dn=new_user_dn,object_class=OBJECT_CLASS, attributes=attributes) #create/change user password @@ -785,7 +786,7 @@ def get_user_email_array(user_dn, conn, old_email, new_email): def get_user_data(user_dn, conn): search_filter = '(objectClass=*)' - conn.search(user_dn, search_filter, attributes=['active','fakeCn','givenName','sn','uid','mail']) + conn.search(user_dn, search_filter, attributes=['active','fakeCn','givenName','sn','uid','mail','device']) data = [] data.append(conn.entries[0].active.values[0]) data.append(conn.entries[0].fakeCn.values[0]) @@ -793,6 +794,7 @@ def get_user_data(user_dn, conn): data.append(conn.entries[0].sn.values[0]) data.append(conn.entries[0].uid.values[0]) data.append(conn.entries[0].mail.values[0]) + data.append(conn.entries[0].device.values) return(data) def read_config(): @@ -818,6 +820,12 @@ def reg(): allowed = reg() +def get_dev(): + ua_string = bottle.request.environ.get('HTTP_USER_AGENT') + user_agent = parse(ua_string) + return str(user_agent) + + class Error(Exception): pass @@ -835,14 +843,6 @@ def newSession(): global i18n i18n = LocalizeTo(self.lang, CONF) - self.device = self.get_dev() - - def get_dev(self): - ua_string = bottle.request.environ.get('HTTP_USER_AGENT') - user_agent = parse(ua_string) - - return str(user_agent) - def get_lang(self): if 'HTTP_ACCEPT_LANGUAGE' in bottle.request.environ: lang = bottle.request.get('HTTP_ACCEPT_LANGUAGE') @@ -863,6 +863,7 @@ def newSession(): self.surname = data[3] self.username = data[4] self.mail = data[5] + self.device = data[6] self.data['active'] = self.active self.data['fakeCn'] = self.fakeCn diff --git a/data/invite-codes.db b/data/invite-codes.db index b718294a0c7ce53257d89b629028c46d4ce19890..eec80d49981f0b208616877b230f759a34d739f0 100644 GIT binary patch delta 42 ycmZp0XmFSy&1gDN#+l!gLCb8cw(iqk^5#S090ZIb8=zOBRk^5#S09D)vGXMYp diff --git a/libs/__pycache__/helper.cpython-39.pyc b/libs/__pycache__/helper.cpython-39.pyc index b7a2554a62854f693ad73e83692e1909a34aecf7..7f6d26621ab52269973b0680e2e69113096524ef 100644 GIT binary patch delta 20 acmey(^P7h|k(ZZ?0SKO0>1^aKU;_Xo0Ivcsa@d5xWvINus delta 20 acmZpaX_Vnk1^cIPyhfor3A$Q delta 20 acmdn&u-Sn-k(ZZ?0SG#uXm8}!Pyhfq9|aQt