Add "why do you want to join" field to invite requests (#10524)

* Add "why do you want to join" field to invite requests

Fix #10512

* Remove unused translations

* Fix broken registrations when no invite request text is submitted
This commit is contained in:
Eugen Rochko 2019-04-09 16:06:30 +02:00 committed by Yamagishi Kazutoshi
parent 0f3719f16f
commit 8b69a66380
57 changed files with 125 additions and 62 deletions

View File

@ -16,7 +16,10 @@ class AboutController < ApplicationController
private private
def new_user def new_user
User.new.tap(&:build_account) User.new.tap do |user|
user.build_account
user.build_invite_request
end
end end
helper_method :new_user helper_method :new_user

View File

@ -30,7 +30,7 @@ module Admin
private private
def set_accounts def set_accounts
@accounts = Account.joins(:user).merge(User.pending).page(params[:page]) @accounts = Account.joins(:user).merge(User.pending).includes(user: :invite_request).page(params[:page])
end end
def form_account_batch_params def form_account_batch_params

View File

@ -10,6 +10,10 @@ class Auth::RegistrationsController < Devise::RegistrationsController
before_action :set_instance_presenter, only: [:new, :create, :update] before_action :set_instance_presenter, only: [:new, :create, :update]
before_action :set_body_classes, only: [:new, :create, :edit, :update] before_action :set_body_classes, only: [:new, :create, :edit, :update]
def new
super(&:build_invite_request)
end
def destroy def destroy
not_found not_found
end end
@ -24,17 +28,17 @@ class Auth::RegistrationsController < Devise::RegistrationsController
def build_resource(hash = nil) def build_resource(hash = nil)
super(hash) super(hash)
resource.locale = I18n.locale resource.locale = I18n.locale
resource.invite_code = params[:invite_code] if resource.invite_code.blank? resource.invite_code = params[:invite_code] if resource.invite_code.blank?
resource.agreement = true resource.agreement = true
resource.current_sign_in_ip = request.remote_ip
resource.current_sign_in_ip = request.remote_ip if resource.current_sign_in_ip.nil?
resource.build_account if resource.account.nil? resource.build_account if resource.account.nil?
end end
def configure_sign_up_params def configure_sign_up_params
devise_parameter_sanitizer.permit(:sign_up) do |u| devise_parameter_sanitizer.permit(:sign_up) do |u|
u.permit({ account_attributes: [:username] }, :email, :password, :password_confirmation, :invite_code) u.permit({ account_attributes: [:username], invite_request_attributes: [:text] }, :email, :password, :password_confirmation, :invite_code)
end end
end end

View File

@ -292,3 +292,29 @@
.directory__tag .trends__item__current { .directory__tag .trends__item__current {
width: auto; width: auto;
} }
.pending-account {
&__header {
color: $darker-text-color;
a {
color: $ui-secondary-color;
text-decoration: none;
&:hover,
&:active,
&:focus {
text-decoration: underline;
}
}
strong {
color: $primary-text-color;
font-weight: 700;
}
}
&__body {
margin-top: 10px;
}
}

View File

@ -377,6 +377,10 @@
border: 0; border: 0;
} }
strong {
font-weight: 700;
}
thead th { thead th {
text-align: center; text-align: center;
text-transform: uppercase; text-transform: uppercase;
@ -414,6 +418,11 @@
} }
} }
&__comment {
width: 50%;
vertical-align: initial !important;
}
@media screen and (max-width: $no-gap-breakpoint) { @media screen and (max-width: $no-gap-breakpoint) {
tbody td.optional { tbody td.optional {
display: none; display: none;

View File

@ -74,6 +74,9 @@ class User < ApplicationRecord
has_many :applications, class_name: 'Doorkeeper::Application', as: :owner has_many :applications, class_name: 'Doorkeeper::Application', as: :owner
has_many :backups, inverse_of: :user has_many :backups, inverse_of: :user
has_one :invite_request, class_name: 'UserInviteRequest', inverse_of: :user, dependent: :destroy
accepts_nested_attributes_for :invite_request, reject_if: ->(attributes) { attributes['text'].blank? }
validates :locale, inclusion: I18n.available_locales.map(&:to_s), if: :locale? validates :locale, inclusion: I18n.available_locales.map(&:to_s), if: :locale?
validates_with BlacklistedEmailValidator, if: :email_changed? validates_with BlacklistedEmailValidator, if: :email_changed?
validates_with EmailMxValidator, if: :validate_email_dns? validates_with EmailMxValidator, if: :validate_email_dns?

View File

@ -0,0 +1,17 @@
# frozen_string_literal: true
# == Schema Information
#
# Table name: user_invite_requests
#
# id :bigint(8) not null, primary key
# user_id :bigint(8)
# text :text
# created_at :datetime not null
# updated_at :datetime not null
#
class UserInviteRequest < ApplicationRecord
belongs_to :user, inverse_of: :invite_request
validates :text, presence: true, length: { maximum: 420 }
end

View File

@ -10,6 +10,11 @@
= f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations? = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
= f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations? = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
- if approved_registrations?
.fields-group
= f.simple_fields_for :invite_request do |invite_request_fields|
= invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: false
.fields-group .fields-group
= f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), disabled: closed_registrations? = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), disabled: closed_registrations?

View File

@ -1,14 +1,14 @@
.batch-table__row .batch-table__row
%label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox
= f.check_box :account_ids, { multiple: true, include_hidden: false }, account.id = f.check_box :account_ids, { multiple: true, include_hidden: false }, account.id
.batch-table__row__content.batch-table__row__content--unpadded .batch-table__row__content.pending-account
%table.accounts-table .pending-account__header
%tbody = link_to admin_account_path(account.id) do
%tr %strong= account.user_email
%td = "(@#{account.username})"
= account.user_email %br/
= "(@#{account.username})" = account.user_current_sign_in_ip
%br/
= account.user_current_sign_in_ip - if account.user&.invite_request&.text&.present?
%td.accounts-table__count .pending-account__body
= table_link_to 'pencil', t('admin.accounts.edit'), admin_account_path(account.id) %p= account.user&.invite_request&.text

View File

@ -21,12 +21,19 @@
.fields-group .fields-group
= f.input :password, wrapper: :with_label, label: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' } = f.input :password, wrapper: :with_label, label: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }
.fields-group .fields-group
= f.input :password_confirmation, wrapper: :with_label, label: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' } = f.input :password_confirmation, wrapper: :with_label, label: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }
- if approved_registrations? && !@invite.present?
.fields-group
= f.simple_fields_for :invite_request do |invite_request_fields|
= invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: false
= f.input :invite_code, as: :hidden = f.input :invite_code, as: :hidden
%p.hint= t('auth.agreement_html', rules_path: about_more_path, terms_path: terms_path) .fields-group
= f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path)
.actions .actions
= f.button :button, sign_up_message, type: :submit = f.button :button, sign_up_message, type: :submit

View File

@ -498,7 +498,6 @@ ar:
warning: كن حذرا مع هذه البيانات. لا تقم أبدا بمشاركتها مع الآخَرين ! warning: كن حذرا مع هذه البيانات. لا تقم أبدا بمشاركتها مع الآخَرين !
your_token: رمز نفاذك your_token: رمز نفاذك
auth: auth:
agreement_html: بمجرد النقر على "التسجيل" أسفله، فإنك تُصرِّح قبول <a href="%{rules_path}">قواعد مثيل الخادوم</a> و <a href="%{terms_path}">شروط الخدمة التي نوفرها لك</a>.
change_password: الكلمة السرية change_password: الكلمة السرية
confirm_email: تأكيد عنوان البريد الإلكتروني confirm_email: تأكيد عنوان البريد الإلكتروني
delete_account: حذف حساب delete_account: حذف حساب

View File

@ -123,7 +123,6 @@ ast:
invalid_url: La URL apurrida nun ye válida invalid_url: La URL apurrida nun ye válida
warning: Ten curiáu con estos datos, ¡enxamás nun los compartas con naide! warning: Ten curiáu con estos datos, ¡enxamás nun los compartas con naide!
auth: auth:
agreement_html: Faciendo clic en «Aniciar sesión» aceutes siguir <a href="%{rules_path}"> les regles de la instancia</a> y <a href="%{terms_path}">los nuesos términos del serviciu</a>.
change_password: Contraseña change_password: Contraseña
delete_account: Desaniciu de la cuenta delete_account: Desaniciu de la cuenta
delete_account_html: Si deseyes desaniciar la to cuenta, pues <a href="%{path}">siguir equí</a>. Va pidísete la confirmación. delete_account_html: Si deseyes desaniciar la to cuenta, pues <a href="%{path}">siguir equí</a>. Va pidísete la confirmación.

View File

@ -507,7 +507,6 @@ ca:
warning: Aneu amb compte amb aquestes dades. No les compartiu mai amb ningú! warning: Aneu amb compte amb aquestes dades. No les compartiu mai amb ningú!
your_token: El teu identificador d'accés your_token: El teu identificador d'accés
auth: auth:
agreement_html: Al fer clic en "Registre" acceptes respectar <a href="%{rules_path}">les normes del servidor</a> i <a href="%{terms_path}">els nostres termes del servei</a>.
apply_for_account: Demana una invitació apply_for_account: Demana una invitació
change_password: Contrasenya change_password: Contrasenya
checkbox_agreement_html: Estic d'acord amb les <a href="%{rules_path}" target="_blank">normes del servidor</a> i <a href="%{terms_path}" target="_blank"> els termes del servei</a> checkbox_agreement_html: Estic d'acord amb les <a href="%{rules_path}" target="_blank">normes del servidor</a> i <a href="%{terms_path}" target="_blank"> els termes del servei</a>

View File

@ -513,7 +513,6 @@ co:
warning: Abbadate à quessi dati. Ùn i date à nisunu! warning: Abbadate à quessi dati. Ùn i date à nisunu!
your_token: Rigenerà a fiscia daccessu your_token: Rigenerà a fiscia daccessu
auth: auth:
agreement_html: Cliccà "Arregistrassi" quì sottu vole dì chì site daccunsentu per siguità <a href="%{rules_path}">e regule di u servore</a> è <a href="%{terms_path}">e cundizione dusu</a>.
apply_for_account: Dumandà un'invitazione apply_for_account: Dumandà un'invitazione
change_password: Chjave daccessu change_password: Chjave daccessu
checkbox_agreement_html: Sò d'accunsentu cù e <a href="%{rules_path}" target="_blank">regule di u servore</a> è i <a href="%{terms_path}" target="_blank">termini di u serviziu</a> checkbox_agreement_html: Sò d'accunsentu cù e <a href="%{rules_path}" target="_blank">regule di u servore</a> è i <a href="%{terms_path}" target="_blank">termini di u serviziu</a>

View File

@ -518,7 +518,6 @@ cs:
warning: Buďte s těmito daty velmi opatrní. Nikdy je s nikým nesdílejte! warning: Buďte s těmito daty velmi opatrní. Nikdy je s nikým nesdílejte!
your_token: Váš přístupový token your_token: Váš přístupový token
auth: auth:
agreement_html: Kliknutím na tlačítko „Registrovat“ souhlasíte s následováním <a href="%{rules_path}">pravidel tohoto serveru</a> a <a href="%{terms_path}">našich podmínek používání</a>.
apply_for_account: Vyžádat si pozvánku apply_for_account: Vyžádat si pozvánku
change_password: Heslo change_password: Heslo
checkbox_agreement_html: Souhlasím s <a href="%{rules_path}" target="_blank">pravidly serveru</a> a <a href="%{terms_path}" target="_blank">podmínkami používání</a> checkbox_agreement_html: Souhlasím s <a href="%{rules_path}" target="_blank">pravidly serveru</a> a <a href="%{terms_path}" target="_blank">podmínkami používání</a>

View File

@ -506,7 +506,6 @@ cy:
warning: Byddwch yn ofalus a'r data hyn. Peidiwch a'i rannu byth! warning: Byddwch yn ofalus a'r data hyn. Peidiwch a'i rannu byth!
your_token: Eich tocyn mynediad your_token: Eich tocyn mynediad
auth: auth:
agreement_html: Wrth glicio "Cofrestru" isod yr ydych yn cytuno i ddilyn <a href="%{rules_path}">y rheolau ar gyfer yr achos hwn</a> a <a href="%{terms_path}">ein termau gwasanaeth</a>.
change_password: Cyfrinair change_password: Cyfrinair
confirm_email: Cadarnhau e-bost confirm_email: Cadarnhau e-bost
delete_account: Dileu cyfrif delete_account: Dileu cyfrif

View File

@ -432,7 +432,6 @@ da:
warning: Vær meget forsigtig med disse data. Del dem aldrig med nogen! warning: Vær meget forsigtig med disse data. Del dem aldrig med nogen!
your_token: Din adgangs token your_token: Din adgangs token
auth: auth:
agreement_html: Ved at oprette dig erklærer du dig enig i at følge <a href="%{rules_path}">serverens regler</a> og <a href="%{terms_path}">vores servicevilkår</a>.
change_password: Kodeord change_password: Kodeord
confirm_email: Bekræft email confirm_email: Bekræft email
delete_account: Slet konto delete_account: Slet konto

View File

@ -511,7 +511,6 @@ de:
warning: Sei mit diesen Daten sehr vorsichtig. Teile sie mit niemandem! warning: Sei mit diesen Daten sehr vorsichtig. Teile sie mit niemandem!
your_token: Dein Zugangs-Token your_token: Dein Zugangs-Token
auth: auth:
agreement_html: Indem du dich registrierst, erklärst du dich mit den untenstehenden <a href="%{rules_path}">Regeln des Servers</a> und der <a href="%{terms_path}">Datenschutzerklärung</a> einverstanden.
apply_for_account: Eine Einladung anfragen apply_for_account: Eine Einladung anfragen
change_password: Passwort change_password: Passwort
checkbox_agreement_html: Ich akzeptiere die <a href="%{rules_path}" target="_blank">Server-Regeln</a> und die <a href="%{terms_path}" target="_blank">Nutzungsbedingungen</a> checkbox_agreement_html: Ich akzeptiere die <a href="%{rules_path}" target="_blank">Server-Regeln</a> und die <a href="%{terms_path}" target="_blank">Nutzungsbedingungen</a>

View File

@ -506,7 +506,6 @@ el:
warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν! warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν!
your_token: Το διακριτικό πρόσβασής σου (access token) your_token: Το διακριτικό πρόσβασής σου (access token)
auth: auth:
agreement_html: Επιλέγοντας το "Εγγραφή", συμφωνείς πως δέχεσαι <a href="%{rules_path}">τους κανόνες αυτού του κόμβου</a> και <a href="%{terms_path}">τους όρους χρήσης του</a>.
apply_for_account: Αίτηση πρόσκλησης apply_for_account: Αίτηση πρόσκλησης
change_password: Συνθηματικό change_password: Συνθηματικό
checkbox_agreement_html: Συμφωνώ με τους <a href="%{rules_path}" target="_blank">κανονισμούς του κόμβου</a> και <a href="%{terms_path}" target="_blank">τους όρους χρήσης</a> checkbox_agreement_html: Συμφωνώ με τους <a href="%{rules_path}" target="_blank">κανονισμούς του κόμβου</a> και <a href="%{terms_path}" target="_blank">τους όρους χρήσης</a>

View File

@ -513,7 +513,6 @@ en:
warning: Be very careful with this data. Never share it with anyone! warning: Be very careful with this data. Never share it with anyone!
your_token: Your access token your_token: Your access token
auth: auth:
agreement_html: By clicking "Sign up" below you agree to follow <a href="%{rules_path}">the rules of the server</a> and <a href="%{terms_path}">our terms of service</a>.
apply_for_account: Request an invite apply_for_account: Request an invite
change_password: Password change_password: Password
checkbox_agreement_html: I agree to the <a href="%{rules_path}" target="_blank">server rules</a> and <a href="%{terms_path}" target="_blank">terms of service</a> checkbox_agreement_html: I agree to the <a href="%{rules_path}" target="_blank">server rules</a> and <a href="%{terms_path}" target="_blank">terms of service</a>

View File

@ -506,7 +506,6 @@ en_GB:
warning: Be very careful with this data. Never share it with anyone! warning: Be very careful with this data. Never share it with anyone!
your_token: Your access token your_token: Your access token
auth: auth:
agreement_html: By clicking "Sign up" below you agree to follow <a href="%{rules_path}">the rules of the server</a> and <a href="%{terms_path}">our terms of service</a>.
apply_for_account: Request an invite apply_for_account: Request an invite
change_password: Password change_password: Password
checkbox_agreement_html: I agree to the <a href="%{rules_path}" target="_blank">server rules</a> and <a href="%{terms_path}" target="_blank">terms of service</a> checkbox_agreement_html: I agree to the <a href="%{rules_path}" target="_blank">server rules</a> and <a href="%{terms_path}" target="_blank">terms of service</a>

View File

@ -507,7 +507,6 @@ eo:
warning: Estu tre atenta kun ĉi tiu datumo. Neniam diskonigu ĝin al iu ajn! warning: Estu tre atenta kun ĉi tiu datumo. Neniam diskonigu ĝin al iu ajn!
your_token: Via alira ĵetono your_token: Via alira ĵetono
auth: auth:
agreement_html: Klakante “Registriĝi” sube, vi konsentas kun <a href="%{rules_path}">la reguloj de la servilo</a> kaj <a href="%{terms_path}">niaj uzkondiĉoj</a>.
apply_for_account: Peti inviton apply_for_account: Peti inviton
change_password: Pasvorto change_password: Pasvorto
checkbox_agreement_html: Mi samopinii al la <a href="%{rules_path}" target="_blank">Servo reguloj</a> kaj <a href="%{terms_path}" target="_blank">kondiĉo al servadon</a> checkbox_agreement_html: Mi samopinii al la <a href="%{rules_path}" target="_blank">Servo reguloj</a> kaj <a href="%{terms_path}" target="_blank">kondiĉo al servadon</a>

View File

@ -437,7 +437,6 @@ es:
warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie! warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie!
your_token: Tu token de acceso your_token: Tu token de acceso
auth: auth:
agreement_html: Al hacer click en "Registrarse" acepta seguir <a href="%{rules_path}">las reglas de la instancia</a> y <a href="%{terms_path}">nuestros términos de servicio</a>.
change_password: Contraseña change_password: Contraseña
confirm_email: Confirmar email confirm_email: Confirmar email
delete_account: Borrar cuenta delete_account: Borrar cuenta

View File

@ -481,7 +481,6 @@ eu:
warning: Kontuz datu hauekin, ez partekatu inoiz inorekin! warning: Kontuz datu hauekin, ez partekatu inoiz inorekin!
your_token: Zure sarbide token-a your_token: Zure sarbide token-a
auth: auth:
agreement_html: '"Izena eman" botoia sakatzean <a href="%{rules_path}">zerbitzariaren arauak</a> eta <a href="%{terms_path}">erabilera baldintzak</a> onartzen dituzu.'
change_password: Pasahitza change_password: Pasahitza
confirm_email: Berretsi e-mail helbidea confirm_email: Berretsi e-mail helbidea
delete_account: Ezabatu kontua delete_account: Ezabatu kontua

View File

@ -506,7 +506,6 @@ fa:
warning: خیلی مواظب این اطلاعات باشید و آن را به هیچ کس ندهید! warning: خیلی مواظب این اطلاعات باشید و آن را به هیچ کس ندهید!
your_token: کد دسترسی شما your_token: کد دسترسی شما
auth: auth:
agreement_html: با کلیک روی دکمهٔ عضو شدن، شما <a href="%{rules_path}">قوانین این سرور</a> و <a href="%{terms_path}">شرایط استفادهٔ</a> ما را می‌پذیرید.
apply_for_account: درخواست دعوت‌نامه apply_for_account: درخواست دعوت‌نامه
change_password: رمز change_password: رمز
checkbox_agreement_html: من <a href="%{rules_path}" target="_blank">قانون‌های این سرور</a> و <a href="%{terms_path}" target="_blank">شرایط کاربری</a> را می‌پذیرم checkbox_agreement_html: من <a href="%{rules_path}" target="_blank">قانون‌های این سرور</a> و <a href="%{terms_path}" target="_blank">شرایط کاربری</a> را می‌پذیرم

View File

@ -370,7 +370,6 @@ fi:
warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille! warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille!
your_token: Pääsytunnus your_token: Pääsytunnus
auth: auth:
agreement_html: Rekisteröityessäsi sitoudut noudattamaan <a href="%{rules_path}">instanssin sääntöjä</a> ja <a href="%{terms_path}">käyttöehtoja</a>.
change_password: Salasana change_password: Salasana
confirm_email: Vahvista sähköpostiosoite confirm_email: Vahvista sähköpostiosoite
delete_account: Poista tili delete_account: Poista tili

View File

@ -482,7 +482,6 @@ fr:
warning: Soyez prudent⋅e avec ces données. Ne les partagez pas! warning: Soyez prudent⋅e avec ces données. Ne les partagez pas!
your_token: Votre jeton daccès your_token: Votre jeton daccès
auth: auth:
agreement_html: En cliquant sur "S'inscrire" ci-dessous, vous souscrivez <a href="%{rules_path}">aux règles du serveur</a> et à <a href="%{terms_path}">nos conditions dutilisation</a>.
change_password: Mot de passe change_password: Mot de passe
confirm_email: Confirmer mon adresse mail confirm_email: Confirmer mon adresse mail
delete_account: Supprimer le compte delete_account: Supprimer le compte

View File

@ -506,7 +506,6 @@ gl:
warning: Teña moito tino con estos datos. Nunca os comparta con ninguén! warning: Teña moito tino con estos datos. Nunca os comparta con ninguén!
your_token: O seu testemuño de acceso your_token: O seu testemuño de acceso
auth: auth:
agreement_html: Ao pulsar "Rexistrar" vostede acorda seguir <a href="%{rules_path}">as normas do servidor</a> e <a href="%{terms_path}">os termos do servizo</a>.
apply_for_account: Solicite un convite apply_for_account: Solicite un convite
change_password: Contrasinal change_password: Contrasinal
checkbox_agreement_html: Acepto as <a href="%{rules_path}" target="_blank">regras do servidor</a> e os <a href="%{terms_path}" target="_blank">termos do servizo</a> checkbox_agreement_html: Acepto as <a href="%{rules_path}" target="_blank">regras do servidor</a> e os <a href="%{terms_path}" target="_blank">termos do servizo</a>

View File

@ -309,7 +309,6 @@ hu:
warning: Ez érzékeny adat. Soha ne oszd meg másokkal! warning: Ez érzékeny adat. Soha ne oszd meg másokkal!
your_token: Hozzáférési kulcsod your_token: Hozzáférési kulcsod
auth: auth:
agreement_html: A feliratkozással elfogatod az <a href="%{rules_path}">instancia szabályzatát</a> és a <a href="%{terms_path}">felhasználási feltételeket</a>.
delete_account: Felhasználói fiók törlése delete_account: Felhasználói fiók törlése
delete_account_html: Felhasználói fiókod törléséhez <a href="%{path}">kattints ide</a>. A rendszer újbóli megerősítést fog kérni. delete_account_html: Felhasználói fiókod törléséhez <a href="%{path}">kattints ide</a>. A rendszer újbóli megerősítést fog kérni.
didnt_get_confirmation: Nem kaptad meg a megerősítési lépéseket? didnt_get_confirmation: Nem kaptad meg a megerősítési lépéseket?

View File

@ -467,7 +467,6 @@ it:
token_regenerated: Token di accesso rigenerato token_regenerated: Token di accesso rigenerato
warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro! warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro!
auth: auth:
agreement_html: Iscrivendoti, accetti di seguire <a href="%{rules_path}">le regole del server</a> e <a href="%{terms_path}"> le nostre condizioni di servizio</a>.
change_password: Password change_password: Password
confirm_email: Conferma email confirm_email: Conferma email
delete_account: Elimina account delete_account: Elimina account

View File

@ -512,7 +512,6 @@ ja:
warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください! warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください!
your_token: アクセストークン your_token: アクセストークン
auth: auth:
agreement_html: 登録するをクリックすると <a href="%{rules_path}">サーバーのルール</a> と <a href="%{terms_path}">プライバシーポリシー</a> に従うことに同意したことになります。
apply_for_account: 登録を申請する apply_for_account: 登録を申請する
change_password: パスワード change_password: パスワード
checkbox_agreement_html: <a href="%{rules_path}" target="_blank">サーバーのルール</a> と <a href="%{terms_path}" target="_blank">プライバシーポリシー</a> に同意します checkbox_agreement_html: <a href="%{rules_path}" target="_blank">サーバーのルール</a> と <a href="%{terms_path}" target="_blank">プライバシーポリシー</a> に同意します

View File

@ -401,7 +401,6 @@ ka:
warning: იყავით ძალიან ფრთხილად ამ მონაცემთან. არასდროს გააზიაროთ ეს! warning: იყავით ძალიან ფრთხილად ამ მონაცემთან. არასდროს გააზიაროთ ეს!
your_token: თქვენი წვდომის ტოკენი your_token: თქვენი წვდომის ტოკენი
auth: auth:
agreement_html: რეგისტრაციით თქვენ ეთანხმებით <a href="%{rules_path}">ინსტანციის წესებს</a> და <a href="%{terms_path}">ჩვენ მომსახურების პირობებს</a>.
change_password: პაროლი change_password: პაროლი
confirm_email: ელ-ფოსტის დამოწმება confirm_email: ელ-ფოსტის დამოწმება
delete_account: ანგარიშის გაუქმება delete_account: ანგარიშის გაუქმება

View File

@ -482,7 +482,6 @@ kk:
warning: Be very carеful with this data. Never share it with anyone! warning: Be very carеful with this data. Never share it with anyone!
your_token: Your access tokеn your_token: Your access tokеn
auth: auth:
agreement_html: '"Тіркелу" батырмасын басу арқылы <a href="%{rules_path}">сервер ережелері</a> мен <a href="%{terms_path}">қолдану шарттарына</a> келісесіз.'
change_password: Құпиясөз change_password: Құпиясөз
confirm_email: Еmаil құптау confirm_email: Еmаil құптау
delete_account: Аккаунт өшіру delete_account: Аккаунт өшіру

View File

@ -514,7 +514,6 @@ ko:
warning: 이 데이터를 조심히 다뤄 주세요. 다른 사람들과 절대로 공유하지 마세요! warning: 이 데이터를 조심히 다뤄 주세요. 다른 사람들과 절대로 공유하지 마세요!
your_token: 액세스 토큰 your_token: 액세스 토큰
auth: auth:
agreement_html: 이 등록으로 이 서버의 <a href="%{rules_path}">이용규약</a> 과 <a href="%{terms_path}">약관</a>에 동의하는 것으로 간주됩니다.
apply_for_account: 가입 요청하기 apply_for_account: 가입 요청하기
change_password: 패스워드 change_password: 패스워드
checkbox_agreement_html: <a href="%{rules_path}" target="_blank">서버 규칙</a>과 <a href="%{terms_path}" target="_blank">이용약관</a>에 동의합니다 checkbox_agreement_html: <a href="%{rules_path}" target="_blank">서버 규칙</a>과 <a href="%{terms_path}" target="_blank">이용약관</a>에 동의합니다

View File

@ -490,7 +490,6 @@ lt:
warning: Būkite atsargūs su šia informacija. Niekada jos nesidalinkite! warning: Būkite atsargūs su šia informacija. Niekada jos nesidalinkite!
your_token: Jūsų prieigos žetonas your_token: Jūsų prieigos žetonas
auth: auth:
agreement_html: Paspaudus "Sign up" Jūs sutinkate sekti <a href="%{rules_path}">serverio taisykles</a> bei <a href="%{terms_path}">naudojimo sąlygas</a>.
change_password: Slaptažodis change_password: Slaptažodis
confirm_email: Patvirtinti el paštą confirm_email: Patvirtinti el paštą
delete_account: Ištrinti paskyrą delete_account: Ištrinti paskyrą

View File

@ -506,7 +506,6 @@ nl:
warning: Wees voorzichtig met deze gegevens. Deel het nooit met iemand anders! warning: Wees voorzichtig met deze gegevens. Deel het nooit met iemand anders!
your_token: Jouw toegangscode your_token: Jouw toegangscode
auth: auth:
agreement_html: Wanneer je op registreren klikt ga je akkoord met het opvolgen van <a href="%{rules_path}">de regels van deze server</a> en <a href="%{terms_path}">onze gebruiksvoorwaarden</a>.
apply_for_account: Een uitnodiging aanvragen apply_for_account: Een uitnodiging aanvragen
change_password: Wachtwoord change_password: Wachtwoord
checkbox_agreement_html: Ik ga akkoord met de <a href="%{rules_path}" target="_blank">regels van deze server</a> en de <a href="%{terms_path}" target="_blank">gebruiksvoorwaarden</a> checkbox_agreement_html: Ik ga akkoord met de <a href="%{rules_path}" target="_blank">regels van deze server</a> en de <a href="%{terms_path}" target="_blank">gebruiksvoorwaarden</a>

View File

@ -309,7 +309,6 @@
warning: Vær veldig forsiktig med denne data. Aldri del den med noen! warning: Vær veldig forsiktig med denne data. Aldri del den med noen!
your_token: Din tilgangsnøkkel your_token: Din tilgangsnøkkel
auth: auth:
agreement_html: Ved å registrere deg godtar du å følge <a href="%{rules_path}">instansens regler</a> og <a href="%{terms_path}">våre brukervilkår</a>.
delete_account: Slett konto delete_account: Slett konto
delete_account_html: Hvis du ønsker å slette din konto kan du <a href="%{path}">fortsette her</a>. Du vil bli spurt om bekreftelse. delete_account_html: Hvis du ønsker å slette din konto kan du <a href="%{path}">fortsette her</a>. Du vil bli spurt om bekreftelse.
didnt_get_confirmation: Mottok du ikke instruksjoner om bekreftelse? didnt_get_confirmation: Mottok du ikke instruksjoner om bekreftelse?

View File

@ -498,7 +498,6 @@ oc:
warning: Mèfi! Agachatz de partejar aquela donada amb degun! warning: Mèfi! Agachatz de partejar aquela donada amb degun!
your_token: Vòstre geton daccès your_token: Vòstre geton daccès
auth: auth:
agreement_html: En vos marcar acceptatz <a href="%{rules_path}">las règlas del servidor</a> e <a href="%{terms_path}">politica de confidencialitat</a>.
apply_for_account: Demandar una invitacion apply_for_account: Demandar una invitacion
change_password: Senhal change_password: Senhal
checkbox_agreement_html: Accepti las <a href="%{rules_path}" target="_blank">règlas del servidor</a> e <a href="%{terms_path}" target="_blank">los tèrmes del servici</a> checkbox_agreement_html: Accepti las <a href="%{rules_path}" target="_blank">règlas del servidor</a> e <a href="%{terms_path}" target="_blank">los tèrmes del servici</a>

View File

@ -519,7 +519,6 @@ pl:
warning: Przechowuj te dane ostrożnie. Nie udostępniaj ich nikomu! warning: Przechowuj te dane ostrożnie. Nie udostępniaj ich nikomu!
your_token: Twój token dostępu your_token: Twój token dostępu
auth: auth:
agreement_html: Rejestrując się, oświadczasz, że zapoznałeś(-aś) się z <a href="%{rules_path}">informacjami o serwerze</a> i <a href="%{terms_path}">zasadami korzystania z usługi</a>.
apply_for_account: Poproś o zaproszenie apply_for_account: Poproś o zaproszenie
change_password: Hasło change_password: Hasło
checkbox_agreement_html: Zgadzam się z <a href="%{rules_path}" target="_blank">regułami serwera</a> i <a href="%{terms_path}" target="_blank">zasadami korzystania z usługi</a> checkbox_agreement_html: Zgadzam się z <a href="%{rules_path}" target="_blank">regułami serwera</a> i <a href="%{terms_path}" target="_blank">zasadami korzystania z usługi</a>

View File

@ -507,7 +507,6 @@ pt-BR:
warning: Tenha cuidado com estes dados. Nunca compartilhe com alguém! warning: Tenha cuidado com estes dados. Nunca compartilhe com alguém!
your_token: Seu token de acesso your_token: Seu token de acesso
auth: auth:
agreement_html: Ao se cadastrar você concorda em seguir <a href="%{rules_path}">as regras da instância</a> e <a href="%{terms_path}">os nossos termos de serviço</a>.
apply_for_account: Pedir um convite apply_for_account: Pedir um convite
change_password: Senha change_password: Senha
checkbox_agreement_html: Eu concordo com <a href="%{rules_path}" target="_blank">as regras do servidor</a> e com <a href="%{terms_path}" target="_blank">os termos de serviço</a> checkbox_agreement_html: Eu concordo com <a href="%{rules_path}" target="_blank">as regras do servidor</a> e com <a href="%{terms_path}" target="_blank">os termos de serviço</a>

View File

@ -482,7 +482,6 @@ pt:
warning: Cuidado com estes dados. Não partilhar com ninguém! warning: Cuidado com estes dados. Não partilhar com ninguém!
your_token: O teu token de acesso your_token: O teu token de acesso
auth: auth:
agreement_html: Registando-te concordas em seguir <a href="%{rules_path}">as regras da instância</a> e <a href="%{terms_path}">os nossos termos de serviço</a>.
change_password: Palavra-passe change_password: Palavra-passe
confirm_email: Confirmar e-mail confirm_email: Confirmar e-mail
delete_account: Eliminar conta delete_account: Eliminar conta

View File

@ -8,7 +8,6 @@ ro:
one: Toot one: Toot
other: Toots other: Toots
auth: auth:
agreement_html: Prin apăsarea butonului Înscriere de mai jos ești deacord cu <a href="%{rules_path}">regulile acestei instanțe</a> și <a href="%{terms_path}">termenii de utilizare al acestui serviciu</a>.
change_password: Parolă change_password: Parolă
confirm_email: Confirmă email confirm_email: Confirmă email
delete_account: Șterge contul delete_account: Șterge contul

View File

@ -424,7 +424,6 @@ ru:
warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем! warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем!
your_token: Ваш токен доступа your_token: Ваш токен доступа
auth: auth:
agreement_html: Создавая аккаунт, вы соглашаетесь с <a href="%{rules_path}">правилами узла</a> и <a href="%{terms_path}">нашими условиями обслуживания</a>.
change_password: Пароль change_password: Пароль
confirm_email: Подтвердите email confirm_email: Подтвердите email
delete_account: Удалить аккаунт delete_account: Удалить аккаунт

View File

@ -41,6 +41,8 @@ en:
name: 'You might want to use one of these:' name: 'You might want to use one of these:'
imports: imports:
data: CSV file exported from another Mastodon server data: CSV file exported from another Mastodon server
invite_request:
text: This will help us review your application
sessions: sessions:
otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:' otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:'
user: user:
@ -118,6 +120,8 @@ en:
must_be_follower: Block notifications from non-followers must_be_follower: Block notifications from non-followers
must_be_following: Block notifications from people you don't follow must_be_following: Block notifications from people you don't follow
must_be_following_dm: Block direct messages from people you don't follow must_be_following_dm: Block direct messages from people you don't follow
invite_request:
text: Why do you want to join?
notification_emails: notification_emails:
digest: Send digest e-mails digest: Send digest e-mails
favourite: Send e-mail when someone favourites your status favourite: Send e-mail when someone favourites your status

View File

@ -511,7 +511,6 @@ sk:
warning: Na tieto údaje dávajte ohromný pozor. Nikdy ich s nikým nezďieľajte! warning: Na tieto údaje dávajte ohromný pozor. Nikdy ich s nikým nezďieľajte!
your_token: Váš prístupový token your_token: Váš prístupový token
auth: auth:
agreement_html: V rámci registrácie súhlasíš, že sa budeš riadiť <a href="%{rules_path}"> pravidlami tohto servera</a>, a taktiež <a href="%{terms_path}"> našími prevádzkovými podmienkami</a>.
change_password: Heslo change_password: Heslo
confirm_email: Potvrdiť email confirm_email: Potvrdiť email
delete_account: Vymaž účet delete_account: Vymaž účet

View File

@ -479,7 +479,6 @@ sq:
warning: Hapni sytë me ato të dhëna. Mos ia jepni kurrë njeriu! warning: Hapni sytë me ato të dhëna. Mos ia jepni kurrë njeriu!
your_token: Token-i juaj për hyrje your_token: Token-i juaj për hyrje
auth: auth:
agreement_html: Duke klikuar mbi "Regjistrohuni" më poshtë, pajtoheni të ndiqni <a href="%{rules_path}">rregullat e shërbyesit</a> dhe <a href="%{terms_path}">kushtet tona të shërbimit</a>.
change_password: Fjalëkalim change_password: Fjalëkalim
confirm_email: Ripohoni email-in confirm_email: Ripohoni email-in
delete_account: Fshije llogarinë delete_account: Fshije llogarinë

View File

@ -302,7 +302,6 @@ sr-Latn:
warning: Oprezno sa ovim podacima. Nikad je ne delite ni sa kim! warning: Oprezno sa ovim podacima. Nikad je ne delite ni sa kim!
your_token: Vaš pristupni token your_token: Vaš pristupni token
auth: auth:
agreement_html: Pristupanjem instanci se slažete sa <a href="%{rules_path}">pravilima instance</a> i <a href="%{terms_path}">uslovima korišćenja</a>.
delete_account: Obriši nalog delete_account: Obriši nalog
delete_account_html: Ako želite da obrišete Vaš nalog, možete <a href="%{path}">nastaviti ovde</a>. Bićete upitani da potvrdite. delete_account_html: Ako želite da obrišete Vaš nalog, možete <a href="%{path}">nastaviti ovde</a>. Bićete upitani da potvrdite.
didnt_get_confirmation: Niste dobili poruku sa uputstvima za potvrdu naloga? didnt_get_confirmation: Niste dobili poruku sa uputstvima za potvrdu naloga?

View File

@ -492,7 +492,6 @@ sr:
warning: Опрезно са овим подацима. Никад је не делите ни са ким! warning: Опрезно са овим подацима. Никад је не делите ни са ким!
your_token: Ваш приступни токен your_token: Ваш приступни токен
auth: auth:
agreement_html: Приступањем инстанци се слажете са <a href="%{rules_path}">правилима инстанце</a> и <a href="%{terms_path}">условима коришћења</a>.
change_password: Лозинка change_password: Лозинка
confirm_email: Потврдите адресу е-поште confirm_email: Потврдите адресу е-поште
delete_account: Обриши налог delete_account: Обриши налог

View File

@ -354,7 +354,6 @@ sv:
warning: Var mycket försiktig med denna data. Dela aldrig den med någon! warning: Var mycket försiktig med denna data. Dela aldrig den med någon!
your_token: Din access token your_token: Din access token
auth: auth:
agreement_html: Genom att registrera dig godkänner du att följa <a href="%{rules_path}">instansens regler</a> och <a href="%{terms_path}">våra användarvillkor</a>.
change_password: Lösenord change_password: Lösenord
confirm_email: Bekräfta e-postadress confirm_email: Bekräfta e-postadress
delete_account: Ta bort konto delete_account: Ta bort konto

View File

@ -386,7 +386,6 @@ uk:
warning: Будьте дуже обережні з цими даними. Ніколи не діліться ними ні з ким! warning: Будьте дуже обережні з цими даними. Ніколи не діліться ними ні з ким!
your_token: Ваш токен доступу your_token: Ваш токен доступу
auth: auth:
agreement_html: Реєструючись, ви погоджуєтеся виконувати <a href="%{rules_path}">правила інстанції</a> та <a href="%{terms_path}">наші умови використання</a>.
change_password: Пароль change_password: Пароль
confirm_email: Підтвердьте e-mail адресу confirm_email: Підтвердьте e-mail адресу
delete_account: Видалити аккаунт delete_account: Видалити аккаунт

View File

@ -410,7 +410,6 @@ zh-CN:
warning: 一定小心,千万不要把它分享给任何人! warning: 一定小心,千万不要把它分享给任何人!
your_token: 你的访问令牌 your_token: 你的访问令牌
auth: auth:
agreement_html: 点击注册即表示你同意遵守<a href="%{rules_path}">本站的相关规定</a>和<a href="%{terms_path}">我们的使用条款</a>。
change_password: 密码 change_password: 密码
confirm_email: 确认电子邮件地址 confirm_email: 确认电子邮件地址
delete_account: 删除帐户 delete_account: 删除帐户

View File

@ -352,7 +352,6 @@ zh-HK:
warning: 警告,不要把它分享給任何人! warning: 警告,不要把它分享給任何人!
your_token: token your_token: token
auth: auth:
agreement_html: 登記即表示你同意遵守<a href="%{rules_path}">本服務站的規則</a>和<a href="%{terms_path}">使用條款</a>。
change_password: 密碼 change_password: 密碼
confirm_email: 確認電郵 confirm_email: 確認電郵
delete_account: 刪除帳戶 delete_account: 刪除帳戶

View File

@ -436,7 +436,6 @@ zh-TW:
warning: 警告,不要把它分享給任何人! warning: 警告,不要把它分享給任何人!
your_token: 你的 token your_token: 你的 token
auth: auth:
agreement_html: 按下下方的「註冊」即代表同意遵守 <a href="%{rules_path}">此伺服器的規則</a> 以及 <a href="%{terms_path}">使用條款</a>。
change_password: 密碼 change_password: 密碼
confirm_email: 確認電子信箱位址 confirm_email: 確認電子信箱位址
delete_account: 刪除帳戶 delete_account: 刪除帳戶

View File

@ -0,0 +1,10 @@
class CreateUserInviteRequests < ActiveRecord::Migration[5.2]
def change
create_table :user_invite_requests do |t|
t.belongs_to :user, foreign_key: { on_delete: :cascade }
t.text :text
t.timestamps
end
end
end

View File

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2019_03_17_135723) do ActiveRecord::Schema.define(version: 2019_04_09_054914) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
@ -679,6 +679,14 @@ ActiveRecord::Schema.define(version: 2019_03_17_135723) do
t.index ["uri"], name: "index_tombstones_on_uri" t.index ["uri"], name: "index_tombstones_on_uri"
end end
create_table "user_invite_requests", force: :cascade do |t|
t.bigint "user_id"
t.text "text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_user_invite_requests_on_user_id"
end
create_table "users", force: :cascade do |t| create_table "users", force: :cascade do |t|
t.string "email", default: "", null: false t.string "email", default: "", null: false
t.datetime "created_at", null: false t.datetime "created_at", null: false
@ -816,6 +824,7 @@ ActiveRecord::Schema.define(version: 2019_03_17_135723) do
add_foreign_key "stream_entries", "accounts", name: "fk_5659b17554", on_delete: :cascade add_foreign_key "stream_entries", "accounts", name: "fk_5659b17554", on_delete: :cascade
add_foreign_key "subscriptions", "accounts", name: "fk_9847d1cbb5", on_delete: :cascade add_foreign_key "subscriptions", "accounts", name: "fk_9847d1cbb5", on_delete: :cascade
add_foreign_key "tombstones", "accounts", on_delete: :cascade add_foreign_key "tombstones", "accounts", on_delete: :cascade
add_foreign_key "user_invite_requests", "users", on_delete: :cascade
add_foreign_key "users", "accounts", name: "fk_50500f500d", on_delete: :cascade add_foreign_key "users", "accounts", name: "fk_50500f500d", on_delete: :cascade
add_foreign_key "users", "invites", on_delete: :nullify add_foreign_key "users", "invites", on_delete: :nullify
add_foreign_key "users", "oauth_applications", column: "created_by_application_id", on_delete: :nullify add_foreign_key "users", "oauth_applications", column: "created_by_application_id", on_delete: :nullify

View File

@ -0,0 +1,4 @@
Fabricator(:user_invite_request) do
user
text { Faker::Lorem.sentence }
end

View File

@ -0,0 +1,4 @@
require 'rails_helper'
RSpec.describe UserInviteRequest, type: :model do
end