seed listing view and template
This commit is contained in:
		
					parent
					
						
							
								321d8548da
							
						
					
				
			
			
				commit
				
					
						d37144c541
					
				
			
		
					 2 changed files with 73 additions and 6 deletions
				
			
		
							
								
								
									
										35
									
								
								dal/templates/seed_list.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								dal/templates/seed_list.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,35 @@
 | 
				
			||||||
 | 
					{% extends "base_short.html" %}
 | 
				
			||||||
 | 
					{% load i18n staticfiles bootstrap3 %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block title %}
 | 
				
			||||||
 | 
					    <title>Options for {{user}}</title>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block content %}
 | 
				
			||||||
 | 
					    <div class="auth-container">
 | 
				
			||||||
 | 
					        <div class="auth-bg"></div>
 | 
				
			||||||
 | 
					        <div class="auth-center">
 | 
				
			||||||
 | 
					            <div class="auth-content">
 | 
				
			||||||
 | 
					                <div class="auth-box">
 | 
				
			||||||
 | 
					                    <h1 class="section-heading allcaps">{% trans "Seeds of," %} {{user}}</h1><br><br>
 | 
				
			||||||
 | 
					                    <table class="table table-hover text-center">
 | 
				
			||||||
 | 
					                        <tbody>
 | 
				
			||||||
 | 
					                        {% for i in seed  %}
 | 
				
			||||||
 | 
					                          <tr>
 | 
				
			||||||
 | 
					                            <td>{{ i.realm }}</td>
 | 
				
			||||||
 | 
					                            <td>{{ i.seed }}</td>
 | 
				
			||||||
 | 
					                          </tr>
 | 
				
			||||||
 | 
					                        {% endfor %}
 | 
				
			||||||
 | 
					                        </tbody>
 | 
				
			||||||
 | 
					                    </table>
 | 
				
			||||||
 | 
					                    <br>
 | 
				
			||||||
 | 
					                    <hr>
 | 
				
			||||||
 | 
					                    <div class="text-center">
 | 
				
			||||||
 | 
					                        <a href="{% url 'account_delete' %}">Delete your account</a><br>
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
							
								
								
									
										42
									
								
								dal/views.py
									
										
									
									
									
								
							
							
						
						
									
										42
									
								
								dal/views.py
									
										
									
									
									
								
							| 
						 | 
					@ -34,6 +34,13 @@ from django.conf import settings
 | 
				
			||||||
from django.contrib.auth.mixins import LoginRequiredMixin
 | 
					from django.contrib.auth.mixins import LoginRequiredMixin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					admin_seed = config('ADMIN_SEED')
 | 
				
			||||||
 | 
					admin_name = config('ADMIN_NAME')
 | 
				
			||||||
 | 
					admin_realm = config('ADMIN_REALM')
 | 
				
			||||||
 | 
					user_realm = config('USER_REALM')
 | 
				
			||||||
 | 
					otp_url = config('OTPSERVER')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def activate_account_link(base_url, user, pwd, firstname, lastname, email, epochutc):
 | 
					def activate_account_link(base_url, user, pwd, firstname, lastname, email, epochutc):
 | 
				
			||||||
    tokengen = PasswordResetTokenGenerator()
 | 
					    tokengen = PasswordResetTokenGenerator()
 | 
				
			||||||
    pseudouser = PseudoUser()
 | 
					    pseudouser = PseudoUser()
 | 
				
			||||||
