Added private_key field to UserHostingkey model, some html updates
This commit is contained in:
parent
8986aa6550
commit
d2d96e9951
5 changed files with 45 additions and 10 deletions
|
@ -71,7 +71,7 @@ class UserHostingKeyForm(forms.ModelForm):
|
|||
user = forms.models.ModelChoiceField(queryset=CustomUser.objects.all(),
|
||||
required=False, widget=forms.HiddenInput())
|
||||
name = forms.CharField(required=False, widget=forms.TextInput(
|
||||
attrs={'class': 'form_key_name', 'placeholder': 'Give a name to your key',}))
|
||||
attrs={'class': 'form_key_name', 'placeholder': 'Give a name to your key'}))
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.request = kwargs.pop("request")
|
||||
|
|
20
hosting/migrations/0041_userhostingkey_private_key.py
Normal file
20
hosting/migrations/0041_userhostingkey_private_key.py
Normal file
|
@ -0,0 +1,20 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.4 on 2017-07-06 09:06
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('hosting', '0040_hostingplan'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='userhostingkey',
|
||||
name='private_key',
|
||||
field=models.FileField(blank=True, upload_to='private_keys'),
|
||||
),
|
||||
]
|
|
@ -101,6 +101,7 @@ class HostingOrder(AssignPermissionsMixin, models.Model):
|
|||
class UserHostingKey(models.Model):
|
||||
user = models.ForeignKey(CustomUser)
|
||||
public_key = models.TextField()
|
||||
private_key = models.FileField(upload_to='private_keys', blank=True)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
name = models.CharField(max_length=100)
|
||||
|
||||
|
|
|
@ -40,9 +40,9 @@
|
|||
|
||||
<td>
|
||||
<button type="button" class="btn btn-default btn-custom-delete" data-toggle="modal"
|
||||
data-target="#Modal{{ user_key.id }}">
|
||||
<a href="#">
|
||||
{% trans "Delete"%}</a>
|
||||
data-target="#Modal{{ user_key.id }}" style="color: #717274">
|
||||
|
||||
{% trans "Delete"%}
|
||||
</button>
|
||||
|
||||
<div class="modal fade" id="Modal{{user_key.id }}" tabindex="-1" role="dialog">
|
||||
|
@ -105,10 +105,15 @@
|
|||
</td>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-default" data-toggle="modal"
|
||||
><a
|
||||
href="#">{% trans "Download"%}</a>
|
||||
{% if user_key.private_key %}
|
||||
<form action="{{ user_key.private_key.url }}">
|
||||
<button style="color: #717274" type="submit" class="btn btn-default" data-toggle="modal"
|
||||
>{% trans "Download"%}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
import uuid
|
||||
|
||||
from django.core.files.base import ContentFile
|
||||
from oca.pool import WrongNameError, WrongIdError
|
||||
from django.shortcuts import render
|
||||
from django.http import Http404
|
||||
|
@ -377,10 +380,12 @@ class SSHKeyChoiceView(LoginRequiredMixin, View):
|
|||
return render(request, self.template_name, context)
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
print('post method HERE!!!')
|
||||
name = generate_ssh_key_name()
|
||||
private_key, public_key = UserHostingKey.generate_keys()
|
||||
UserHostingKey.objects.create(user=request.user, public_key=public_key, name=name)
|
||||
content = ContentFile(private_key)
|
||||
ssh_key = UserHostingKey.objects.create(user=request.user, public_key=public_key, name=name)
|
||||
filename = name + '_' + str(uuid.uuid4())[:8] + '_private.pem'
|
||||
ssh_key.private_key.save(filename, content)
|
||||
return redirect(reverse_lazy('hosting:ssh_keys'), foo='bar')
|
||||
|
||||
|
||||
|
@ -399,6 +404,10 @@ class SSHKeyCreateView(LoginRequiredMixin, FormView):
|
|||
|
||||
def form_valid(self, form):
|
||||
form.save()
|
||||
if 'dcl-generated-key-' in form.instance.name:
|
||||
content = ContentFile(form.cleaned_data.get('private_key'))
|
||||
filename = form.cleaned_data.get('name') + '_' + str(uuid.uuid4())[:8] + '_private.pem'
|
||||
form.instance.private_key.save(filename, content)
|
||||
context = self.get_context_data()
|
||||
|
||||
next_url = self.request.session.get(
|
||||
|
|
Loading…
Reference in a new issue