Skip to content

Commit

Permalink
Enable download of Apple configuration profile for agdsn WLAN
Browse files Browse the repository at this point in the history
  • Loading branch information
FestplattenSchnitzel committed Jan 13, 2024
1 parent f9d3c18 commit c1e8294
Show file tree
Hide file tree
Showing 7 changed files with 312 additions and 0 deletions.
31 changes: 31 additions & 0 deletions sipa/blueprints/usersuite.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from collections import OrderedDict
import logging
from datetime import datetime
from io import BytesIO

from babel.numbers import format_currency
from flask import (
Expand All @@ -14,6 +15,7 @@
abort,
request,
current_app,
send_file,
)
from flask_babel import format_date, gettext
from flask_login import current_user, login_required
Expand Down Expand Up @@ -622,3 +624,32 @@ def reset_wifi_password():
return render_template('generic_form.html',
page_title=gettext("Neues WLAN Passwort"),
form_args=form_args)


@bp_usersuite.route("/get-apple-wlan-mobileconfig", methods=["GET"])
@login_required
def get_apple_wlan_mobileconfig():
"""
Get the mobileconfig for the agdsn WLAN for an Apple device.
"""

login = current_user.login.raw_value
wifi_password = current_user.wifi_password.raw_value

if not wifi_password:
abort(404)

return send_file(
BytesIO(
bytes(
render_template(
"apple-mobileconfig.xml.j2",
login=login,
wifi_password=wifi_password,
),
encoding="utf-8",
)
),
as_attachment=True,
download_name="agdsn.mobileconfig",
)
4 changes: 4 additions & 0 deletions sipa/static/js/usersuite_index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,7 @@ tocbot.init({
positionFixedSelector: '#usersuite-sidebar-nav',
extraLinkClasses: 'text-decoration-none'
});

