mirror of
https://github.com/fairyglade/ly.git
synced 2026-09-23 12:30:19 +00:00
auth: Implement password reset after expiration (closes #992)
Signed-off-by: AnErrupTion <anerruption@disroot.org>
This commit is contained in:
@@ -33,7 +33,6 @@ err_pam_abort = تم إلغاء معاملة PAM
|
|||||||
err_pam_acct_expired = الحساب منتهي الصلاحية
|
err_pam_acct_expired = الحساب منتهي الصلاحية
|
||||||
err_pam_auth = خطأ في المصادقة (Authentication error)
|
err_pam_auth = خطأ في المصادقة (Authentication error)
|
||||||
err_pam_authinfo_unavail = فشل في الحصول على معلومات المستخدم
|
err_pam_authinfo_unavail = فشل في الحصول على معلومات المستخدم
|
||||||
err_pam_authok_reqd = انتهت صلاحية رمز المصادقة (Token)
|
|
||||||
err_pam_buf = خطأ في ذاكرة التخزين المؤقت (Buffer)
|
err_pam_buf = خطأ في ذاكرة التخزين المؤقت (Buffer)
|
||||||
err_pam_cred_err = فشل في تعيين بيانات الاعتماد (Credentials)
|
err_pam_cred_err = فشل في تعيين بيانات الاعتماد (Credentials)
|
||||||
err_pam_cred_expired = بيانات الاعتماد منتهية الصلاحية
|
err_pam_cred_expired = بيانات الاعتماد منتهية الصلاحية
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = ايقاف التشغيل
|
shutdown = ايقاف التشغيل
|
||||||
sleep = وضع السكون
|
sleep = وضع السكون
|
||||||
toggle_password = إظهار/إخفاء كلمة المرور
|
toggle_password = إظهار/إخفاء كلمة المرور
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = прекратена транзакция
|
|||||||
err_pam_acct_expired = изтекъл профил
|
err_pam_acct_expired = изтекъл профил
|
||||||
err_pam_auth = грешка при удостоверяването
|
err_pam_auth = грешка при удостоверяването
|
||||||
err_pam_authinfo_unavail = неуспешно получаване на информация за потребителя
|
err_pam_authinfo_unavail = неуспешно получаване на информация за потребителя
|
||||||
err_pam_authok_reqd = изтекъл жетон
|
|
||||||
err_pam_buf = грешка в буфера на паметта
|
err_pam_buf = грешка в буфера на паметта
|
||||||
err_pam_cred_err = неуспешно задаване на удостоверения
|
err_pam_cred_err = неуспешно задаване на удостоверения
|
||||||
err_pam_cred_expired = изтекли удостоверения
|
err_pam_cred_expired = изтекли удостоверения
|
||||||
@@ -77,6 +76,7 @@ shell = обвивка
|
|||||||
shutdown = изключване
|
shutdown = изключване
|
||||||
sleep = заспиване
|
sleep = заспиване
|
||||||
toggle_password = превключване на паролата
|
toggle_password = превключване на паролата
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = transacció pam avortada
|
|||||||
err_pam_acct_expired = compte expirat
|
err_pam_acct_expired = compte expirat
|
||||||
err_pam_auth = error d'autenticació
|
err_pam_auth = error d'autenticació
|
||||||
err_pam_authinfo_unavail = error en obtenir la informació de l'usuari
|
err_pam_authinfo_unavail = error en obtenir la informació de l'usuari
|
||||||
err_pam_authok_reqd = token expirat
|
|
||||||
err_pam_buf = error en la memòria intermèdia
|
err_pam_buf = error en la memòria intermèdia
|
||||||
err_pam_cred_err = error en establir les credencials
|
err_pam_cred_err = error en establir les credencials
|
||||||
err_pam_cred_expired = credencials expirades
|
err_pam_cred_expired = credencials expirades
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = aturar
|
shutdown = aturar
|
||||||
sleep = suspendre
|
sleep = suspendre
|
||||||
toggle_password = mostrar/amagar contrasenya
|
toggle_password = mostrar/amagar contrasenya
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = pam transakce přerušena
|
|||||||
err_pam_acct_expired = platnost účtu vypršela
|
err_pam_acct_expired = platnost účtu vypršela
|
||||||
err_pam_auth = chyba autentizace
|
err_pam_auth = chyba autentizace
|
||||||
err_pam_authinfo_unavail = nelze získat informace o uživateli
|
err_pam_authinfo_unavail = nelze získat informace o uživateli
|
||||||
err_pam_authok_reqd = platnost tokenu vypršela
|
|
||||||
err_pam_buf = chyba vyrovnávací paměti
|
err_pam_buf = chyba vyrovnávací paměti
|
||||||
err_pam_cred_err = nelze nastavit pověření
|
err_pam_cred_err = nelze nastavit pověření
|
||||||
err_pam_cred_expired = platnost pověření vypršela
|
err_pam_cred_expired = platnost pověření vypršela
|
||||||
@@ -77,6 +76,7 @@ shell = příkazový řádek
|
|||||||
shutdown = vypnout
|
shutdown = vypnout
|
||||||
sleep = uspat
|
sleep = uspat
|
||||||
toggle_password = zobrazit/skrýt heslo
|
toggle_password = zobrazit/skrýt heslo
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = PAM-Transaktion abgebrochen
|
|||||||
err_pam_acct_expired = Benutzerkonto abgelaufen
|
err_pam_acct_expired = Benutzerkonto abgelaufen
|
||||||
err_pam_auth = Authentifizierungsfehler
|
err_pam_auth = Authentifizierungsfehler
|
||||||
err_pam_authinfo_unavail = Abrufen der Benutzerinformationen fehlgeschlagen
|
err_pam_authinfo_unavail = Abrufen der Benutzerinformationen fehlgeschlagen
|
||||||
err_pam_authok_reqd = Passwort abgelaufen
|
|
||||||
err_pam_buf = Speicherpufferfehler
|
err_pam_buf = Speicherpufferfehler
|
||||||
err_pam_cred_err = Fehler beim Setzen der Anmeldedaten
|
err_pam_cred_err = Fehler beim Setzen der Anmeldedaten
|
||||||
err_pam_cred_expired = Anmeldedaten abgelaufen
|
err_pam_cred_expired = Anmeldedaten abgelaufen
|
||||||
@@ -77,6 +76,7 @@ shell = Shell
|
|||||||
shutdown = Herunterfahren
|
shutdown = Herunterfahren
|
||||||
sleep = Sleep
|
sleep = Sleep
|
||||||
toggle_password = Passwort anzeigen/verbergen
|
toggle_password = Passwort anzeigen/verbergen
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = pam transaction aborted
|
|||||||
err_pam_acct_expired = account expired
|
err_pam_acct_expired = account expired
|
||||||
err_pam_auth = authentication error
|
err_pam_auth = authentication error
|
||||||
err_pam_authinfo_unavail = failed to get user info
|
err_pam_authinfo_unavail = failed to get user info
|
||||||
err_pam_authok_reqd = token expired
|
|
||||||
err_pam_buf = memory buffer error
|
err_pam_buf = memory buffer error
|
||||||
err_pam_cred_err = failed to set credentials
|
err_pam_cred_err = failed to set credentials
|
||||||
err_pam_cred_expired = credentials expired
|
err_pam_cred_expired = credentials expired
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = shutdown
|
shutdown = shutdown
|
||||||
sleep = sleep
|
sleep = sleep
|
||||||
toggle_password = toggle password
|
toggle_password = toggle password
|
||||||
|
token_expired = password expired, please reset
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = PAM-a transakcio malsukcesis
|
|||||||
err_pam_acct_expired = konto eksvalidiĝis
|
err_pam_acct_expired = konto eksvalidiĝis
|
||||||
err_pam_auth = aŭtentiga eraro
|
err_pam_auth = aŭtentiga eraro
|
||||||
err_pam_authinfo_unavail = malsukcesis preni uzantajn informojn
|
err_pam_authinfo_unavail = malsukcesis preni uzantajn informojn
|
||||||
err_pam_authok_reqd = memorsigno eksvalidiĝis
|
|
||||||
err_pam_buf = bufra eraro
|
err_pam_buf = bufra eraro
|
||||||
err_pam_cred_err = malsukcesis agordi akreditaĵon
|
err_pam_cred_err = malsukcesis agordi akreditaĵon
|
||||||
err_pam_cred_expired = akreditaĵo eksvalidiĝis
|
err_pam_cred_expired = akreditaĵo eksvalidiĝis
|
||||||
@@ -77,6 +76,7 @@ shell = ŝelo
|
|||||||
shutdown = malŝalti
|
shutdown = malŝalti
|
||||||
sleep = memordormi
|
sleep = memordormi
|
||||||
toggle_password = montri/kaŝi pasvorton
|
toggle_password = montri/kaŝi pasvorton
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = transacción pam abortada
|
|||||||
err_pam_acct_expired = cuenta expirada
|
err_pam_acct_expired = cuenta expirada
|
||||||
err_pam_auth = error de autenticación
|
err_pam_auth = error de autenticación
|
||||||
err_pam_authinfo_unavail = error al obtener información del usuario
|
err_pam_authinfo_unavail = error al obtener información del usuario
|
||||||
err_pam_authok_reqd = token expirado
|
|
||||||
err_pam_buf = error de la memoria intermedia
|
err_pam_buf = error de la memoria intermedia
|
||||||
err_pam_cred_err = error al establecer las credenciales
|
err_pam_cred_err = error al establecer las credenciales
|
||||||
err_pam_cred_expired = credenciales expiradas
|
err_pam_cred_expired = credenciales expiradas
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = apagar
|
shutdown = apagar
|
||||||
sleep = suspender
|
sleep = suspender
|
||||||
toggle_password = mostrar/ocultar contraseña
|
toggle_password = mostrar/ocultar contraseña
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = transaction pam avortée
|
|||||||
err_pam_acct_expired = compte expiré
|
err_pam_acct_expired = compte expiré
|
||||||
err_pam_auth = erreur d'authentification
|
err_pam_auth = erreur d'authentification
|
||||||
err_pam_authinfo_unavail = échec de l'obtention des infos utilisateur
|
err_pam_authinfo_unavail = échec de l'obtention des infos utilisateur
|
||||||
err_pam_authok_reqd = tiquet expiré
|
|
||||||
err_pam_buf = erreur de mémoire tampon
|
err_pam_buf = erreur de mémoire tampon
|
||||||
err_pam_cred_err = échec de la modification des identifiants
|
err_pam_cred_err = échec de la modification des identifiants
|
||||||
err_pam_cred_expired = identifiants expirés
|
err_pam_cred_expired = identifiants expirés
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = éteindre
|
shutdown = éteindre
|
||||||
sleep = veille
|
sleep = veille
|
||||||
toggle_password = afficher le mot de passe
|
toggle_password = afficher le mot de passe
|
||||||
|
token_expired = mot de passe expiré, veuillez le changer
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = transazione PAM interrotta
|
|||||||
err_pam_acct_expired = account scaduto
|
err_pam_acct_expired = account scaduto
|
||||||
err_pam_auth = errore di autenticazione
|
err_pam_auth = errore di autenticazione
|
||||||
err_pam_authinfo_unavail = impossibile ottenere informazioni utente
|
err_pam_authinfo_unavail = impossibile ottenere informazioni utente
|
||||||
err_pam_authok_reqd = token scaduto
|
|
||||||
err_pam_buf = errore buffer memoria
|
err_pam_buf = errore buffer memoria
|
||||||
err_pam_cred_err = impossibile impostare credenziali
|
err_pam_cred_err = impossibile impostare credenziali
|
||||||
err_pam_cred_expired = credenziali scadute
|
err_pam_cred_expired = credenziali scadute
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = arresto
|
shutdown = arresto
|
||||||
sleep = sospendi
|
sleep = sospendi
|
||||||
toggle_password = mostra/nascondi password
|
toggle_password = mostra/nascondi password
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = PAMトランザクションが中断されました
|
|||||||
err_pam_acct_expired = アカウントの有効期限が切れています
|
err_pam_acct_expired = アカウントの有効期限が切れています
|
||||||
err_pam_auth = 認証エラー
|
err_pam_auth = 認証エラー
|
||||||
err_pam_authinfo_unavail = ユーザー情報の取得に失敗しました
|
err_pam_authinfo_unavail = ユーザー情報の取得に失敗しました
|
||||||
err_pam_authok_reqd = トークンの有効期限が切れています
|
|
||||||
err_pam_buf = メモリバッファエラー
|
err_pam_buf = メモリバッファエラー
|
||||||
err_pam_cred_err = 認証情報の設定に失敗しました
|
err_pam_cred_err = 認証情報の設定に失敗しました
|
||||||
err_pam_cred_expired = 認証情報の有効期限が切れています
|
err_pam_cred_expired = 認証情報の有効期限が切れています
|
||||||
@@ -77,6 +76,7 @@ shell = シェル
|
|||||||
shutdown = シャットダウン
|
shutdown = シャットダウン
|
||||||
sleep = スリープ
|
sleep = スリープ
|
||||||
toggle_password = パスワードの表示/非表示
|
toggle_password = パスワードの表示/非表示
|
||||||
|
|
||||||
wayland = Wayland
|
wayland = Wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = danûstendina pam hate têkbirin
|
|||||||
err_pam_acct_expired = dema jimarê derbas bûye
|
err_pam_acct_expired = dema jimarê derbas bûye
|
||||||
err_pam_auth = şaşetiya piştrastkirinê
|
err_pam_auth = şaşetiya piştrastkirinê
|
||||||
err_pam_authinfo_unavail = zanyariyên bikarhêner nehatin girtin
|
err_pam_authinfo_unavail = zanyariyên bikarhêner nehatin girtin
|
||||||
err_pam_authok_reqd = dema nîşandanê derbas bûye
|
|
||||||
err_pam_buf = şaşetiya bîra demkî
|
err_pam_buf = şaşetiya bîra demkî
|
||||||
err_pam_cred_err = sazkirina rastkitinê têk çû
|
err_pam_cred_err = sazkirina rastkitinê têk çû
|
||||||
err_pam_cred_expired = dema rastkitinê derbas bûye
|
err_pam_cred_expired = dema rastkitinê derbas bûye
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = vemirîne
|
shutdown = vemirîne
|
||||||
sleep = têxîne xewê
|
sleep = têxîne xewê
|
||||||
toggle_password = şîfre nîşan bide/veşêre
|
toggle_password = şîfre nîşan bide/veşêre
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = pam transakcija pārtraukta
|
|||||||
err_pam_acct_expired = konts novecojis
|
err_pam_acct_expired = konts novecojis
|
||||||
err_pam_auth = autentifikācijas kļūda
|
err_pam_auth = autentifikācijas kļūda
|
||||||
err_pam_authinfo_unavail = neizdevās iegūt lietotāja informāciju
|
err_pam_authinfo_unavail = neizdevās iegūt lietotāja informāciju
|
||||||
err_pam_authok_reqd = žetons beidzies
|
|
||||||
err_pam_buf = atmiņas bufera kļūda
|
err_pam_buf = atmiņas bufera kļūda
|
||||||
err_pam_cred_err = neizdevās iestatīt akreditācijas datus
|
err_pam_cred_err = neizdevās iestatīt akreditācijas datus
|
||||||
err_pam_cred_expired = akreditācijas dati novecojuši
|
err_pam_cred_expired = akreditācijas dati novecojuši
|
||||||
@@ -77,6 +76,7 @@ shell = terminālis
|
|||||||
shutdown = izslēgt
|
shutdown = izslēgt
|
||||||
sleep = snauda
|
sleep = snauda
|
||||||
toggle_password = rādīt/slēpt paroli
|
toggle_password = rādīt/slēpt paroli
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = transakcja pam przerwana
|
|||||||
err_pam_acct_expired = konto wygasło
|
err_pam_acct_expired = konto wygasło
|
||||||
err_pam_auth = błąd uwierzytelniania
|
err_pam_auth = błąd uwierzytelniania
|
||||||
err_pam_authinfo_unavail = nie udało się zdobyć informacji o użytkowniku
|
err_pam_authinfo_unavail = nie udało się zdobyć informacji o użytkowniku
|
||||||
err_pam_authok_reqd = token wygasł
|
|
||||||
err_pam_buf = błąd bufora pamięci
|
err_pam_buf = błąd bufora pamięci
|
||||||
err_pam_cred_err = nie udało się ustawić uwierzytelnienia
|
err_pam_cred_err = nie udało się ustawić uwierzytelnienia
|
||||||
err_pam_cred_expired = uwierzytelnienie wygasło
|
err_pam_cred_expired = uwierzytelnienie wygasło
|
||||||
@@ -77,6 +76,7 @@ shell = powłoka
|
|||||||
shutdown = wyłącz
|
shutdown = wyłącz
|
||||||
sleep = uśpij
|
sleep = uśpij
|
||||||
toggle_password = Pokaż/ukryj hasło
|
toggle_password = Pokaż/ukryj hasło
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = transação pam abortada
|
|||||||
err_pam_acct_expired = conta expirada
|
err_pam_acct_expired = conta expirada
|
||||||
err_pam_auth = erro de autenticação
|
err_pam_auth = erro de autenticação
|
||||||
err_pam_authinfo_unavail = erro ao obter informação do utilizador
|
err_pam_authinfo_unavail = erro ao obter informação do utilizador
|
||||||
err_pam_authok_reqd = token expirado
|
|
||||||
err_pam_buf = erro de buffer de memória
|
err_pam_buf = erro de buffer de memória
|
||||||
err_pam_cred_err = erro ao definir credenciais
|
err_pam_cred_err = erro ao definir credenciais
|
||||||
err_pam_cred_expired = credenciais expiradas
|
err_pam_cred_expired = credenciais expiradas
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = encerrar
|
shutdown = encerrar
|
||||||
sleep = suspender
|
sleep = suspender
|
||||||
toggle_password = mostrar/ocultar palavra-passe
|
toggle_password = mostrar/ocultar palavra-passe
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = transação pam abortada
|
|||||||
err_pam_acct_expired = conta expirada
|
err_pam_acct_expired = conta expirada
|
||||||
err_pam_auth = erro de autenticação
|
err_pam_auth = erro de autenticação
|
||||||
err_pam_authinfo_unavail = não foi possível obter informações do usuário
|
err_pam_authinfo_unavail = não foi possível obter informações do usuário
|
||||||
err_pam_authok_reqd = token expirado
|
|
||||||
err_pam_buf = erro de buffer de memória
|
err_pam_buf = erro de buffer de memória
|
||||||
err_pam_cred_err = erro para definir credenciais
|
err_pam_cred_err = erro para definir credenciais
|
||||||
err_pam_cred_expired = credenciais expiradas
|
err_pam_cred_expired = credenciais expiradas
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = desligar
|
shutdown = desligar
|
||||||
sleep = suspender
|
sleep = suspender
|
||||||
toggle_password = mostrar/ocultar senha
|
toggle_password = mostrar/ocultar senha
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = tranzacţie pam anulată
|
|||||||
err_pam_acct_expired = cont expirat
|
err_pam_acct_expired = cont expirat
|
||||||
err_pam_auth = eroare de autentificare
|
err_pam_auth = eroare de autentificare
|
||||||
err_pam_authinfo_unavail = nu s-au putut obţine informaţii despre utilizator
|
err_pam_authinfo_unavail = nu s-au putut obţine informaţii despre utilizator
|
||||||
err_pam_authok_reqd = token expirat
|
|
||||||
err_pam_buf = eroare de memorie (buffer)
|
err_pam_buf = eroare de memorie (buffer)
|
||||||
err_pam_cred_err = nu s-au putut seta date de identificare (credentials)
|
err_pam_cred_err = nu s-au putut seta date de identificare (credentials)
|
||||||
err_pam_cred_expired = datele de identificare (credentials) au expirat
|
err_pam_cred_expired = datele de identificare (credentials) au expirat
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = opreşte sistemul
|
shutdown = opreşte sistemul
|
||||||
sleep = repaus
|
sleep = repaus
|
||||||
toggle_password = afișare/ascundere parolă
|
toggle_password = afișare/ascundere parolă
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = pam транзакция прервана
|
|||||||
err_pam_acct_expired = срок действия аккаунта истёк
|
err_pam_acct_expired = срок действия аккаунта истёк
|
||||||
err_pam_auth = ошибка аутентификации
|
err_pam_auth = ошибка аутентификации
|
||||||
err_pam_authinfo_unavail = не удалось получить информацию о пользователе
|
err_pam_authinfo_unavail = не удалось получить информацию о пользователе
|
||||||
err_pam_authok_reqd = токен истёк
|
|
||||||
err_pam_buf = ошибка буфера памяти
|
err_pam_buf = ошибка буфера памяти
|
||||||
err_pam_cred_err = не удалось установить полномочия
|
err_pam_cred_err = не удалось установить полномочия
|
||||||
err_pam_cred_expired = полномочия истекли
|
err_pam_cred_expired = полномочия истекли
|
||||||
@@ -77,6 +76,7 @@ shell = оболочка
|
|||||||
shutdown = выключить
|
shutdown = выключить
|
||||||
sleep = сон
|
sleep = сон
|
||||||
toggle_password = показать/скрыть пароль
|
toggle_password = показать/скрыть пароль
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = pam transakcija prekinuta
|
|||||||
err_pam_acct_expired = nalog istekao
|
err_pam_acct_expired = nalog istekao
|
||||||
err_pam_auth = greška pri autentikaciji
|
err_pam_auth = greška pri autentikaciji
|
||||||
err_pam_authinfo_unavail = neuspješno uzimanje informacija o korisniku
|
err_pam_authinfo_unavail = neuspješno uzimanje informacija o korisniku
|
||||||
err_pam_authok_reqd = token istekao
|
|
||||||
err_pam_buf = greška bafera memorije
|
err_pam_buf = greška bafera memorije
|
||||||
err_pam_cred_err = neuspješno postavljanje kredencijala
|
err_pam_cred_err = neuspješno postavljanje kredencijala
|
||||||
err_pam_cred_expired = kredencijali istekli
|
err_pam_cred_expired = kredencijali istekli
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = ugasi
|
shutdown = ugasi
|
||||||
sleep = uspavaj
|
sleep = uspavaj
|
||||||
toggle_password = prikaži/sakrij lozinku
|
toggle_password = prikaži/sakrij lozinku
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = pam трансакција прекинута
|
|||||||
err_pam_acct_expired = налог истекао
|
err_pam_acct_expired = налог истекао
|
||||||
err_pam_auth = грешка при аутентикацији
|
err_pam_auth = грешка при аутентикацији
|
||||||
err_pam_authinfo_unavail = неуспешно узимање информација о кориснику
|
err_pam_authinfo_unavail = неуспешно узимање информација о кориснику
|
||||||
err_pam_authok_reqd = токен истекао
|
|
||||||
err_pam_buf = грешка бафера меморије
|
err_pam_buf = грешка бафера меморије
|
||||||
err_pam_cred_err = неуспешно постављање акредитива
|
err_pam_cred_err = неуспешно постављање акредитива
|
||||||
err_pam_cred_expired = акредитиви истекли
|
err_pam_cred_expired = акредитиви истекли
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = угаси
|
shutdown = угаси
|
||||||
sleep = успавај
|
sleep = успавај
|
||||||
toggle_password = прикажи/сакриј лозинку
|
toggle_password = прикажи/сакриј лозинку
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = pam-transaktion avbröts
|
|||||||
err_pam_acct_expired = kontot har löpt ut
|
err_pam_acct_expired = kontot har löpt ut
|
||||||
err_pam_auth = autentisering misslyckades
|
err_pam_auth = autentisering misslyckades
|
||||||
err_pam_authinfo_unavail = hämtning av användarinformation misslyckades
|
err_pam_authinfo_unavail = hämtning av användarinformation misslyckades
|
||||||
err_pam_authok_reqd = token har löpt ut
|
|
||||||
err_pam_buf = minnesbufferfel
|
err_pam_buf = minnesbufferfel
|
||||||
err_pam_cred_err = inställning av inloggningsuppgifter misslyckades
|
err_pam_cred_err = inställning av inloggningsuppgifter misslyckades
|
||||||
err_pam_cred_expired = inloggningsuppgifterna har löpt ut
|
err_pam_cred_expired = inloggningsuppgifterna har löpt ut
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = stäng av
|
shutdown = stäng av
|
||||||
sleep = viloläge
|
sleep = viloläge
|
||||||
toggle_password = visa/dölj lösenord
|
toggle_password = visa/dölj lösenord
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = pam islemi durduruldu
|
|||||||
err_pam_acct_expired = hesabin suresi dolmus
|
err_pam_acct_expired = hesabin suresi dolmus
|
||||||
err_pam_auth = kimlik dogrulama hatasi
|
err_pam_auth = kimlik dogrulama hatasi
|
||||||
err_pam_authinfo_unavail = kullanici bilgileri getirilirken hata olustu
|
err_pam_authinfo_unavail = kullanici bilgileri getirilirken hata olustu
|
||||||
err_pam_authok_reqd = suresi dolmus token
|
|
||||||
err_pam_buf = bellek arabellegi hatasi
|
err_pam_buf = bellek arabellegi hatasi
|
||||||
err_pam_cred_err = kimlik bilgileri ayarlanamadi
|
err_pam_cred_err = kimlik bilgileri ayarlanamadi
|
||||||
err_pam_cred_expired = kimlik bilgilerinin suresi dolmus
|
err_pam_cred_expired = kimlik bilgilerinin suresi dolmus
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = makineyi kapat
|
shutdown = makineyi kapat
|
||||||
sleep = uykuya al
|
sleep = uykuya al
|
||||||
toggle_password = parolayı göster/gizle
|
toggle_password = parolayı göster/gizle
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = pam транзакція перервана
|
|||||||
err_pam_acct_expired = термін дії акаунту вичерпано
|
err_pam_acct_expired = термін дії акаунту вичерпано
|
||||||
err_pam_auth = помилка автентифікації
|
err_pam_auth = помилка автентифікації
|
||||||
err_pam_authinfo_unavail = не вдалося отримати дані користувача
|
err_pam_authinfo_unavail = не вдалося отримати дані користувача
|
||||||
err_pam_authok_reqd = термін дії токена вичерпано
|
|
||||||
err_pam_buf = помилка буферу пам'яті
|
err_pam_buf = помилка буферу пам'яті
|
||||||
err_pam_cred_err = не вдалося змінити облікові дані
|
err_pam_cred_err = не вдалося змінити облікові дані
|
||||||
err_pam_cred_expired = термін дії повноважень вичерпано
|
err_pam_cred_expired = термін дії повноважень вичерпано
|
||||||
@@ -77,6 +76,7 @@ shell = оболонка
|
|||||||
shutdown = вимкнути
|
shutdown = вимкнути
|
||||||
sleep = сплячий режим
|
sleep = сплячий режим
|
||||||
toggle_password = показати/приховати пароль
|
toggle_password = показати/приховати пароль
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = PAM事务已中止
|
|||||||
err_pam_acct_expired = 帐户已过期
|
err_pam_acct_expired = 帐户已过期
|
||||||
err_pam_auth = 身份验证错误
|
err_pam_auth = 身份验证错误
|
||||||
err_pam_authinfo_unavail = 获取用户信息失败
|
err_pam_authinfo_unavail = 获取用户信息失败
|
||||||
err_pam_authok_reqd = 口令已过期
|
|
||||||
err_pam_buf = 内存缓冲区错误
|
err_pam_buf = 内存缓冲区错误
|
||||||
err_pam_cred_err = 设置凭据失败
|
err_pam_cred_err = 设置凭据失败
|
||||||
err_pam_cred_expired = 凭据已过期
|
err_pam_cred_expired = 凭据已过期
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = 关机
|
shutdown = 关机
|
||||||
sleep = 睡眠
|
sleep = 睡眠
|
||||||
toggle_password = 显示/隐藏密码
|
toggle_password = 显示/隐藏密码
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ err_pam_abort = PAM 交易已中止
|
|||||||
err_pam_acct_expired = 帳號已過期
|
err_pam_acct_expired = 帳號已過期
|
||||||
err_pam_auth = 驗證錯誤
|
err_pam_auth = 驗證錯誤
|
||||||
err_pam_authinfo_unavail = 取得使用者資訊失敗
|
err_pam_authinfo_unavail = 取得使用者資訊失敗
|
||||||
err_pam_authok_reqd = 金鑰已過期
|
|
||||||
err_pam_buf = 記憶體緩衝區錯誤
|
err_pam_buf = 記憶體緩衝區錯誤
|
||||||
err_pam_cred_err = 設定憑證失敗
|
err_pam_cred_err = 設定憑證失敗
|
||||||
err_pam_cred_expired = 憑證已過期
|
err_pam_cred_expired = 憑證已過期
|
||||||
@@ -77,6 +76,7 @@ shell = shell
|
|||||||
shutdown = 關機
|
shutdown = 關機
|
||||||
sleep = 睡眠
|
sleep = 睡眠
|
||||||
toggle_password = 顯示/隱藏密碼
|
toggle_password = 顯示/隱藏密碼
|
||||||
|
|
||||||
wayland = wayland
|
wayland = wayland
|
||||||
x11 = x11
|
x11 = x11
|
||||||
xinitrc = xinitrc
|
xinitrc = xinitrc
|
||||||
|
|||||||
15
src/auth.zig
15
src/auth.zig
@@ -29,7 +29,7 @@ pub const AuthOptions = struct {
|
|||||||
const PamAppdata = struct {
|
const PamAppdata = struct {
|
||||||
username: []const u8,
|
username: []const u8,
|
||||||
password: []const u8,
|
password: []const u8,
|
||||||
authreq_requested: bool,
|
new_authtok_requested: bool,
|
||||||
authreq_responded: bool,
|
authreq_responded: bool,
|
||||||
new_password: []const u8,
|
new_password: []const u8,
|
||||||
};
|
};
|
||||||
@@ -52,6 +52,7 @@ pub fn authenticate(
|
|||||||
current_environment: Environment,
|
current_environment: Environment,
|
||||||
login: []const u8,
|
login: []const u8,
|
||||||
password: []const u8,
|
password: []const u8,
|
||||||
|
maybe_new_password: ?[]const u8,
|
||||||
) !void {
|
) !void {
|
||||||
var tty_buffer: [3]u8 = undefined;
|
var tty_buffer: [3]u8 = undefined;
|
||||||
const tty_str = try std.fmt.bufPrint(&tty_buffer, "{d}", .{options.tty});
|
const tty_str = try std.fmt.bufPrint(&tty_buffer, "{d}", .{options.tty});
|
||||||
@@ -69,7 +70,7 @@ pub fn authenticate(
|
|||||||
var credentials: PamAppdata = .{
|
var credentials: PamAppdata = .{
|
||||||
.username = login,
|
.username = login,
|
||||||
.password = password,
|
.password = password,
|
||||||
.authreq_requested = false,
|
.new_authtok_requested = false,
|
||||||
.authreq_responded = false,
|
.authreq_responded = false,
|
||||||
.new_password = "",
|
.new_password = "",
|
||||||
};
|
};
|
||||||
@@ -98,9 +99,11 @@ pub fn authenticate(
|
|||||||
try log_file.info(io, "auth/pam", "validating account", .{});
|
try log_file.info(io, "auth/pam", "validating account", .{});
|
||||||
status = interop.pam.pam_acct_mgmt(handle, 0);
|
status = interop.pam.pam_acct_mgmt(handle, 0);
|
||||||
if (status == interop.pam.PAM_NEW_AUTHTOK_REQD) {
|
if (status == interop.pam.PAM_NEW_AUTHTOK_REQD) {
|
||||||
// credentials.authreq_requested = true;
|
if (maybe_new_password) |new_passwsord| {
|
||||||
// credentials.new_password = "";
|
credentials.new_authtok_requested = true;
|
||||||
// status = interop.pam.pam_chauthtok(handle, interop.pam.PAM_CHANGE_EXPIRED_AUTHTOK);
|
credentials.new_password = new_passwsord;
|
||||||
|
status = interop.pam.pam_chauthtok(handle, interop.pam.PAM_CHANGE_EXPIRED_AUTHTOK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (status != interop.pam.PAM_SUCCESS) return pamDiagnose(status);
|
if (status != interop.pam.PAM_SUCCESS) return pamDiagnose(status);
|
||||||
|
|
||||||
@@ -334,7 +337,7 @@ fn loginConv(
|
|||||||
},
|
},
|
||||||
interop.pam.PAM_PROMPT_ECHO_OFF => {
|
interop.pam.PAM_PROMPT_ECHO_OFF => {
|
||||||
var pass = data.password;
|
var pass = data.password;
|
||||||
if (data.authreq_requested) {
|
if (data.new_authtok_requested) {
|
||||||
if (data.authreq_responded) {
|
if (data.authreq_responded) {
|
||||||
pass = data.new_password;
|
pass = data.new_password;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// NOTE: After editing this file, please run `/res/lang/normalize_lang_files.py`
|
// NOTE: After editing this file, please run `res/lang/normalize_lang_files.py`
|
||||||
// to update all the language files accordingly.
|
// to update all the language files accordingly.
|
||||||
//
|
//
|
||||||
|
|
||||||
@@ -38,7 +38,6 @@ err_pam_abort: []const u8 = "pam transaction aborted",
|
|||||||
err_pam_acct_expired: []const u8 = "account expired",
|
err_pam_acct_expired: []const u8 = "account expired",
|
||||||
err_pam_auth: []const u8 = "authentication error",
|
err_pam_auth: []const u8 = "authentication error",
|
||||||
err_pam_authinfo_unavail: []const u8 = "failed to get user info",
|
err_pam_authinfo_unavail: []const u8 = "failed to get user info",
|
||||||
err_pam_authok_reqd: []const u8 = "token expired",
|
|
||||||
err_pam_buf: []const u8 = "memory buffer error",
|
err_pam_buf: []const u8 = "memory buffer error",
|
||||||
err_pam_cred_err: []const u8 = "failed to set credentials",
|
err_pam_cred_err: []const u8 = "failed to set credentials",
|
||||||
err_pam_cred_expired: []const u8 = "credentials expired",
|
err_pam_cred_expired: []const u8 = "credentials expired",
|
||||||
@@ -82,6 +81,7 @@ shell: [:0]const u8 = "shell",
|
|||||||
shutdown: []const u8 = "shutdown",
|
shutdown: []const u8 = "shutdown",
|
||||||
sleep: []const u8 = "sleep",
|
sleep: []const u8 = "sleep",
|
||||||
toggle_password: []const u8 = "toggle password",
|
toggle_password: []const u8 = "toggle password",
|
||||||
|
token_expired: []const u8 = "password expired, please reset",
|
||||||
wayland: []const u8 = "wayland",
|
wayland: []const u8 = "wayland",
|
||||||
x11: []const u8 = "x11",
|
x11: []const u8 = "x11",
|
||||||
xinitrc: [:0]const u8 = "xinitrc",
|
xinitrc: [:0]const u8 = "xinitrc",
|
||||||
|
|||||||
42
src/main.zig
42
src/main.zig
@@ -113,6 +113,7 @@ const UiState = struct {
|
|||||||
login_text: ?*Text,
|
login_text: ?*Text,
|
||||||
password: *Text,
|
password: *Text,
|
||||||
password_widget: *Widget,
|
password_widget: *Widget,
|
||||||
|
maybe_old_password: ?[]const u8,
|
||||||
insert_mode: bool,
|
insert_mode: bool,
|
||||||
edge_margin: Position,
|
edge_margin: Position,
|
||||||
config: Config,
|
config: Config,
|
||||||
@@ -889,6 +890,9 @@ pub fn main(init: std.process.Init) !void {
|
|||||||
);
|
);
|
||||||
defer state.password_label.deinit();
|
defer state.password_label.deinit();
|
||||||
|
|
||||||
|
state.maybe_old_password = null;
|
||||||
|
defer if (state.maybe_old_password) |pass| state.allocator.free(pass);
|
||||||
|
|
||||||
state.insert_mode = !state.config.vi_mode or state.config.vi_default_mode == .insert;
|
state.insert_mode = !state.config.vi_mode or state.config.vi_default_mode == .insert;
|
||||||
|
|
||||||
state.password = try Text.init(
|
state.password = try Text.init(
|
||||||
@@ -1633,7 +1637,8 @@ fn authenticate(ptr: *anyopaque) !bool {
|
|||||||
auth_options,
|
auth_options,
|
||||||
current_environment,
|
current_environment,
|
||||||
if (state.login_text) |box| box.text.items else state.login.?.getCurrentUsername(),
|
if (state.login_text) |box| box.text.items else state.login.?.getCurrentUsername(),
|
||||||
password_text,
|
if (state.maybe_old_password) |pass| pass else password_text,
|
||||||
|
if (state.maybe_old_password != null) password_text else null,
|
||||||
) catch |err| {
|
) catch |err| {
|
||||||
shared_err.writeError(err);
|
shared_err.writeError(err);
|
||||||
|
|
||||||
@@ -1645,12 +1650,19 @@ fn authenticate(ptr: *anyopaque) !bool {
|
|||||||
std.process.exit(0);
|
std.process.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
var session_status: c_int = undefined;
|
if (state.maybe_old_password) |pass| {
|
||||||
_ = std.posix.system.waitpid(session_pid, &session_status, 0);
|
state.allocator.free(pass);
|
||||||
// HACK: It seems like the session process is not exiting immediately after the waitpid call.
|
state.maybe_old_password = null;
|
||||||
// This is a workaround to ensure the session process has exited before re-initializing the TTY.
|
}
|
||||||
state.io.sleep(.fromSeconds(1), .real) catch {};
|
|
||||||
session_pid = -1;
|
if (session_pid != -1) {
|
||||||
|
var session_status: c_int = undefined;
|
||||||
|
_ = std.posix.system.waitpid(session_pid, &session_status, 0);
|
||||||
|
// HACK: It seems like the session process is not exiting immediately after the waitpid call.
|
||||||
|
// This is a workaround to ensure the session process has exited before re-initializing the TTY.
|
||||||
|
state.io.sleep(.fromSeconds(1), .real) catch {};
|
||||||
|
session_pid = -1;
|
||||||
|
}
|
||||||
|
|
||||||
try state.log_file.reinit(state.io);
|
try state.log_file.reinit(state.io);
|
||||||
}
|
}
|
||||||
@@ -1658,7 +1670,20 @@ fn authenticate(ptr: *anyopaque) !bool {
|
|||||||
try state.buffer.reclaim();
|
try state.buffer.reclaim();
|
||||||
|
|
||||||
const auth_err = shared_err.readError();
|
const auth_err = shared_err.readError();
|
||||||
if (auth_err) |err| {
|
if (auth_err) |err| handle_error: {
|
||||||
|
if (err == error.PamNewAuthTokenRequired) {
|
||||||
|
try state.info_line.addMessage(
|
||||||
|
state.lang.token_expired,
|
||||||
|
state.config.bg,
|
||||||
|
state.config.fg,
|
||||||
|
);
|
||||||
|
|
||||||
|
state.maybe_old_password = try state.allocator.dupe(u8, state.password.text.items);
|
||||||
|
state.password.clear();
|
||||||
|
state.is_autologin = false;
|
||||||
|
break :handle_error;
|
||||||
|
}
|
||||||
|
|
||||||
state.auth_fails += 1;
|
state.auth_fails += 1;
|
||||||
state.buffer.setActiveWidget(state.password_widget);
|
state.buffer.setActiveWidget(state.password_widget);
|
||||||
|
|
||||||
@@ -2611,7 +2636,6 @@ fn getAuthErrorMsg(err: anyerror, lang: Lang) []const u8 {
|
|||||||
error.PamCredentialsInsufficient => lang.err_pam_cred_insufficient,
|
error.PamCredentialsInsufficient => lang.err_pam_cred_insufficient,
|
||||||
error.PamCredentialsUnavailable => lang.err_pam_cred_unavail,
|
error.PamCredentialsUnavailable => lang.err_pam_cred_unavail,
|
||||||
error.PamMaximumTries => lang.err_pam_maxtries,
|
error.PamMaximumTries => lang.err_pam_maxtries,
|
||||||
error.PamNewAuthTokenRequired => lang.err_pam_authok_reqd,
|
|
||||||
error.PamPermissionDenied => lang.err_pam_perm_denied,
|
error.PamPermissionDenied => lang.err_pam_perm_denied,
|
||||||
error.PamSessionError => lang.err_pam_session,
|
error.PamSessionError => lang.err_pam_session,
|
||||||
error.PamSystemError => lang.err_pam_sys,
|
error.PamSystemError => lang.err_pam_sys,
|
||||||
|
|||||||
Reference in New Issue
Block a user