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…
Reference in a new issue