// Enable popovers, see https://getbootstrap.com/docs/5.3/components/popovers/
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]');
const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl));
250 changes: 250 additions & 0 deletions sipa/templates/apple-mobileconfig.xml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,250 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadCertificateFileName</key>
<string>485bce6d-706a-2c6e-f08e-0d8cfd51760d.der</string>
<key>PayloadContent</key>
<data>
MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln
biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF
MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8
76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+
bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c
6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE
emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd
MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt
MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y
MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y
FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi
aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB
qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7
lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn
8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6
45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO
UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5
O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC
bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv
GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a
77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC
hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3
92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp
Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w
ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ</data>
<key>PayloadDescription</key>
<string>Das Identitätsprovider CA Zertifikat </string>
<key>PayloadDisplayName</key>
<string>Identitätsprovider CA #1 (Wurzel)</string>
<key>PayloadIdentifier</key>
<string>org.1x-config.agdsn.de.ag_dsn.ag_dsn.credential.0</string>
<key>PayloadOrganization</key>
<string>agdsn.1x-config.org</string>
<key>PayloadType</key>
<string>com.apple.security.root</string>
<key>PayloadUUID</key>
<string>485bce6d-706a-2c6e-f08e-0d8cfd51760d</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
<dict>
<key>PayloadCertificateFileName</key>
<string>226c10b6-f359-6eb7-282d-7a98772d17e8.der</string>
<key>PayloadContent</key>
<data>
MIIGiTCCBHGgAwIBAgIQAKlt3DnTbr8VpJk/0Ci0djANBgkqhkiG9w0BAQsFADBF
MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
d2lzc1NpZ24gR29sZCBDQSAtIEcyMB4XDTIxMDgwMzEzNDcxOVoXDTM2MTAyMzEz
NDcxOVowUTELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzErMCkG
A1UEAxMiU3dpc3NTaWduIFJTQSBUTFMgUm9vdCBDQSAyMDIxIC0gMTCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBALzhzfwsQT177CwJfd954sSdhnx9hFrZ
pI7GEBHcuDroMf3wbD9LlPLb9/WqwwD4KMadimwny9JZabm5IBJXG5o21NI02bV7
0LLYRsogKkynMMlhCFmjb/aBhHWv0mpQZ6xR1FjOLzWOpRjCbOm31AHH9oZvTjbG
6F0ZnQHEOpTzlMIEUjI+VmHV8eIXgLw7TVrabOfk1mz9OuVgnYorrjSkz9JuBdp5
iN+Y/iCi84v4hHBmaoArJP0EQM8bJXtpYyb5NPYonfbX6vHNBsyAkraXxQiuDr3w
GbXrYC3filOyg1dXTDRmKmNzNiiy942fKsmJ+3vXMYLjMYb/tUZcPeUCFMzLh7dQ
i4gsS24/Vy4JesGNy08JNzBrYnPZE42RYXm9nMbsPX8E0YyYx8b6xGsd4Rx3rMSz
zV+IoJoJnPGIeOnZJKF3AxsLxnlnUzOgchb8kl03fY59SZwrXh/kdcxWH9WfO7d2
NShu2gDdk2t6wSkmbuXWvuzDCpClHDOkj5IaSd+7IvNDY28CrAzVj6dPRBglxhlK
qIjo3vAoj1XVIzwyM00X2GyDAbQ4GYYmFu6p8p2xKgLOmmTfuwAtddSCdMY9+Wt7
dW+7BYOxph95De2Loi3W+c+PfFPj1lv5h9K4XbkvVPf/jjukRL/Nvg8inThYNY3g
KVx8rig3jINtAgMBAAGjggFnMIIBYzAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
BBSA84/Z/IJogVPB5IuXUB6p+cYctTAfBgNVHSMEGDAWgBRbJXuWpGVRfrg588B4
Zl7oOufw7jAOBgNVHQ8BAf8EBAMCAQYwgf8GA1UdHwSB9zCB9DBHoEWgQ4ZBaHR0
cDovL2NybC5zd2lzc3NpZ24ubmV0LzVCMjU3Qjk2QTQ2NTUxN0VCODM5RjNDMDc4
NjY1RUU4M0FFN0YwRUUwgaiggaWggaKGgZ9sZGFwOi8vZGlyZWN0b3J5LnN3aXNz
c2lnbi5uZXQvQ049NUIyNTdCOTZBNDY1NTE3RUI4MzlGM0MwNzg2NjVFRTgzQUU3
RjBFRSUyQ089U3dpc3NTaWduJTJDQz1DSD9jZXJ0aWZpY2F0ZVJldm9jYXRpb25M
aXN0P2Jhc2U/b2JqZWN0Q2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnQwDQYJKoZI
hvcNAQELBQADggIBAACe84DiHCZxPRIEZSRBIg2MzdYbmrMNPz9yiITWDxAGde85
9NYhCDtTN1t1VVRG6PkSmMDOhZ/YFRZ49VYqTGmLpCQufSdGZZHGkTMRbrRge5Jr
HLMbZr6Jufhad049iEJW2Iwn3ESR4vxQ4nsYcbpvL+CZXspcXGYclCzlpjHsG7YW
biGWhMzT04fvOebO6JWDfRKWV8eEfpqIYaAMrfQBSqWK1Gi4zNFRo6g8jvDzIJch
BS7DSBLBxTcUkm4qAvtGrTvPtBMP9nZ+Q04BOXds72pS16R87lbhHx3hvgevIFDY
8iwdTl3o/9LfHc4zpaa8+lP/r08TBRXGhT614AhpFuzK+RHkaHKFPYjFA1Vd5DxU
6os5l/clzDBSB3VRfci+cXD6KmnkCuEhFuOjrpilTMVjJss1FbkSzyXecyNtbYia
k7aR3lXRjvqUPSN+JiRk/DvwrIb1VsqmlYmig0+UD6lrGGVlnxWq8A8krbOSIotf
SZxO85QgNalf17zyHuY6btD5nDDEjeecU9CpCbp8YuoGd1/TML+zovEMwJj57uNO
dwnuUojcDbtIw3t3PUb92ItVJj2Iljxi+E30rjgSjHzd74f2RzAvBF6zW8994Zzl
BHN5upD76jjk1rDSBEl6PJOoZCDiyVw17mhw10E44oCy+CtMKDL4lHI9RsGa</data>
<key>PayloadDescription</key>
<string>Das Identitätsprovider CA Zertifikat </string>
<key>PayloadDisplayName</key>
<string>Identitätsprovider CA #2 (Zwischenstelle)</string>
<key>PayloadIdentifier</key>
<string>org.1x-config.agdsn.de.ag_dsn.ag_dsn.credential.1</string>
<key>PayloadOrganization</key>
<string>agdsn.1x-config.org</string>
<key>PayloadType</key>
<string>com.apple.security.root</string>
<key>PayloadUUID</key>
<string>226c10b6-f359-6eb7-282d-7a98772d17e8</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
<dict>
<key>PayloadCertificateFileName</key>
<string>fb9cb854-1ec3-8b65-4a9b-ff0d067aea7f.der</string>
<key>PayloadContent</key>
<data>
MIIHVzCCBT+gAwIBAgIQAN5Yhr4YCoH/Vnm/sJqnZzANBgkqhkiG9w0BAQsFADBR
MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMSswKQYDVQQDEyJT
d2lzc1NpZ24gUlNBIFRMUyBSb290IENBIDIwMjEgLSAxMB4XDTIxMDgwMzE4Mzcz
NFoXDTM2MDczMDE4MzczNFowUDELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNz
U2lnbiBBRzEqMCgGA1UEAxMhU3dpc3NTaWduIFJTQSBUTFMgRFYgSUNBIDIwMjEg
LSAxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuS6VTH2Rj/ANrxtK
BirJk5ZOhgK9rk/g+/voIDIQ1HpLISBC5Rc8W5HRDmk2kOmmV1qsrjSXFM4Y4t+K
Gcgflg7fAw3V9OiKI5VjvC/Dg165rrfB0H5gr2VwKAQPP9cHiK/siOsj78gbOr88
+chCDk5A2fZbvstBZrK8zpNVObcsMbWZgDHRM1brVPf8U1/7zHRk3BVHtdsETbzk
+F/gHjs85DkIxPs7kdeJba7AtReFDiw4sL9uUrYRXKICZES/gU7BbRaBGXloykk9
ntfZkJ3xwhj7lk2hePFxs81nAb3VwHyLhhWOEryb63iHZn27ut9SVkCFfWGOyGgJ
op6K4HNDTFxqOSw2vpOMfzoZ/L8NlwJq/sRvxGBhhN430SkiA4sGukm55GZ2J6wM
C4IzRv4MQTRTFgIU1mo09ZC2wWestw4CeIPykNVq0K70OoqWs8YmLhkDLlhXN7P+
ACFfwu8Lu2Adlby9oVpmCFq//3icIspzsc3MTHizGB8/f80/NjKgQhvDnH+wWdW8
/TDrV3swugtMxmxh1IMNJXEEEBGl9snLDX5PI5UK3toZevfzDnQeK1WXGbL8A7de
5YCoA7ANMIPvSL0Zmvlxpy0xT9xKYfQFNKFzLzD8c2Dt28SDDbqM0txS9y58gsff
Qwe6fmQr3pKENfGHzBHgWxUuIxsCAwEAAaOCAiowggImMA4GA1UdDwEB/wQEAwIB
BjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB
/wIBADAdBgNVHQ4EFgQUPJ5SeQNjb0+cgRvTKHAMJFrqpYcwHwYDVR0jBBgwFoAU
gPOP2fyCaIFTweSLl1AeqfnGHLUwgf8GA1UdHwSB9zCB9DBHoEWgQ4ZBaHR0cDov
L2NybC5zd2lzc3NpZ24ubmV0LzgwRjM4RkQ5RkM4MjY4ODE1M0MxRTQ4Qjk3NTAx
RUE5RjlDNjFDQjUwgaiggaWggaKGgZ9sZGFwOi8vZGlyZWN0b3J5LnN3aXNzc2ln
bi5uZXQvQ049ODBGMzhGRDlGQzgyNjg4MTUzQzFFNDhCOTc1MDFFQTlGOUM2MUNC
NSUyQ089U3dpc3NTaWduJTJDQz1DSD9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0
P2Jhc2U/b2JqZWN0Q2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnQwKQYDVR0gBCIw
IDAKBghghXQBWQIBATAIBgZngQwBAgEwCAYGBACPegEGMHQGCCsGAQUFBwEBBGgw
ZjBkBggrBgEFBQcwAoZYaHR0cDovL3N3aXNzc2lnbi5uZXQvY2dpLWJpbi9hdXRo
b3JpdHkvZG93bmxvYWQvODBGMzhGRDlGQzgyNjg4MTUzQzFFNDhCOTc1MDFFQTlG
OUM2MUNCNTANBgkqhkiG9w0BAQsFAAOCAgEAaw8l7Y1DquXDxSxTSnUc0YaC73V+
uHw/ksizATpHy6R5PLZqhfRTd1L0MbSe8ixQ28h/++H1+OmV1MpKayS1U/8dmhQB
qOic9bCytIbuTeYEXzwSWDz6ZG5BZJveHj+z/v0wZCDU7ciF1zZbMY3deKOcAk+N
bD+LoAUxaMEarrkmAKRFRuYZPtKqcbRC3SQUVuem7sz/bpkIBJoaE/04G2Th/bNY
kRdcuVk239EjXWFerCfjmY6WrHYT3Bo7D1VEiZJEJwpY/TR89CNtRsgkLkDBbLdH
mXMpgxVfXcBPRfWrWYPdKTP5kuL3uBX6/UpnMs+GJWHUYoCU4NfDFFhAXglyjW0S
nDFr8efbPQf6S8gjs+P0Cviwcg8gSq3APfOrACgRs6M+jscQo0+ru+Jx0ACnhm6x
Xzl3Jq5Dbt9sAVrAlJRFYDD6Tm6ZfXPRFsSHUYtmEm8+wmJCNsrpQVkpwWEB8ATa
2ZeRpcPd201t/bYWdV++EIIkSwQYrbbT4Vwu6m/jOga7/GS/VazYOu3fnLZ9XcAO
bZ9uub9Xd8prtYO4DlEBxFHKAbBXlNLQEYYHrbF/OdqBCvVhtns0Dck2Q2Dr3bCU
7dNSJ5mtqaoIiqnYpWJoqUhwOo/vJSbgFkzVGheRWo8yaUh7JfswYAkW5hPaShF0
LMVpEb0hwOAW4Fg=</data>
<key>PayloadDescription</key>
<string>Das Identitätsprovider CA Zertifikat </string>
<key>PayloadDisplayName</key>
<string>Identitätsprovider CA #3 (Zwischenstelle)</string>
<key>PayloadIdentifier</key>
<string>org.1x-config.agdsn.de.ag_dsn.ag_dsn.credential.2</string>
<key>PayloadOrganization</key>
<string>agdsn.1x-config.org</string>
<key>PayloadType</key>
<string>com.apple.security.root</string>
<key>PayloadUUID</key>
<string>fb9cb854-1ec3-8b65-4a9b-ff0d067aea7f</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
<dict>
<key>EAPClientConfiguration</key>
<dict>
<key>AcceptEAPTypes</key>
<array>
<integer>21</integer>
</array>
<key>UserName</key>
<string>{{ login }}</string>
<key>UserPassword</key>
<string>{{ wifi_password }}</string>
<key>EAPFASTProvisionPAC</key>
<true/>
<key>EAPFASTUsePAC</key>
<true/>
<key>EAPFastProvisionPACAnonymously</key>
<false/>
<key>OneTimeUserPassword</key>
<false/>
<key>OuterIdentity</key>
<string>[email protected]</string>
<key>PayloadCertificateAnchorUUID</key>
<array>
<string>485bce6d-706a-2c6e-f08e-0d8cfd51760d</string>
<string>226c10b6-f359-6eb7-282d-7a98772d17e8</string>
<string>fb9cb854-1ec3-8b65-4a9b-ff0d067aea7f</string>
</array>
<key>TLSAllowTrustExceptions</key>
<false/>
<key>TLSTrustedServerNames</key>
<array>
<string>radius.agdsn.de</string>
</array>
<key>TTLSInnerAuthentication</key>
<string>PAP</string>
</dict>
<key>EncryptionType</key>
<string>WPA2</string>
<key>HIDDEN_NETWORK</key>
<false/>
<key>PayloadDescription</key>
<string>Organisation Custom Network Konfiguration für das Netzwerk agdsn</string>
<key>PayloadDisplayName</key>
<string>Organisation Custom Network - SSID agdsn</string>
<key>PayloadIdentifier</key>
<string>org.1x-config.agdsn.de.ag_dsn.ag_dsn.de_DE.wifi.0</string>
<key>PayloadOrganization</key>
<string>agdsn.1x-config.org</string>
<key>PayloadType</key>
<string>com.apple.wifi.managed</string>
<key>ProxyType</key>
<string>Auto</string>
<key>ProxyPACFallbackAllowed</key>
<true/>
<key>PayloadUUID</key>
<string>8ee5540e-1d3c-f9ac-a662-8760e60a1e7e</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>SSID_STR</key>
<string>agdsn</string>
</dict>
</array>
<key>PayloadDescription</key>
<string>Netzwerkprofil 'AG DSN' von 'AG DSN' - bereitgestellt von AG DSN</string>
<key>PayloadDisplayName</key>
<string>AG DSN</string>
<key>PayloadIdentifier</key>
<string>org.1x-config.agdsn.de.ag_dsn.ag_dsn.de_DE</string>
<key>PayloadOrganization</key>
<string>AG DSN</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>d483aa96-74cd-0219-b9ff-4709da705721</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
15 changes: 15 additions & 0 deletions sipa/templates/usersuite/_index_status.html
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,21 @@ <h2 id="hot-buttons">{{ _("Häufige Aktionen") }}</h2>
{% endif %}
{% endif %}
</div>