| 
						 | 
					@ -551,6 +558,17 @@ class ActivateAccount(View):
 | 
				
			||||||
            ldap_manager.create_user(
 | 
					            ldap_manager.create_user(
 | 
				
			||||||
                clean_list[0], clean_list[1], clean_list[2], clean_list[3], clean_list[4]
 | 
					                clean_list[0], clean_list[1], clean_list[2], clean_list[3], clean_list[4]
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
					            req = requests.post(otp_url, data=json.dumps(
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    'auth_token': TOTP(admin_seed).now(),
 | 
				
			||||||
 | 
					                    'auth_name': admin_name,
 | 
				
			||||||
 | 
					                    'auth_realm': admin_realm,
 | 
				
			||||||
 | 
					                    'name': clean_list[0],
 | 
				
			||||||
 | 
					                    'realm': user_realm
 | 
				
			||||||
 | 
					                }), headers={'Content-Type': 'application/json'})
 | 
				
			||||||
 | 
					            if req.status_code != 201:
 | 
				
			||||||
 | 
					                logger.error("User {} failed to create its otp seed".format(clean_list[0]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            #Send welcome email
 | 
					            #Send welcome email
 | 
				
			||||||
        except Exception as e:
 | 
					        except Exception as e:
 | 
				
			||||||
            return render(request, 'error.html', {'urlname': 'register',
 | 
					            return render(request, 'error.html', {'urlname': 'register',
 | 
				
			||||||
| 
						 | 
					@ -624,15 +642,12 @@ class SeedRetrieveCreate(APIView):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        user = authenticate(username=username, password=password)
 | 
					        user = authenticate(username=username, password=password)
 | 
				
			||||||
        if user is not None:
 | 
					        if user is not None:
 | 
				
			||||||
            admin_seed = config('ADMIN_SEED')
 | 
					 | 
				
			||||||
            admin_name = config('ADMIN_NAME')
 | 
					 | 
				
			||||||
            otp_url = config('OTPSERVER')
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            req = requests.get(otp_url, data=json.dumps(
 | 
					            req = requests.get(otp_url, data=json.dumps(
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    'auth_token': TOTP(admin_seed).now(),
 | 
					                    'auth_token': TOTP(admin_seed).now(),
 | 
				
			||||||
                    'auth_name': admin_name,
 | 
					                    'auth_name': admin_name,
 | 
				
			||||||
                    'auth_realm': 'ungleich-admin'}), headers={'Content-Type': 'application/json'})
 | 
					                    'auth_realm': admin_realm}), headers={'Content-Type': 'application/json'})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            response_data = json.loads(req.text)
 | 
					            response_data = json.loads(req.text)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -648,7 +663,7 @@ class SeedRetrieveCreate(APIView):
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        'auth_token': TOTP(admin_seed).now(),
 | 
					                        'auth_token': TOTP(admin_seed).now(),
 | 
				
			||||||
                        'auth_name': admin_name,
 | 
					                        'auth_name': admin_name,
 | 
				
			||||||
                        'auth_realm': 'ungleich-admin',
 | 
					                        'auth_realm': admin_realm,
 | 
				
			||||||
                        'name': username,
 | 
					                        'name': username,
 | 
				
			||||||
                        'realm': realm
 | 
					                        'realm': realm
 | 
				
			||||||
                    }), headers={'Content-Type': 'application/json'})
 | 
					                    }), headers={'Content-Type': 'application/json'})
 | 
				
			||||||
| 
						 | 
					@ -660,3 +675,20 @@ class SeedRetrieveCreate(APIView):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            return Response('Invalid Credentials', 400)
 | 
					            return Response('Invalid Credentials', 400)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Seeds(LoginRequiredMixin, View):
 | 
				
			||||||
 | 
					    login_url = reverse_lazy('login_index')
 | 
				
			||||||
 | 
					    def get(self, request):
 | 
				
			||||||
 | 
					        seedlist = []
 | 
				
			||||||
 | 
					        response = requests.get(
 | 
				
			||||||
 | 
					            otp_url,
 | 
				
			||||||
 | 
					            headers={'Content-Type': 'application/json'},
 | 
				
			||||||
 | 
					            data=json.dumps(
 | 
				
			||||||
 | 
					                {'auth_name': admin_name, 'auth_realm': admin_realm, 'auth_token': TOTP(admin_seed).now()}))
 | 
				
			||||||
 | 
					        response_data = json.loads(response.text)
 | 
				
			||||||
 | 
					        for i in range(len(response_data)):
 | 
				
			||||||
 | 
					            if response_data[i]['name'] == 'wcolmenares': #request.user:
 | 
				
			||||||
 | 
					                value = {'realm': response_data[i]['realm'], 'seed': response_data[i]['seed']}
 | 
				
			||||||
 | 
					                seedlist.append(value)
 | 
				
			||||||
 | 
					        return render(request, 'seed_list.html', {'seed': seedlist})
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue