def user_keys(request): msg = None if request.method == "GET": form = SshKeyForm() else: form = SshKeyForm(request.POST) if form.is_valid(): dups = [] for key_type, key, comment in form.cleaned_data["ssh_pubkey"]: ssh_key = SshPublicKey(key_type=key_type, key=key, comment=comment, owner=request.user) fprint = ssh_key.compute_fingerprint() other_keys = SshPublicKey.objects.filter(owner=request.user, fingerprint=fprint) if not other_keys: ssh_key.fingerprint = fprint ssh_key.save() form = SshKeyForm() else: dups.append(fprint) if dups: msg = _("The following keys were skipped because" " they already exist:<br />%s") % "<br />".join(dups) msg = mark_safe(msg) keys = SshPublicKey.objects.filter(owner=request.user) return render( request, 'users/user_keys.html', { 'form': form, 'keys': keys, 'msg': msg } )