<div>
{% if current_user.wifi_password.raw_value %}
<a href="{{ url_for('.get_apple_wlan_mobileconfig') }}" class="btn btn-outline-secondary">
<span class="bi-apple"></span>
{{ _("Apple WLAN-Konfigurationsprofil herunterladen") }}
</a>
{% else %}
<a href="#" class="btn btn-outline-secondary" data-bs-toggle="popover" data-bs-html="true" data-bs-content='{{ _("Du benötigst zuerst ein WLAN-Passwort. Erstelle eines") }} <a href="{{ url_for('.reset_wifi_password') }}">{{ _("hier") }}</a>.'>
<span class="bi-apple"></span>
{{ _("Apple WLAN-Konfigurationsprofil herunterladen") }}
</a>
{% endif %}
</div>

<div class="btn-group">
<a href="{{ url_for('.contact') }}" class="btn btn-outline-secondary">
<span class="bi-question-circle-fill"></span>
Expand Down
6 changes: 6 additions & 0 deletions sipa/translations/de/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -1059,6 +1059,12 @@ msgstr ""
msgid "Ausgehend"
msgstr ""

msgid "Apple WLAN-Konfigurationsprofil herunterladen"
msgstr ""

msgid "Du benötigst zuerst ein WLAN-Passwort. Erstelle eines"
msgstr ""

#~ msgid "Bezahlt, verbunden"
#~ msgstr ""

Expand Down
Binary file modified sipa/translations/en/LC_MESSAGES/messages.mo
Binary file not shown.
6 changes: 6 additions & 0 deletions sipa/translations/en/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -1101,6 +1101,12 @@ msgstr "Incoming"
msgid "Ausgehend"
msgstr "Outgoing"

msgid "Apple WLAN-Konfigurationsprofil herunterladen"
msgstr "Download Apple WLAN configuration profile"

msgid "Du benötigst zuerst ein WLAN-Passwort. Erstelle eines"
msgstr "You need a WLAN password first. Create one"

#~ msgid ""
#~ "Bitte beachte, dass diese Funktion deinen Steam-Client beeinträchtigen kann. "
#~ "Sollten Probleme auftreten, kontaktiere uns, der Steam-Support wird dir nicht "
Expand Down

0 comments on commit c1e8294

Please sign in to comment.