2fa-1.1
This commit is contained in:
		
							parent
							
								
									4ea6831be2
								
							
						
					
					
						commit
						b783617335
					
				
							
								
								
									
										6
									
								
								_2fa.tpl
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								_2fa.tpl
									
									
									
									
									
								
							| @ -17,11 +17,11 @@ | ||||
| 
 | ||||
|         % if data['secureAuth'] == True: | ||||
|             <div class="qr-code"> | ||||
|                 <img src="{{'static/tmp/'+data['authCode']+'.png'}}" />  | ||||
|                 <img src="{{'static/tmp/'+data['authToken']+'.png'}}" />  | ||||
|             </div> | ||||
|             <form name="disable2faForm" method="post" action="/disable_2fa"> | ||||
| 
 | ||||
|                 <input id="2fa" name="2fa" type="text" value="{{data['authCode']}}" readonly> | ||||
|                 <input id="2fa" name="2fa" type="text" value="{{data['authToken']}}" readonly> | ||||
| 
 | ||||
|                 <div class="form-buttons"> | ||||
|                     <a href="/user"><button class="green" type="button">{{ str['back'] }}</button></a> | ||||
| @ -34,7 +34,7 @@ | ||||
| 
 | ||||
|             <form name="enable2faForm" method="post" action="/enable_2fa"> | ||||
| 
 | ||||
|                 <input id="2fa" name="2fa" type="text" value="{{data['authCode']}}" readonly> | ||||
|                 <input id="2fa" name="2fa" type="text" value="{{data['authToken']}}" readonly> | ||||
| 
 | ||||
|                 <div class="form-buttons"> | ||||
|                     <a href="/user"><button class="green" type="button">{{ str['back'] }}</button></a> | ||||
|  | ||||
							
								
								
									
										28
									
								
								app.py
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								app.py
									
									
									
									
									
								
							| @ -161,7 +161,7 @@ def post_user(): | ||||
|         if(newSession().get()['secureAuth']): | ||||
|             # encrypt and store the credentials | ||||
|             sid = newSession().get()['id'] | ||||
|             data = ';'.join([form('username'),form('password'),newSession().get()['authCode']]) | ||||
|             data = ';'.join([form('username'),form('password'),newSession().get()['authToken']]) | ||||
|             data_enc = cryptocode.encrypt(data, newSession().get()['id']) | ||||
|             data_to_url = base64.urlsafe_b64encode(str.encode(data_enc)) | ||||
|             memo.get(data_enc) | ||||
| @ -189,7 +189,7 @@ def post_user_step2(path): | ||||
|     def error(msg): | ||||
|         return index_tpl(alerts=[('error', msg, 'fadeOut')], str=i18n.str) | ||||
| 
 | ||||
|     #if not tools._2fa_validation(form('code'), newSession().get()['authCode']): | ||||
|     #if not tools._2fa_validation(form('code'), newSession().get()['authToken']): | ||||
|     if not tools._2fa_validation(form('code'), secret): | ||||
|         return error('Kode okerra. Saio hasierak huts egin du.') | ||||
|     else: | ||||
| @ -530,7 +530,7 @@ def login_user_ldap(conf, username, password): | ||||
|             LOG.debug("%s logged in to %s" % (username, conf['base'])) | ||||
|             #check if exists 2fa qr image | ||||
|             if(newSession().get()['secureAuth']): | ||||
|                 tools.gen_qr(newSession().get()['authCode']) | ||||
|                 tools.gen_qr(newSession().get()['authToken']) | ||||
| 
 | ||||
