Merge branch 'dev' into bullseye

This commit is contained in:
Alexandre Aubin 2021-11-15 03:14:11 +01:00
commit 0141723db0
15 changed files with 248 additions and 61 deletions

35
debian/changelog vendored
View file

@ -4,6 +4,41 @@ ssowat (11.0.0~alpha) unstable; urgency=low
-- Alexandre Aubin <alex.aubin@mailoo.org> Fri, 05 Feb 2021 00:02:38 +0100
ssowat (4.3.2) stable; urgency=low
- Bump version for stable release
-- Alexandre Aubin <alex.aubin@mailoo.org> Fri, 05 Nov 2021 02:39:22 +0100
ssowat (4.3.1.1) testing; urgency=low
- [i18n] Translations updated for Basque, Russian, Slovenian, Spanish
Thanks to all contributors <3 ! (Jurij Podgoršek, Page Asgardius, punkrockgirl, Semen Turchikhin)
-- Alexandre Aubin <alex.aubin@mailoo.org> Wed, 03 Nov 2021 18:46:10 +0100
ssowat (4.3.1) testing; urgency=low
- [i18n] Translations updated for Indonesian
Thanks to all contributors <3 ! (liimee)
-- Alexandre Aubin <alex.aubin@mailoo.org> Wed, 29 Sep 2021 22:39:28 +0200
ssowat (4.3.0) testing; urgency=low
- [enh] Improve logging when failing to authenticate ssowat cookies (b28788d)
- [fix] python -> python3 in password check (07378df)
- [enh] Add new theme "Clouds" ([#139](https://github.com/YunoHost/ssowat/pull/139))
- [fix] ynh_portal.css: fix font urls ([#193](https://github.com/YunoHost/ssowat/pull/193))
- [fix] Prevent attacker from crafting redirections to external domains ([#193](https://github.com/YunoHost/ssowat/pull/193))
- [i18n] Translations updated for Indonesian, Persian, Portuguese, Ukrainian
Thanks to all contributors <3 ! (Cyril Romain, Éric Gaspar, Geoff Montel, liimee, ljf, Parviz Homayun, Tymofii-Lytvynenko)
-- Alexandre Aubin <alex.aubin@mailoo.org> Sun, 19 Sep 2021 21:16:49 +0200
ssowat (4.2.4) stable; urgency=low
- [fix] Misc issues regarding dash filename, mime types, ynh_userinfo.json ([#189](https://github.com/yunohost/ssowat/pull/189))

View file

@ -1019,14 +1019,6 @@ function login()
-- Forward the `r` URI argument if it exists to redirect
-- the user properly after a successful login.
if uri_args.r then
-- If `uri_args.r` contains line break, someone is probably trying to
-- pass some additional headers
if string.match(uri_args.r, "(.*)\n") then
flash("fail", t("redirection_error_invalid_url"))
logger.debug("Redirection url is invalid")
return redirect(conf.portal_url)
end
return redirect(conf.portal_url.."?r="..uri_args.r)
else
return redirect(conf.portal_url)
@ -1065,6 +1057,25 @@ end
-- Set cookie and redirect (needed to properly set cookie)
function redirect(url)
logger.debug("Redirecting to "..url)
-- For security reason we don't allow to redirect onto unknown domain
-- And if `uri_args.r` contains line break, someone is probably trying to
-- pass some additional headers
-- This should cover the following cases:
-- https://malicious.domain.tld/foo/bar
-- http://malicious.domain.tld/foo/bar
-- https://malicious.domain.tld:1234/foo
-- malicious.domain.tld/foo/bar
-- (/foo/bar, in which case no need to make sure it's prefixed with https://)
if not string.starts(url, "/") and not string.starts(url, "http://") and not string.starts(url, "https://") then
url = "https://"..url
end
local domain = url:match("^https?://([%w%.]*)/?")
if string.match(url, "(.*)\n") or (domain ~= nil and not is_in_table(conf["domains"], domain)) then
logger.debug("Unauthorized redirection to "..url)
flash("fail", t("redirection_error_invalid_url"))
url = conf.portal_url
end
return ngx.redirect(url)
end

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -0,0 +1,17 @@
/*
===============================================================================
This file may contain extra CSS rules loaded on all apps page (*if* the app
nginx's conf does include the appropriate snippet) for the small YunoHost
button in bottom-right corner + portal overlay.
The yunohost button corresponds to : #ynh-overlay-switch
The yunohost portal overlay / iframe corresponds to : #ynh-overlay
BE CAREFUL that you should *not* add too-general rules that apply to
non-yunohost elements (for instance all 'a' or 'p' elements...) as it will
likely break app's rendering
===============================================================================
*/
#ynh-overlay-switch {
background-image: url("./cloud.png");
}

View file

@ -0,0 +1,78 @@
/*
===============================================================================
This file contain extra CSS rules to customize the YunoHost user portal and
can be used to customize app tiles, buttons, etc...
===============================================================================
*/
/* Make page texts white */
.user-container h2,
.user-container small,
.user-container .user-mail,
.user-container .user-mail,
.content .footer a,
a.app-tile,
#ynh-logout {
color: white !important;
}
body {
color: white !important;
text-shadow: 3px 4px 4px rgba(0,0,0,.4), -1px -1px 6px rgba(0,0,0,0.2);
}
.ynh-user-portal {
background-image: url('https://source.unsplash.com/random/featured/?nature') !important;
background-repeat: no-repeat;
background-size: cover;
width: 100%;
height: 100%;
}
/* Apps colors */
.app-tile {
background-color: rgba(255, 255, 255, 0.5) !important;
}
.app-tile:hover:after,
.app-tile:focus:after,
.app-tile:hover:before,
.app-tile:focus:before {
background: rgba(255, 255, 255, 0.5) !important;
}
/* Use a custom logo image */
#ynh-logo {
z-index: 10;
background-image: url("./cloud.png");
}
/* Round the form */
.login-form label:before {
border-top-left-radius: 5em ;
border-bottom-left-radius: 5em ;
}
.login-form * {
border-radius: 5em;
}
/* Make form black */
.login-form label::before {
background: #000;
color: #FFF;
}
.login-form .form-group * {
background: #000;
color: #FFF;
}
.icon {
background: #000;
}
.messages {
border-radius: .5em;
}

View file

@ -1,5 +1,5 @@
{
"add_forward": "Añadir un reenvío de correo electrónico",
"add_forward": "Añadir una dirección de reenvío de correo electrónico",
"add_mail": "Añadir un alias de correo electrónico",
"cancel": "Cancelar",
"change_password": "Cambiar contraseña",
@ -15,13 +15,13 @@
"information_updated": "Información actualizada",
"invalid_domain": "Dominio no válido en",
"invalid_mail": "La dirección de correo electrónico no es válida",
"invalid_mailforward": "La dirección de reenvío no es válida",
"invalid_mailforward": "La dirección de reenvío de correo electrónico no es válida",
"logged_out": "Sesión cerrada",
"login": "Iniciar sesión",
"logout": "Cerrar sesión",
"mail_addresses": "Direcciones de correo electrónico",
"mail_already_used": "Dirección de correo electrónico ya está en uso",
"mail_forward": "Reenviar correo electrónico",
"mail_forward": "Direcciones de reenvío de correo electrónico",
"missing_required_fields": "Faltan campos obligatorios",
"new_forward": "nuevoreenvio@midominioexterior.org",
"new_mail": "nuevomail@midominio.org",

View file

@ -1,33 +1,33 @@
{
"footerlink_administration": "Administrazioa",
"footerlink_support": "Laguntzarako",
"footerlink_documentation": "dokumentazioa",
"footerlink_edit": "Birzuzenketa errorea: kudeatu gabeko domeinua",
"footerlink_support": "Laguntza",
"footerlink_documentation": "Dokumentazioa",
"footerlink_edit": "Editatu profila",
"redirection_error_unmanaged_domain": "Birzuzenketa errorea: kudeatu gabeko domeinua",
"redirection_error_invalid_url": "Birzuzenketa errorea: URL baliogabea",
"please_login_from_portal": "Mesedez, sartu atarian",
"redirection_error_invalid_url": "Birbideraketa errorea: URL okerra",
"please_login_from_portal": "Mesedez, hasi saioa atarian",
"please_login": "Mesedez, hasi saioa edukira sartzeko",
"logged_out": "Saioa amaitu",
"wrong_username_password": "Erabiltzaile-izena edo pasahitza okerra",
"missing_required_fields": "Bete beharrezko eremuak",
"user_saving_fail": "Ezin izan da erabiltzailearen informazio berria gorde",
"logged_out": "Saioa itxita",
"wrong_username_password": "Erabiltzaile-izen edo pasahitz okerra",
"missing_required_fields": "Bete beharreko eremuak",
"user_saving_fail": "Ezinezkoa izan da erabiltzailearen informazio berria gordetzea",
"information_updated": "Informazioa eguneratu da",
"mail_already_used": "Dagoeneko erabiltzen ari zaren helbide elektronikoa",
"invalid_mailforward": "Posta elektronikoz birbidaltzeko helbide baliogabea",
"invalid_domain": "Helbide elektronikoa baliogabea",
"invalid_mail": "Helbide elektronikoa baliogabea",
"wrong_current_password": "Uneko pasahitza okerra da",
"good_practices_about_user_password": "Aukeratu erabiltzaile baten pasahitza gutxienez 8 karaktereekin - nahiz eta praktika ona izan luzeagoak erabiltzea (hau da, pasahitz bat) eta / edo hainbat karaktere erabiltzea (maiuskulak, minuskulak, digituak eta karaktere bereziak).",
"password_too_simple_4": "Pasahitzak gutxienez 12 karaktere luze izan behar ditu eta zenbakiak, goikoak, behekoak eta karaktere bereziak ditu",
"password_too_simple_3": "Pasahitzak gutxienez 8 karaktere luze izan behar ditu eta digitu, goiko, beheko eta karaktere bereziak ditu",
"password_too_simple_2": "Pasahitzak gutxienez 8 karaktere luze behar ditu eta digituak, goiko eta beheko karaktereak ditu",
"password_too_simple_1": "Pasahitzak gutxienez 8 karaktere izan behar ditu",
"password_listed": "Pasahitz hau munduko pasahitz erabilienen artean dago. Mesedez, aukeratu zerbait bereziagoa.",
"mail_already_used": "Helbide elektroniko hori erabiltzen ari zara dagoeneko",
"invalid_mailforward": "Birbidalketarako helbide okerra",
"invalid_domain": "Domeinu okerra",
"invalid_mail": "Helbide elektronikoa ez da zuzena",
"wrong_current_password": "Oraingo pasahitza okerra da",
"good_practices_about_user_password": "Aukeratu gutxienez zortzi karaktere dituen erabiltzaile-pasahitz bat — baina gomendioa pasahitz luzeagoak erabiltzea da (adibidez, esaldi bat) edota karaktere desberdinak erabiltzea (larriak, txikiak, zenbakiak eta karaktere bereziak).",
"password_too_simple_4": "Pasahitzak gutxienez 12 karaktere izan behar ditu eta zenbakiak, hizki larriak, hizki txikiak eta karaktere bereziak izan behar ditu",
"password_too_simple_3": "Pasahitzak gutxienez zortzi karaktere izan behar ditu eta zenbakiak, hizki larriak, hizki txikiak eta karaktere bereziak izan behar ditu",
"password_too_simple_2": "Pasahitzak gutxienez zortzi karaktere izan behar ditu eta zenbakiak, hizki larriak eta hizki txikiak izan behar ditu",
"password_too_simple_1": "Pasahitzak gutxienez zortzi karaktere izan behar ditu",
"password_listed": "Pasahitz hau munduko pasahitz erabilienen artean dago. Mesedez, aukeratu bereziagoa den zerbait.",
"password_not_match": "Pasahitzak ez datoz bat",
"password_changed_error": "Ezin izan da pasahitza aldatu",
"password_changed": "Pasahitza aldatu da",
"logout": "Saioa amaitu",
"login": "Saioa hasi",
"logout": "Itxi saioa",
"login": "Hasi saioa",
"confirm": "Berretsi",
"new_password": "Pasahitz berria",
"current_password": "Oraingo pasahitza",
@ -35,15 +35,15 @@
"change_password": "Aldatu pasahitza",
"cancel": "Utzi",
"ok": "Ados",
"add_forward": "Gehitu helbide elektronikoa birbidaltzeko helbidea",
"add_mail": "Gehitu e-posta alias bat",
"new_forward": "aurreraberria@nireatzerrikodomeinua.org",
"new_mail": "postaberria@mydomeinua.org",
"mail_forward": "Posta elektronikoa birbidaltzeko helbidea",
"add_forward": "Gehitu helbide elektronikoa birbidaltzeko e-maila",
"add_mail": "Gehitu e-mail ezizen bat",
"new_forward": "birbidalketaberria@nirekanpokodomeinua.eus",
"new_mail": "postaberria@niredomeinua.eus",
"mail_forward": "Birbidalketarako posta elektronikoa",
"mail_addresses": "Helbide elektronikoak",
"fullname": "Izen osoa",
"password": "Pasahitza",
"username": "Erabiltzaile izena",
"username": "Erabiltzaile-izena",
"information": "Zure informazioa",
"portal": "YunoHost ataria"
}

View file

@ -20,18 +20,18 @@
"invalid_domain": "دامنه نامعتبر در",
"invalid_mail": "آدرس ایمیل نامعتبر است",
"wrong_current_password": "رمز فعلی اشتباه است",
"good_practices_about_user_password": "گذرواژه کاربر را حداقل با 8 کاراکتر انتخاب کنید - هرچند استفاده از کلمات طولانی تر تمرین خوبی است (مانند عبارت عبور) و/یا استفاده از انواع مختلف کاراکترها (بزرگ ، کوچک ، رقم و کاراکتر های خاص).",
"password_too_simple_4": "گذرواژه باید دارای حداقل 12 کاراکتر طول و شامل اعداد و حروف کوچک و بزرگ و کاراکترهای خاص باشد",
"password_too_simple_3": "گذرواژه باید دارای حداقل 8 کاراکتر طول و شامل اعداد و حروف کوچک و بزرگ و کاراکترهای خاص باشد",
"password_too_simple_2": "گذرواژه باید دارای حداقل 8 کاراکتر طول و شامل اعداد و حروف کوچک و بزرگ باشد",
"good_practices_about_user_password": "گذرواژه کاربر متشکل ازانواع مختلف کاراکترها (بزرگ ، کوچک ، رقم و کاراکتر های خاص)را حداقل با 8 کاراکتر انتخاب کنید - هرچند استفاده از کلمات طولانی تر تمرین خوبی است (مانند عبارت عبور).",
"password_too_simple_4": "رمز عبور باید شامل اعداد ، حروف کوچک و بزرگ و کاراکترهای خاص باشد، و حداقل 12 کاراکتر طول داشته باشد",
"password_too_simple_3": "رمز عبور باید شامل اعداد ، حروف کوچک و بزرگ و کاراکترهای خاص باشد، و حداقل 8 کاراکتر طول داشته باشد",
"password_too_simple_2": "رمز عبور باید شامل اعداد و حروف کوچک و بزرگ، و حداقل 8 کاراکتر طول داشته باشد",
"password_too_simple_1": "رمز عبور باید حداقل 8 کاراکتر باشد",
"password_listed": "این رمز عبور جزو پر استفاده ترین رمزهای عبور جهان بشمار میرود. لطفاً گذرواژه منحصر به فردتری انتخاب کنید.",
"password_listed": "لطفاً گذرواژه کمی منحصر به فردتری انتخاب کنید. این رمز عبور جزو پر استفاده ترین رمزهای عبور جهان بشمار میرود.",
"password_not_match": "گذرواژه ها مطابقت ندارند",
"password_changed_error": "رمز عبور تغییر نکرد",
"password_changed": "رمز عبور تغییر کرد",
"logout": "خروج",
"login": ارد شدن",
"confirm": "تایید",
"login": رود به سیستم",
"confirm": "تائید کردن",
"new_password": "رمز عبور جدید",
"current_password": "رمز عبور فعلی",
"edit": "ویرایش",

42
portal/locales/id.json Normal file
View file

@ -0,0 +1,42 @@
{
"cancel": "Batal",
"portal": "Portal YunoHost",
"information": "Info Anda",
"username": "Nama pengguna",
"password": "Kata sandi",
"fullname": "Nama lengkap",
"mail_addresses": "Alamat surel",
"mail_forward": "Alamat surel terusan",
"new_mail": "surelbaru@domainku.org",
"new_forward": "terusanbaru@domainlainku.org",
"add_mail": "Buat surel alias",
"add_forward": "Buat alamat surel terusan",
"ok": "Oke",
"change_password": "Ubah kata sandi",
"edit": "Sunting",
"current_password": "Kata sandi saat ini",
"new_password": "Kata sandi baru",
"confirm": "Konfirmasi",
"login": "Masuk",
"logout": "Keluar",
"password_changed": "Kata sandi diubah",
"password_changed_error": "Tidak dapat mengubah kata sandi",
"password_not_match": "Kata sandi tidak sama",
"password_listed": "Kata sandi ini merupakan salah satu kata sandi yang paling sering digunakan di dunia. Coba pilih sesuatu yang lebih unik.",
"password_too_simple_1": "Kata sandi harus memiliki sekurang-kurangnya 8 karakter",
"wrong_current_password": "Kata sandi saat ini salah",
"invalid_mail": "Alamat surel tidak valid",
"mail_already_used": "Alamat surel sudah digunakan",
"information_updated": "Info diperbarui",
"user_saving_fail": "Tidak dapat menyimpan info baru pengguna",
"wrong_username_password": "Nama pengguna atau kata sandi salah",
"logged_out": "Berhasil keluar",
"please_login": "Masuk untuk mengakses konten ini",
"please_login_from_portal": "Harap masuk dari portal",
"redirection_error_invalid_url": "Kesalahan pengalihan: URL tidak valid",
"redirection_error_unmanaged_domain": "Kesalahan pengalihan: Domain tak dikelola",
"footerlink_edit": "Sunting profil saya",
"footerlink_documentation": "Dokumentasi",
"footerlink_support": "Dukungan",
"footerlink_administration": "Administrasi"
}

1
portal/locales/mk.json Normal file
View file

@ -0,0 +1 @@
{}

View file

@ -40,7 +40,7 @@
"wrong_username_password": "Nome de utilizador e senha errados",
"redirection_error_invalid_url": "Erro de redirecionamento: URL inválido",
"redirection_error_unmanaged_domain": "Erro de redirecionamento: Dominio não gerenciado",
"good_practices_about_user_password": "Escolha uma senha de usuário com pelo menos 8 caracteres - embora seja uma boa prática usar palavras mais longas (ou seja, uma senha) e / ou usar vários tipos de caracteres (maiúsculas, minúsculas, dígitos e caracteres especiais).",
"good_practices_about_user_password": "Escolha uma senha de usuário com pelo menos 8 caracteres - embora seja uma boa prática usar palavras mais longas (ou seja, uma senha) e/ou usar vários tipos de caracteres (maiúsculas, minúsculas, dígitos e caracteres especiais).",
"password_too_simple_4": "A senha precisa ter pelo menos 12 caracteres e conter dígitos, caracteres superior, inferior e caracteres especiais",
"password_too_simple_3": "A senha precisa ter pelo menos 8 caracteres e conter dígitos, caracteres superior, inferior e caracteres especiais",
"password_too_simple_2": "A senha precisa ter pelo menos 8 caracteres e conter dígitos, caracteres superior e inferior",

View file

@ -1,5 +1,5 @@
{
"portal": "YunoHost Портал",
"portal": "Портал YunoHost",
"information": "Ваша информация",
"username": "Имя пользователя",
"password": "Пароль",
@ -14,7 +14,7 @@
"confirm": "Подтвердить",
"login": "Авторизоваться",
"logout": "Выйти",
"password_changed": "пароль изменен",
"password_changed": "Пароль изменён",
"password_changed_error": "Не удалось сменить пароль",
"invalid_mail": "Неверный адрес электронной почты",
"invalid_mailforward": "Неверный адрес пересылки электронной почты",
@ -39,11 +39,11 @@
"footerlink_edit": "Редактировать профиль",
"footerlink_documentation": "Документация",
"footerlink_support": "Поддержка",
"footerlink_administration": "Администрация",
"good_practices_about_user_password": "Выберите пароль пользователя длиной не менее 8 символов, хотя рекомендуется использовать более длинные (например, парольную фразу) и / или использовать символы различного типа (прописные, строчные, цифры и специальные символы).",
"password_too_simple_4": "Пароль должен содержать не менее 12 символов и содержать цифры, верхние, нижние и специальные символы",
"password_too_simple_3": "Пароль должен содержать не менее 8 символов и содержать цифры, верхние, нижние и специальные символы",
"password_too_simple_2": "Пароль должен содержать не менее 8 символов и содержать цифры, верхние и нижние символы",
"footerlink_administration": "Администрирование",
"good_practices_about_user_password": "Выберите пароль пользователя длиной не менее 8 символов, хотя рекомендуется использовать более длинные (например, парольную фразу) и / или использовать символы различного типа (прописные, строчные буквы, цифры и специальные символы).",
"password_too_simple_4": "Пароль должен содержать не менее 12 символов и включать цифры, заглавные и строчные буквы и специальные символы",
"password_too_simple_3": "Пароль должен содержать не менее 8 символов и содержать цифры, заглавные и строчные буквы и специальные символы",
"password_too_simple_2": "Пароль должен содержать не менее 8 символов и включать цифры, заглавные и строчные буквы",
"password_too_simple_1": "Пароль должен быть не менее 8 символов",
"password_listed": "Этот пароль является одним из наиболее часто используемых паролей в мире. Пожалуйста, выберите что-то более уникальное."
}

3
portal/locales/sl.json Normal file
View file

@ -0,0 +1,3 @@
{
"cancel": "Prekliči"
}

View file

@ -22,7 +22,7 @@
"password_too_simple_4": "Пароль повинен бути щонайменше 12 символів довжиною і містити числа, верхній, нижній регістри та спеціальні символи",
"password_too_simple_3": "Пароль повинен бути щонайменше 8 символів довжиною і містити числа, верхній, нижній регістри та спеціальні символи",
"password_too_simple_2": "Пароль повинен бути щонайменше 8 символів довжиною і містити числа, верхній та нижній регістри",
"password_too_simple_1": "Пароль повинен бути щонайменше 8 символів",
"password_too_simple_1": "Пароль має складатися не менше ніж з 8 символів",
"password_listed": "Цей пароль є одним з найбільш використовуваних паролів у світі. Будь ласка, виберіть щось трохи більш неповторюване.",
"password_not_match": "Паролі не збігаються",
"password_changed_error": "Не вдалося змінити пароль",
@ -43,7 +43,7 @@
"fullname": "Повне ім'я",
"username": "Ім'я користувача",
"information": "Ваші відомості",
"portal": "Портал Yunohost",
"portal": "Портал YunoHost",
"password": "Пароль",
"ok": "Гаразд"
}