mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
feat: remove empty lines from ssh_keys text area, and show helpful message
Signed-off-by: Leonidas Spyropoulos <artafinde@archlinux.org>
This commit is contained in:
parent
7e06823e58
commit
48e5dc6763
4 changed files with 38 additions and 4 deletions
|
@ -192,7 +192,7 @@ def parse_ssh_key(string: str) -> Tuple[str, str]:
|
||||||
|
|
||||||
def parse_ssh_keys(string: str) -> list[Tuple[str, str]]:
|
def parse_ssh_keys(string: str) -> list[Tuple[str, str]]:
|
||||||
"""Parse a list of SSH public keys."""
|
"""Parse a list of SSH public keys."""
|
||||||
return [parse_ssh_key(e) for e in string.splitlines()]
|
return [parse_ssh_key(e) for e in string.strip().splitlines(True) if e.strip()]
|
||||||
|
|
||||||
|
|
||||||
def shell_exec(cmdline: str, cwd: str) -> Tuple[int, str, str]:
|
def shell_exec(cmdline: str, cwd: str) -> Tuple[int, str, str]:
|
||||||
|
|
|
@ -1398,6 +1398,10 @@ msgid ""
|
||||||
"the Arch User Repository."
|
"the Arch User Repository."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/partials/account_form.html
|
||||||
|
msgid "Specify multiple SSH Keys separated by new line, empty lines are ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: template/account_edit_form.php
|
#: template/account_edit_form.php
|
||||||
msgid "SSH Public Key"
|
msgid "SSH Public Key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -264,6 +264,13 @@
|
||||||
<textarea id="id_ssh" name="PK"
|
<textarea id="id_ssh" name="PK"
|
||||||
rows="5" cols="30">{{ ssh_pks | join("\n") }}</textarea>
|
rows="5" cols="30">{{ ssh_pks | join("\n") }}</textarea>
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
<em>
|
||||||
|
{{
|
||||||
|
"Specify multiple SSH Keys separated by new line, empty lines are ignored." | tr
|
||||||
|
}}
|
||||||
|
</em>
|
||||||
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
|
|
@ -96,14 +96,37 @@ YbxDwGimZZslg0OZu9UzoAT6xEGyiZsqJkTMbRp1ZYIOv9jHCJxRuxxuN3fzxyT3xE69+vhq2/NJX\
|
||||||
vTNJCD6JtMClxbIXW9q74nNqG+2SD/VQNMUz/505TK1PbY/4uyFfq5HquHJXQVCBll03FRerNHH2N\
|
vTNJCD6JtMClxbIXW9q74nNqG+2SD/VQNMUz/505TK1PbY/4uyFfq5HquHJXQVCBll03FRerNHH2N\
|
||||||
schFne6BFHpa48PCoZNH45wLjFXwUyrGU1HrNqh6ZPdRfBTrTOkgs+BKBxGNeV45aYUPu/cFBSPcB\
|
schFne6BFHpa48PCoZNH45wLjFXwUyrGU1HrNqh6ZPdRfBTrTOkgs+BKBxGNeV45aYUPu/cFBSPcB\
|
||||||
fRSo6OFcejKc="""
|
fRSo6OFcejKc="""
|
||||||
|
assert_multiple_keys(pks)
|
||||||
|
|
||||||
|
|
||||||
|
def test_parse_ssh_keys_with_extra_lines():
|
||||||
|
pks = """ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyN\
|
||||||
|
TYAAABBBEURnkiY6JoLyqDE8Li1XuAW+LHmkmLDMW/GL5wY7k4/A+Ta7bjA3MOKrF9j4EuUTvCuNX\
|
||||||
|
ULxvpfSqheTFWZc+g=
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDmqEapFMh/ajPHnm1dBweYPeLOUjC0Ydp6uw7rB\
|
||||||
|
S5KCggUVQR8WfIm+sRYTj2+smGsK6zHMBjFnbzvV11vnMqcnY+Sa4LhIAdwkbt/b8HlGaLj1hCWSh\
|
||||||
|
a5b5/noeK7L+CECGHdvfJhpxBbhq38YEdFnCGbslk/4NriNcUp/DO81CXb1RzJ9GBFH8ivPW1mbe9\
|
||||||
|
YbxDwGimZZslg0OZu9UzoAT6xEGyiZsqJkTMbRp1ZYIOv9jHCJxRuxxuN3fzxyT3xE69+vhq2/NJX\
|
||||||
|
8aRsxGPL9G/XKcaYGS6y6LW4quIBCz/XsTZfx1GmkQeZPYHH8FeE+XC/+toXL/kamxdOQKFYEEpWK\
|
||||||
|
vTNJCD6JtMClxbIXW9q74nNqG+2SD/VQNMUz/505TK1PbY/4uyFfq5HquHJXQVCBll03FRerNHH2N\
|
||||||
|
schFne6BFHpa48PCoZNH45wLjFXwUyrGU1HrNqh6ZPdRfBTrTOkgs+BKBxGNeV45aYUPu/cFBSPcB\
|
||||||
|
fRSo6OFcejKc=
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
assert_multiple_keys(pks)
|
||||||
|
|
||||||
|
|
||||||
|
def assert_multiple_keys(pks):
|
||||||
keys = util.parse_ssh_keys(pks)
|
keys = util.parse_ssh_keys(pks)
|
||||||
assert len(keys) == 2
|
assert len(keys) == 2
|
||||||
|
|
||||||
pfx1, key1, pfx2, key2 = pks.split()
|
pfx1, key1, pfx2, key2 = pks.split()
|
||||||
k1, k2 = keys
|
k1, k2 = keys
|
||||||
|
|
||||||
assert pfx1 == k1[0]
|
assert pfx1 == k1[0]
|
||||||
assert key1 == k1[1]
|
assert key1 == k1[1]
|
||||||
|
|
||||||
assert pfx2 == k2[0]
|
assert pfx2 == k2[0]
|
||||||
assert key2 == k2[1]
|
assert key2 == k2[1]
|
||||||
|
|
Loading…
Add table
Reference in a new issue