| #LOGOUT | ||||
| def logout(username): | ||||
| @ -783,10 +783,10 @@ def add_auth_attribute_step1(username, code, action): | ||||
|         try: | ||||
|             add_auth_attribute_step2(CONF[key], username, code, action) | ||||
|             changed.append(key) | ||||
|             LOG.debug("%s changed email address on %s" % (username, key)) | ||||
|             LOG.debug("%s has activated 2FA authentication on %s" % (username, key)) | ||||
|         except Error as e: | ||||
|             for key in reversed(changed): | ||||
|                 LOG.info("Reverting email change in %s for %s" % (key, username)) | ||||
|                 LOG.info("Reverting 2FA activation in %s for %s due to errors" % (key, username)) | ||||
|                 try: | ||||
|                     new_email_address(CONF[key], username, new_email, old_email) | ||||
|                 except Error as e2: | ||||
| @ -825,14 +825,14 @@ def add_auth_attribute_step3(conf, username, code, action): | ||||
|     with connect_ldap(conf, user=superUser.admin_dn, password=superUser.admin_pwd) as c: | ||||
|         user_dn = find_user_dn(conf, c, username) | ||||
|         if(action == 'enable'): | ||||
|             c.modify(user_dn,{'authCode': [(MODIFY_ADD, [code])]}) | ||||
|             c.modify(user_dn,{'authToken': [(MODIFY_ADD, [code])]}) | ||||
|             c.modify(user_dn,{'secureAuth': [MODIFY_REPLACE, [True]]}) | ||||
|         elif(action == 'disable'): | ||||
|             c.modify(user_dn,{'authCode': [(MODIFY_DELETE, [])]}) | ||||
|             c.modify(user_dn,{'authToken': [(MODIFY_DELETE, [])]}) | ||||
|             c.modify(user_dn,{'secureAuth': [MODIFY_REPLACE, [False]]}) | ||||
|             #remove file | ||||
|             try: | ||||
|                 remove('static/tmp/'+newSession().get()['authCode']+'.png') | ||||
|                 remove('static/tmp/'+newSession().get()['authToken']+'.png') | ||||
|             except OSError as e: | ||||
|                 LOG.warning(str(e)) | ||||
|                 #raise Error(e) | ||||
| @ -1067,7 +1067,7 @@ def get_user_data(user_dn, conn): | ||||
|     search_filter = '(objectClass=*)' | ||||
|     conn.search(user_dn, search_filter, | ||||
|                 attributes=['active','fakeCn','givenName','sn','uid','mail','devices','ip','lastLogin','secureAuth', | ||||
|                             'authCode']) | ||||
|                             'authToken']) | ||||
|     data = [] | ||||
|     data.append(conn.entries[0].active.values[0]) | ||||
|     data.append(conn.entries[0].fakeCn.values[0]) | ||||
| @ -1082,8 +1082,8 @@ def get_user_data(user_dn, conn): | ||||
|     #ts = datetime.strftime(t, '%Y-%m-%d %H:%M:%S') | ||||
|     data.append(str(conn.entries[0].lastLogin.values[0])[:-6]) | ||||
|     data.append(conn.entries[0].secureAuth.values[0]) | ||||
|     if(conn.entries[0].authCode): | ||||
|         data.append(conn.entries[0].authCode.values[0]) | ||||
|     if(conn.entries[0].authToken): | ||||
|         data.append(conn.entries[0].authToken.values[0]) | ||||
| 
 | ||||
|     return(data) | ||||
| 
 | ||||
| @ -1199,9 +1199,9 @@ def newSession(): | ||||
|             self.lastLogin = data[8] | ||||
|             self.secureAuth = data[9] | ||||
|             try: | ||||
|                 self.authCode = data[10] | ||||
|                 self.authToken = data[10] | ||||
|             except: | ||||
|                 self.authCode = None | ||||
|                 self.authToken = None | ||||
| 
 | ||||
|             self.data['active'] = self.active | ||||
|             self.data['fakeCn'] = self.fakeCn | ||||
| @ -1213,7 +1213,7 @@ def newSession(): | ||||
|             self.data['ip'] = self.ip | ||||
|             self.data['lastLogin'] = self.lastLogin | ||||
|             self.data['secureAuth'] = self.secureAuth | ||||
|             self.data['authCode'] = self.authCode | ||||
|             self.data['authToken'] = self.authToken | ||||
| 
 | ||||
|         def close(self): | ||||
|             self.data.pop('username') | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user