From f7c46fc1138ff573c482e0c3059a2e7be43ef07e Mon Sep 17 00:00:00 2001 From: "Renato \"Lond\" Cerqueira" Date: Mon, 19 Mar 2018 15:12:06 +0100 Subject: Weblate translations 20180319 (#6827) * Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/pt_BR/ * Translated using Weblate (Spanish) Currently translated at 99.6% (579 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/es/ * Translated using Weblate (Spanish) Currently translated at 100.0% (58 of 58 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/es/ * Translated using Weblate (Japanese) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ja/ * Translated using Weblate (French) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fr/ * Translated using Weblate (Spanish) Currently translated at 100.0% (58 of 58 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/es/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/id/ * Translated using Weblate (Spanish) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/es/ * Translated using Weblate (Indonesian) Currently translated at 94.6% (71 of 75 strings) Translation: Mastodon/Doorkeeper Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/id/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/id/ * Translated using Weblate (Arabic) Currently translated at 100.0% (62 of 62 strings) Translation: Mastodon/Devise Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/devise/ar/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/id/ * Translated using Weblate (Dutch) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/nl/ * Translated using Weblate (Arabic) Currently translated at 75.5% (439 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/ * Translated using Weblate (Arabic) Currently translated at 76.2% (443 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/ * Translated using Weblate (Russian) Currently translated at 95.8% (557 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ru/ * Translated using Weblate (Finnish) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fi/ * Translated using Weblate (Slovak) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/sk/ * Translated using Weblate (Slovak) Currently translated at 91.7% (533 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/ * Translated using Weblate (Dutch) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/nl/ * Translated using Weblate (Spanish) Currently translated at 99.8% (580 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/es/ * Translated using Weblate (Finnish) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fi/ * Translated using Weblate (Slovak) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/sk/ * Translated using Weblate (Spanish) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/es/ * Translated using Weblate (Swedish) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/sv/ * Translated using Weblate (Finnish) Currently translated at 93.1% (54 of 58 strings) Translation: Mastodon/Preferences Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/fi/ * Translated using Weblate (Arabic) Currently translated at 76.7% (446 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/ * Translated using Weblate (Slovak) Currently translated at 93.2% (542 of 581 strings) Translation: Mastodon/Backend Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/ * Translated using Weblate (Arabic) Currently translated at 100.0% (280 of 280 strings) Translation: Mastodon/React Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ar/ * Normalize translations Ran i18n-tasks normalize && yarn manage:translations --- config/locales/ar.yml | 3 +++ config/locales/es.yml | 1 + config/locales/simple_form.fi.yml | 39 ++++++++++++++++++++++++++++++--------- config/locales/sk.yml | 14 +++++++++++++- 4 files changed, 47 insertions(+), 10 deletions(-) (limited to 'config') diff --git a/config/locales/ar.yml b/config/locales/ar.yml index ad674a346..e6447cab3 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -513,6 +513,8 @@ ar: over_character_limit: تم تجاوز حد الـ %{max} حرف المسموح بها pin_errors: ownership: لا يمكن تدبيس تبويق نشره شخص آخر + private: لا يمكن تثبيت تبويق لم يُنشر للعامة + reblog: لا يمكن تثبيت ترقية show_more: أظهر المزيد title: '%{name} : "%{quote}"' visibilities: @@ -524,6 +526,7 @@ ar: unlisted_long: يُمكن لأيٍ كان رُؤيتَه و لكن لن يُعرَض على الخيوط العامة stream_entries: click_to_show: إضغط للعرض + pinned: تبويق مثبّت reblogged: رقى sensitive_content: محتوى حساس terms: diff --git a/config/locales/es.yml b/config/locales/es.yml index d5ba1777b..671f17d33 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -275,6 +275,7 @@ es: username: Nombre de usuario hero: desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia + title: Imagen de portada peers_api_enabled: desc_html: Nombres de dominio que esta instancia ha encontrado en el fediverso title: Publicar lista de instancias descubiertas diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index a5cded1ce..34605c4f6 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -4,13 +4,19 @@ fi: hints: defaults: avatar: PNG, GIF tai JPG. Korkeintaan 2MB. Skaalataan kokoon 400x400px - digest: Lähetetään vain pitkän poissaolon jälkeen, ja vain jos olet vastaanottanut yksityisviestejä poissaolosi aikana. + digest: Lähetetään vain pitkän poissaolon jälkeen, ja vain jos olet vastaanottanut yksityisviestejä poissaolosi aikana display_name: Korkeintaan 30 merkkiä header: PNG, GIF tai JPG. Korkeintaan 2MB. Skaalataan kokoon 700x335px - locked: Vaatii sinun manuaalisesti hyväksymään seuraajat, ja asettaa julkaisujen yksityisyyden vain seuraajille + locked: Vaatii sinua manuaalisesti hyväksymään seuraajat note: Korkeintaan 160 merkkiä + setting_noindex: Vaikuttaa julkiseen profiiliisi ja statuspäivityksiisi + setting_theme: Vaikuttaa siihen, miltä Mastodon näyttää kun olet kirjautuneena milllä tahansa laitteella. imports: - data: CSV tiedosto tuotu toiselta Mastodon palvelimelta + data: CSV tiedosto, joka on tuotu toiselta Mastodon-palvelimelta + sessions: + otp: Syötä kaksivaiheisen tunnistuksen koodi puhelimestasi tai käytä yhtä palautuskoodeistasi. + user: + filtered_languages: Valitut kielet suodatetaan julkisilta aikajanoilta labels: defaults: avatar: Profiilikuva @@ -18,22 +24,37 @@ fi: confirm_password: Varmista salasana current_password: Nykyinen salasana data: Data - display_name: Näykyvä nimi + display_name: Nimimerkki email: Sähköpostiosoite - header: Otsake + expires_in: Vanhentuu + filtered_languages: Suodatetut kielet + header: Otsakekuva locale: Kieli locked: Tee tilistä yksityinen max_uses: Max käyttökerrat new_password: Uusi salasana - note: Bio + note: Kuvaus otp_attempt: Kaksivaiheinen koodi password: Salasana + setting_auto_play_gif: Animoitujen GIFfien automaattitoisto + setting_boost_modal: Näytä vahvistusikkuna ennen boostausta setting_default_privacy: Julkaisun yksityisyys + setting_default_sensitive: Merkitse media aina arkaluontoiseksi + setting_delete_modal: Näytä vahvistusikkuna ennen töötin poistamista + setting_display_sensitive_media: Näytä aina arkaluontoiseksi merkitty media + setting_noindex: Jättäydy pois hakukoneindeksoinnista + setting_reduce_motion: Vähennä liikettä animaatioissa + setting_system_font_ui: Käytä käyttöjärjestelmän oletusfonttia + setting_theme: Sivuston teema + setting_unfollow_modal: Näytä vahvistusikkuna ennen seuraamisen lopettamista + severity: Vakavuusaste type: Tuontityyppi username: Käyttäjänimi + username_or_email: Käyttäjänimi tai sähköposti interactions: - must_be_follower: Estä ilmoitukset käyttäjiltä jotka eivät seuraa sinua - must_be_following: Estä ilmoitukset käyttäjiltä joita et seuraa + must_be_follower: Estä ilmoitukset käyttäjiltä, jotka eivät seuraa sinua + must_be_following: Estä ilmoitukset käyttäjiltä, joita et seuraa + must_be_following_dm: Estä suorat viestit ihmisiltä, joita et seuraa notification_emails: digest: Lähetä koosteviestejä sähköpostilla favourite: Lähetä sähköposti, kun joku tykkää statuksestasi @@ -44,5 +65,5 @@ fi: 'no': Ei required: mark: "*" - text: vaaditaan + text: pakollinen tieto 'yes': Kyllä diff --git a/config/locales/sk.yml b/config/locales/sk.yml index dd8120193..e391974c6 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -593,7 +593,7 @@ sk: title: Sezóna settings: authorized_apps: Autorizované aplikácie - back: Naspäť na stránku + back: Späť do Mastodonu delete: Zmazanie účtu development: Vývoj edit_profile: Upraviť profil @@ -630,8 +630,15 @@ sk: title: Podmienky užívania, a pravidlá o súkromí pre %{instance} two_factor_authentication: enable: Povoliť + enabled: Dvoj-faktorové overovanie je povolené + enabled_success: Dvoj-faktorové overovanie bolo úspešne povolené generate_recovery_codes: Vygeneruj zálohové kódy + lost_recovery_codes: Zálohové kódy ti umožnia dostať sa k svojmu účtu ak stratíš telefón. Pokiaľ si stratila svoje zálohové kódy, môžeš si ich tu znovu vygenerovať. Tvoje staré zálohové kódy budú zneplatnené. + manual_instructions: 'Pokiaľ nemôžeš oskenovať daný QR kód, a potrebuješ ho zadať ručne, tu je tajomstvo v textovom formáte:' + recovery_codes: Zálohuj kódy pre obnovu + recovery_codes_regenerated: Zálohové kódy boli úspešne zvova vygenerované setup: Nastavenie + wrong_code: Zadaný kód bol neplatný. Je serverový čas a čas na zariadení správny? user_mailer: backup_ready: explanation: Vyžiadal/a si si úplnú zálohu tvojho Mastodon účtu. Táto záloha je teraz pripravená na stiahnutie! @@ -639,12 +646,17 @@ sk: title: Odber archívu welcome: edit_profile_action: Nastav profil + edit_profile_step: Profil si môžeš prispôsobiť nahratím portrétu a hlavičky, môžeš upraviť svoje meno a viac. Pokiaľ chceš preverovať nových následovateľov predtým než ťa budú môcť sledovať, môžeš uzamknúť svoj účet. explanation: Tu nájdeš nejaké tipy do začiatku final_action: Začni prispievať final_step: 'Začnite písať! Aj bez následovníkov budú vaše verejné správy videné ostatnými, napríklad na lokálnej osi a pod haštagmi. Môžete sa ostatným predstaviť pod haštagom #introductions.' full_handle: Adresa tvojho profilu v celom formáte + full_handle_hint: Toto je čo musíš dať vedieť svojím priateľom aby ti mohli posielať správy, alebo ťa následovať z inej instancie. review_preferences_action: Zmeniť nastavenia subject: Vitaj na Mastodone + tip_bridge_html: Ak prichádzaš z Twitteru, môžeš svojích priateľov nájsť na Mastodone pomocou tzv. mostíkovej aplikácie. Ale tá funguje iba ak ju aj oni niekedy použili! + tip_federated_timeline: Federovaná os zobrazuje sieť Mastodonu až po jej hranice. Ale zahŕňa iba ľúdí ktorých ostatní okolo teba sledujú, takže predsa nieje úplne celistvá. + tip_following: Správcu servera následuješ automaticky. Môžeš ale nájsť mnoho iných zaujímavých ľudí ak prezrieš tak lokálnu, ako aj globálne federovanú os. tip_local_timeline: Lokálna os je celkový pohľad na aktivitu užívateľov %{instance}. Toto sú tvoji najbližší susedia! tip_mobile_webapp: Pokiaľ ti prehliadač ponúkne možnosť pridať Mastodon na tvoju obrazovku, môžeš potom dostávať notifikácie skoro ako z natívnej aplikácie! tips: Tipy -- cgit From 0306e3e9bebe0b0d9ad7e5fe328dd3677717b7e5 Mon Sep 17 00:00:00 2001 From: Alexander Date: Mon, 19 Mar 2018 20:08:56 +0100 Subject: bugfixes and gem update (#6831) * update to new version of devise_pam_authenticatable2 * fix behaviour if suffix is nil, fix environment loading, fix user email creation * code cleanup/fix linter warning --- Gemfile | 4 +++- Gemfile.lock | 4 ++-- app/models/user.rb | 32 +++++++++++++++++--------------- config/application.rb | 2 ++ 4 files changed, 24 insertions(+), 18 deletions(-) (limited to 'config') diff --git a/Gemfile b/Gemfile index 3fce2ddc7..fe5bf572c 100644 --- a/Gemfile +++ b/Gemfile @@ -32,7 +32,9 @@ gem 'cld3', '~> 3.2.0' gem 'devise', '~> 4.4' gem 'devise-two-factor', '~> 3.0' -gem 'devise_pam_authenticatable2', '~> 8.0', install_if: -> { ENV['PAM_ENABLED'] == 'true' } +group :pam_authentication, optional: true do + gem 'devise_pam_authenticatable2', '~> 9.0' +end gem 'net-ldap', '~> 0.10' gem 'omniauth-cas', '~> 1.1' gem 'omniauth-saml', '~> 1.10' diff --git a/Gemfile.lock b/Gemfile.lock index 0640b140b..ca6365c74 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -141,7 +141,7 @@ GEM devise (~> 4.0) railties (< 5.2) rotp (~> 2.0) - devise_pam_authenticatable2 (8.0.1) + devise_pam_authenticatable2 (9.0.0) devise (>= 4.0.0) rpam2 (~> 3.0) diff-lcs (1.3) @@ -631,7 +631,7 @@ DEPENDENCIES climate_control (~> 0.2) devise (~> 4.4) devise-two-factor (~> 3.0) - devise_pam_authenticatable2 (~> 8.0) + devise_pam_authenticatable2 (~> 9.0) doorkeeper (~> 4.2) dotenv-rails (~> 2.2) fabrication (~> 2.18) diff --git a/app/models/user.rb b/app/models/user.rb index b716c13fd..2d5f145fa 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -52,6 +52,8 @@ class User < ApplicationRecord devise :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable + devise :pam_authenticatable if ENV['PAM_ENABLED'] == 'true' + devise :omniauthable belongs_to :account, inverse_of: :user @@ -96,7 +98,7 @@ class User < ApplicationRecord def pam_conflict? return false unless Devise.pam_authentication - encrypted_password.present? && is_pam_account? + encrypted_password.present? && pam_managed_user? end def pam_get_name @@ -267,22 +269,22 @@ class User < ApplicationRecord end def self.pam_get_user(attributes = {}) - if attributes[:email] - resource = - if Devise.check_at_sign && !attributes[:email].index('@') - joins(:account).find_by(accounts: { username: attributes[:email] }) - else - find_by(email: attributes[:email]) - end - - if resource.blank? - resource = new(email: attributes[:email]) - if Devise.check_at_sign && !resource[:email].index('@') - resource[:email] = "#{attributes[:email]}@#{resource.find_pam_suffix}" - end + return nil unless attributes[:email] + resource = + if Devise.check_at_sign && !attributes[:email].index('@') + joins(:account).find_by(accounts: { username: attributes[:email] }) + else + find_by(email: attributes[:email]) + end + + if resource.blank? + resource = new(email: attributes[:email]) + if Devise.check_at_sign && !resource[:email].index('@') + resource[:email] = Rpam2.getenv(resource.find_pam_service, attributes[:email], attributes[:password], 'email', false) + resource[:email] = "#{attributes[:email]}@#{resource.find_pam_suffix}" unless resource[:email] end - resource end + resource end def self.ldap_get_user(attributes = {}) diff --git a/config/application.rb b/config/application.rb index 097cbf567..326a0ec8c 100644 --- a/config/application.rb +++ b/config/application.rb @@ -16,6 +16,8 @@ require_relative '../lib/devise/ldap_authenticatable' Dotenv::Railtie.load +Bundler.require(:pam_authentication) if ENV['PAM_ENABLED'] == 'true' + require_relative '../lib/mastodon/redis_config' module Mastodon -- cgit From 33ee347c995515946e0a045394fe693875ee1cdf Mon Sep 17 00:00:00 2001 From: Alexander Date: Mon, 19 Mar 2018 20:09:26 +0100 Subject: rename pam email environment variable to something more understandable and default to LOCAL_DOMAIN (better fallback) (#6833) --- .env.production.sample | 4 ++-- config/initializers/devise.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'config') diff --git a/.env.production.sample b/.env.production.sample index 579ad667b..1e5ed9f3d 100644 --- a/.env.production.sample +++ b/.env.production.sample @@ -155,8 +155,8 @@ STREAMING_CLUSTER_NUM=1 # The pam environment variable "email" is provided by: # https://github.com/devkral/pam_email_extractor # PAM_ENABLED=true -# Fallback Suffix for email address generation (nil by default) -# PAM_DEFAULT_SUFFIX=pam +# Fallback email domain for email address generation (LOCAL_DOMAIN by default) +# PAM_EMAIL_DOMAIN=example.com # Name of the pam service (pam "auth" section is evaluated) # PAM_DEFAULT_SERVICE=rpam # Name of the pam service used for checking if an user can register (pam "account" section is evaluated) (nil (disabled) by default) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index df45dcd1f..97757d0fb 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -342,7 +342,7 @@ Devise.setup do |config| config.usernamefield = nil config.emailfield = 'email' config.check_at_sign = true - config.pam_default_suffix = ENV.fetch('PAM_DEFAULT_SUFFIX') { nil } + config.pam_default_suffix = ENV.fetch('PAM_EMAIL_DOMAIN') { ENV['LOCAL_DOMAIN'] } config.pam_default_service = ENV.fetch('PAM_DEFAULT_SERVICE') { 'rpam' } config.pam_controlled_service = ENV.fetch('PAM_CONTROLLED_SERVICE') { nil } end -- cgit