Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8ababb1d7a | |||
| 966b68e876 | |||
| eea06a5633 | |||
| 808a6ba663 | |||
| b515afbe5f | |||
| d94197e690 | |||
| 61bc9ca7bb | |||
| d381a8e56a | |||
| 721ef83bca |
@ -22,6 +22,7 @@ MAIL_LINK_HOST=localhost:3000
|
||||
MAIL_LINK_PROTO=http
|
||||
|
||||
# Email provider
|
||||
MAILER_SENDER=noreply@timeoverflow.org
|
||||
SMTP_PASSWORD=XXXXXXXX
|
||||
SMTP_DOMAIN=www.timeoverflow.org
|
||||
SMTP_USER_NAME=my_username@timeoverflow.org
|
||||
|
||||
2
Gemfile
2
Gemfile
@ -22,7 +22,7 @@ gem 'prawn-table', '~> 0.2.2'
|
||||
gem 'pg_search', '~> 2.3.5'
|
||||
gem 'sidekiq', '~> 6.5'
|
||||
gem 'sidekiq-cron', '~> 1.12.0'
|
||||
gem 'aws-sdk-s3', '~> 1.94', require: false
|
||||
gem 'aws-sdk-s3', '~> 1.208', require: false
|
||||
gem 'image_processing', '~> 1.12'
|
||||
gem 'active_storage_validations', '~> 1.1.3'
|
||||
|
||||
|
||||
25
Gemfile.lock
25
Gemfile.lock
@ -95,21 +95,24 @@ GEM
|
||||
ast (2.4.3)
|
||||
autoprefixer-rails (10.4.19.0)
|
||||
execjs (~> 2)
|
||||
aws-eventstream (1.3.0)
|
||||
aws-partitions (1.1029.0)
|
||||
aws-sdk-core (3.214.0)
|
||||
aws-eventstream (1.4.0)
|
||||
aws-partitions (1.1196.0)
|
||||
aws-sdk-core (3.240.0)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.992.0)
|
||||
aws-sigv4 (~> 1.9)
|
||||
base64
|
||||
bigdecimal
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-kms (1.96.0)
|
||||
aws-sdk-core (~> 3, >= 3.210.0)
|
||||
logger
|
||||
aws-sdk-kms (1.118.0)
|
||||
aws-sdk-core (~> 3, >= 3.239.1)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sdk-s3 (1.176.1)
|
||||
aws-sdk-core (~> 3, >= 3.210.0)
|
||||
aws-sdk-s3 (1.208.0)
|
||||
aws-sdk-core (~> 3, >= 3.234.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sigv4 (1.10.1)
|
||||
aws-sigv4 (1.12.1)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
base64 (0.3.0)
|
||||
bcrypt (3.1.20)
|
||||
@ -283,7 +286,7 @@ GEM
|
||||
activesupport (>= 3.0.0)
|
||||
raabro (1.4.0)
|
||||
racc (1.8.1)
|
||||
rack (2.2.14)
|
||||
rack (2.2.20)
|
||||
rack-session (1.0.2)
|
||||
rack (< 3)
|
||||
rack-test (2.2.0)
|
||||
@ -343,7 +346,7 @@ GEM
|
||||
responders (3.1.1)
|
||||
actionpack (>= 5.2)
|
||||
railties (>= 5.2)
|
||||
rexml (3.4.1)
|
||||
rexml (3.4.2)
|
||||
rspec-core (3.13.2)
|
||||
rspec-support (~> 3.13.0)
|
||||
rspec-expectations (3.13.3)
|
||||
@ -478,7 +481,7 @@ PLATFORMS
|
||||
DEPENDENCIES
|
||||
active_storage_validations (~> 1.1.3)
|
||||
activeadmin (~> 3.2)
|
||||
aws-sdk-s3 (~> 1.94)
|
||||
aws-sdk-s3 (~> 1.208)
|
||||
bootsnap (~> 1.12)
|
||||
bootstrap (~> 5.3.3)
|
||||
byebug (~> 11.0)
|
||||
|
||||
@ -72,6 +72,8 @@ In order to configure the application you can use the following ENV variables:
|
||||
| `SECRET_KEY_BASE` | Secret key for the application, generate a new one with the command `rails secret` | |
|
||||
| `DATABASE_URL` | Database URL, the format is `postgresql://user:password@host:port/database` | |
|
||||
| `RAILS_SERVE_STATIC_FILES` | Tell the application to serve static files (you might want to turn this off if you are using an external web server to serve files from the `public` folder) | `true` |
|
||||
| `RAILS_ASSET_HOST` | CDN or external host to serve assets from (ie: `cdn.mydomain.tld`) | |
|
||||
| `ASSETS_PRECOMPILE` | Set to `true` to enable asset precompilation with compression during startup | |
|
||||
| `RAILS_LOG_TO_STDOUT` | Tell the application to log to STDOUT (useful for Docker) | `true` |
|
||||
| `RAILS_LOG_LEVEL` | Log level for the application (use `debug` for maximum information) | `info` |
|
||||
| `RAILS_MAX_THREADS` | Maximum number of threads to use in the application (use `1` if multithreading is not desired) | `5` |
|
||||
@ -83,7 +85,8 @@ In order to configure the application you can use the following ENV variables:
|
||||
| `STORAGE_PROVIDER` | Storage provider for the application (currently the application supports `local` and `amazon`) | `amazon` |
|
||||
| `FORCE_SSL` | Force SSL connections | `false` |
|
||||
| `MAIL_LINK_HOST` | Host to use in the links sent by email (use your domain without protocol `mydomain.tld`) | |
|
||||
| `MAIL_LINK_PROTOCOL` | Protocol to use in the previous host defined for links sent by email | `https` |
|
||||
| `MAIL_LINK_PROTO` | Protocol to use in the previous host defined for links sent by email | `https` |
|
||||
| `MAILER_SENDER` | Email address used as the sender for Devise emails (ie: `noreply@mydomain.tld`) | `please-change-me-at-config-initializers-devise@example.com` |
|
||||
| `SMTP_ADDRESS` | SMTP server address (ie: `smtp.mailgun.org`) | |
|
||||
| `SMTP_PORT` | SMTP server port (ie: `587`) | |
|
||||
| `SMTP_DOMAIN` | SMTP domain (usually the application's domain) | |
|
||||
|
||||
@ -5,6 +5,14 @@ ActiveAdmin.register User do
|
||||
link_to I18n.t("active_admin.users.upload_from_csv"), action: "upload_csv"
|
||||
end
|
||||
|
||||
action_item :confirm, only: :show do
|
||||
unless user.confirmed?
|
||||
link_to I18n.t("active_admin.users.confirm_user"),
|
||||
confirm_admin_user_path(user),
|
||||
method: :put
|
||||
end
|
||||
end
|
||||
|
||||
collection_action :upload_csv do
|
||||
render "admin/csv/upload_csv"
|
||||
end
|
||||
@ -16,6 +24,15 @@ ActiveAdmin.register User do
|
||||
redirect_to action: :index
|
||||
end
|
||||
|
||||
member_action :confirm, method: :put do
|
||||
resource.skip_confirmation!
|
||||
if resource.save
|
||||
redirect_to admin_user_path(resource), notice: I18n.t("active_admin.users.confirmed_notice")
|
||||
else
|
||||
redirect_to admin_user_path(resource), alert: resource.errors.full_messages.to_sentence
|
||||
end
|
||||
end
|
||||
|
||||
scope :all
|
||||
scope :without_memberships
|
||||
|
||||
@ -32,6 +49,7 @@ ActiveAdmin.register User do
|
||||
column :posts do |u|
|
||||
u.posts.count
|
||||
end
|
||||
column :confirmed_at
|
||||
column :created_at
|
||||
actions
|
||||
end
|
||||
@ -53,6 +71,9 @@ ActiveAdmin.register User do
|
||||
f.input :postcode
|
||||
f.input :gender, as: :select, collection: User::GENDERS
|
||||
f.input :locale, as: :select, collection: I18n.available_locales
|
||||
f.input :password, required: false, input_html: { autocomplete: "new-password" }
|
||||
f.input :password_confirmation, required: false, input_html: { autocomplete: "new-password" }
|
||||
f.input :confirm_immediately, as: :boolean if f.object.new_record?
|
||||
end
|
||||
f.inputs "Memberships" do
|
||||
f.has_many :members, allow_destroy: true do |m|
|
||||
@ -91,6 +112,22 @@ ActiveAdmin.register User do
|
||||
end
|
||||
end
|
||||
|
||||
permit_params :username, :email, :phone, :postcode, :gender, :locale,
|
||||
permit_params :username, :email, :phone, :postcode, :gender, :locale, :confirm_immediately,
|
||||
:password, :password_confirmation,
|
||||
members_attributes: [:id, :organization_id, :active, :manager, :_destroy]
|
||||
|
||||
controller do
|
||||
def create_resource(obj)
|
||||
obj.skip_confirmation! if obj.confirm_immediately
|
||||
super
|
||||
end
|
||||
|
||||
def update_resource(obj, attributes)
|
||||
if attributes.first[:password].blank?
|
||||
attributes.first.delete(:password)
|
||||
attributes.first.delete(:password_confirmation)
|
||||
end
|
||||
super
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -22,6 +22,7 @@ class User < ApplicationRecord
|
||||
|
||||
attr_accessor :empty_email
|
||||
attr_accessor :from_signup
|
||||
attribute :confirm_immediately, :boolean
|
||||
|
||||
has_one_attached :avatar
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ module Timeoverflow
|
||||
|
||||
# I18n configuration
|
||||
config.i18n.default_locale = :es
|
||||
config.i18n.available_locales = [:es, :ca, :eu, :gl, :en, :'pt-BR', :fr, :ja]
|
||||
config.i18n.available_locales = [:es, :ca, :eu, :gl, :en, :'pt-BR', :fr, :ja, :'nl-NL']
|
||||
config.i18n.fallbacks = true
|
||||
|
||||
# This tells Rails to serve error pages from the app itself, rather than using static error pages in public/
|
||||
|
||||
@ -2,6 +2,8 @@ ca:
|
||||
active_admin:
|
||||
users:
|
||||
organization: Banc de temps
|
||||
confirm_user: Confirmar usuari
|
||||
confirmed_notice: Usuari confirmat correctament
|
||||
upload_csv: Fitxer
|
||||
upload_from_csv: Importar CSV
|
||||
activerecord:
|
||||
@ -70,6 +72,7 @@ ca:
|
||||
registration_date: Data d'alta
|
||||
registration_number: Codi d'usuari
|
||||
superadmin: SuperAdministrador del Sistema
|
||||
confirm_immediately: Confirmar immediatament
|
||||
unconfirmed_email: Correu sense confirmar
|
||||
updated_at: Actualitzat
|
||||
username: Nom
|
||||
@ -357,6 +360,7 @@ ca:
|
||||
gl: Gallec
|
||||
pt-BR: Portuguès
|
||||
ja:
|
||||
nl-NL: Holandès
|
||||
mailers_globals:
|
||||
footer:
|
||||
text: "%{organization_name} en"
|
||||
|
||||
@ -2,6 +2,8 @@ en:
|
||||
active_admin:
|
||||
users:
|
||||
organization: Time bank
|
||||
confirm_user: Confirm user
|
||||
confirmed_notice: User confirmed successfully
|
||||
upload_csv: File
|
||||
upload_from_csv: Upload CSV
|
||||
activerecord:
|
||||
@ -70,6 +72,7 @@ en:
|
||||
registration_date: Registration date
|
||||
registration_number: User code
|
||||
superadmin: System Administrator
|
||||
confirm_immediately: Confirm immediately
|
||||
unconfirmed_email: Unconfirmed Email
|
||||
updated_at: Updated
|
||||
username: Name
|
||||
@ -356,6 +359,7 @@ en:
|
||||
gl: Galician
|
||||
pt-BR: Portuguese
|
||||
ja: Japanese
|
||||
nl-NL: Dutch
|
||||
mailers_globals:
|
||||
footer:
|
||||
text: "%{organization_name} from"
|
||||
|
||||
@ -2,6 +2,8 @@ es:
|
||||
active_admin:
|
||||
users:
|
||||
organization: Banco de tiempo
|
||||
confirm_user: Confirmar usuario
|
||||
confirmed_notice: Usuario confirmado correctamente
|
||||
upload_csv: Fichero
|
||||
upload_from_csv: Importar CSV
|
||||
activerecord:
|
||||
@ -70,6 +72,7 @@ es:
|
||||
registration_date: Fecha de alta
|
||||
registration_number: Código de usuario
|
||||
superadmin: Administrador de sistema
|
||||
confirm_immediately: Confirmar inmediatamente
|
||||
unconfirmed_email: Correo sin confirmar
|
||||
updated_at: Actualizado
|
||||
username: Nombre
|
||||
@ -359,6 +362,7 @@ es:
|
||||
gl: Gallego
|
||||
pt-BR: Portugués
|
||||
ja: Japonés
|
||||
nl-NL: Holandès
|
||||
mailers_globals:
|
||||
footer:
|
||||
text: "%{organization_name} en"
|
||||
|
||||
@ -2,6 +2,8 @@ eu:
|
||||
active_admin:
|
||||
users:
|
||||
organization: Denbora Bankua
|
||||
confirm_user: Erabiltzailea baieztatu
|
||||
confirmed_notice: Erabiltzailea berretsita
|
||||
upload_csv: Fitxategia
|
||||
upload_from_csv: Igo CSVa
|
||||
activerecord:
|
||||
@ -70,6 +72,7 @@ eu:
|
||||
registration_date: Erregistratze-da
|
||||
registration_number: Erabiltzaile kodea
|
||||
superadmin: Sistema administratzailea
|
||||
confirm_immediately: Berehala baieztatu
|
||||
unconfirmed_email: Baieztatu gabeko eposta
|
||||
updated_at: Eguneratua
|
||||
username: Izena
|
||||
@ -357,6 +360,7 @@ eu:
|
||||
gl: Galiziera
|
||||
pt-BR: Portugesa
|
||||
ja:
|
||||
nl-NL: Holandera
|
||||
mailers_globals:
|
||||
footer:
|
||||
text: "%{organization_name}tik"
|
||||
|
||||
@ -2,6 +2,8 @@ fr:
|
||||
active_admin:
|
||||
users:
|
||||
organization: Banque de temps
|
||||
confirm_user: "Confirmer l'utilisateur"
|
||||
confirmed_notice: "Utilisateur confirmé avec succès"
|
||||
upload_csv: Fichier
|
||||
upload_from_csv: Uploader un CSV
|
||||
activerecord:
|
||||
@ -70,6 +72,7 @@ fr:
|
||||
registration_date: Date d'inscription
|
||||
registration_number: Numéro d'inscription
|
||||
superadmin: Administrateur système
|
||||
confirm_immediately: Confirmer immédiatement
|
||||
unconfirmed_email: Adresse email non-confirmée
|
||||
updated_at: Mis·e à jour le
|
||||
username: Nom
|
||||
@ -358,6 +361,7 @@ fr:
|
||||
gl: Galicien
|
||||
pt-BR: Portugais
|
||||
ja:
|
||||
nl-NL: Néerlandais
|
||||
mailers_globals:
|
||||
footer:
|
||||
text: "%{organization_name} de"
|
||||
|
||||
@ -2,6 +2,8 @@ gl:
|
||||
active_admin:
|
||||
users:
|
||||
organization: Banco de tempo
|
||||
confirm_user: Confirmar usuario
|
||||
confirmed_notice: Usuario confirmado correctamente
|
||||
upload_csv: Ficheiro
|
||||
upload_from_csv: Importar CSV
|
||||
activerecord:
|
||||
@ -70,6 +72,7 @@ gl:
|
||||
registration_date: Data de rexistro
|
||||
registration_number: Código de persoa usuaria
|
||||
superadmin: Persoa dministradora do sistema
|
||||
confirm_immediately: Confirmar inmediatamente
|
||||
unconfirmed_email: Correo electrónico non confirmado
|
||||
updated_at: Actualizado
|
||||
username: Nome
|
||||
@ -357,6 +360,7 @@ gl:
|
||||
gl: Galego
|
||||
pt-BR: Portugués (Brasil)
|
||||
ja:
|
||||
nl-NL: Holandés
|
||||
mailers_globals:
|
||||
footer:
|
||||
text: "%{organization_name} de"
|
||||
|
||||
@ -2,6 +2,8 @@ ja:
|
||||
active_admin:
|
||||
users:
|
||||
organization: タイムバンク
|
||||
confirm_user: ユーザーを確認
|
||||
confirmed_notice: ユーザーが確認されました
|
||||
upload_csv: ファイル
|
||||
upload_from_csv: CSVをインポート
|
||||
activerecord:
|
||||
@ -70,6 +72,7 @@ ja:
|
||||
registration_date: 登録日
|
||||
registration_number: ユーザー番号
|
||||
superadmin: システム管理者
|
||||
confirm_immediately: すぐに確認する
|
||||
unconfirmed_email: 未確認メールアドレス
|
||||
updated_at: 更新
|
||||
username: 名前
|
||||
@ -324,6 +327,7 @@ ja:
|
||||
gl: ガリシア語
|
||||
pt-BR: ブラジルポルトガル語
|
||||
ja: 日本語
|
||||
nl-NL: オランダ語
|
||||
mailers_globals:
|
||||
footer:
|
||||
text: "%{organization_name}から"
|
||||
|
||||
635
config/locales/nl-NL.yml
Normal file
635
config/locales/nl-NL.yml
Normal file
@ -0,0 +1,635 @@
|
||||
nl-NL:
|
||||
active_admin:
|
||||
users:
|
||||
organization: Tijdbank
|
||||
upload_csv: Bestand
|
||||
upload_from_csv: CSV uploaden
|
||||
activerecord:
|
||||
attributes:
|
||||
account:
|
||||
balance: Balans
|
||||
organization: Organisatie
|
||||
category:
|
||||
created_at: Aangemaakt
|
||||
name: Naam
|
||||
name_translations: Naam (vertalingen)
|
||||
parent: Hoofdcategorie
|
||||
updated_at: Bijgewerkt
|
||||
common:
|
||||
created_at: Aangemaakt
|
||||
updated_at: Bijgewerkt
|
||||
inquiry:
|
||||
is_group: Groepsverzoek
|
||||
offer:
|
||||
is_group: Groepsaanbieding
|
||||
organization:
|
||||
address: Adres
|
||||
city: Plaats
|
||||
created_at: Aangemaakt
|
||||
description: Omschrijving
|
||||
email: E-mail
|
||||
name: Naam
|
||||
neighborhood: Buurt
|
||||
phone: Telefoonnummer
|
||||
public_opening_times: Openingstijden
|
||||
reg_number_seq: Gebruikersvolgnummer
|
||||
updated_at: Bijgewerkt
|
||||
post:
|
||||
category: Categorie
|
||||
created_at: Aangemaakt
|
||||
description: Omschrijving
|
||||
end_on: Eindigt op
|
||||
start_on: Begint op
|
||||
tag_list: Labels
|
||||
title: Titel
|
||||
updated_at: Bijgewerkt
|
||||
transfer:
|
||||
amount: Aantal
|
||||
created_at: Aangemaakt
|
||||
hours: Uren
|
||||
minutes: Minuten
|
||||
post: Bericht
|
||||
reason: Reacties
|
||||
source: Bron
|
||||
updated_at: Bijgewerkt
|
||||
user:
|
||||
admin: Organisatiebeheerder
|
||||
alt_phone: Alternatief telefoonnummer
|
||||
created_at: Aangemaakt
|
||||
date_of_birth: Geboortedatum
|
||||
deactivated: Gedeactiveerd
|
||||
description: Omschrijving
|
||||
email: E-mail
|
||||
gender: Geslacht
|
||||
last_sign_in_at: Laatste login
|
||||
notifications: E-mailmeldingen ontvangen
|
||||
organization: Organisatie
|
||||
phone: Telefoonnummer
|
||||
postcode: Postcode
|
||||
push_notifications: Mobiele meldingen ontvangen
|
||||
registration_date: Registratiedatum
|
||||
registration_number: Gebruikerscode
|
||||
superadmin: Systeembeheerder
|
||||
unconfirmed_email: Onbevestigd e-mailadres
|
||||
updated_at: Bijgewerkt
|
||||
username: Naam
|
||||
errors:
|
||||
models:
|
||||
organization:
|
||||
attributes:
|
||||
web:
|
||||
url_format_invalid: Ongeldige URL-indeling
|
||||
transfer:
|
||||
attributes:
|
||||
base:
|
||||
same_account: Een overdracht kan niet overgemaakt worden naar
|
||||
hetzelfde account
|
||||
user:
|
||||
attributes:
|
||||
email:
|
||||
invalid: ongeldig
|
||||
models:
|
||||
category:
|
||||
one: Categorie
|
||||
other: Categorieën
|
||||
comment:
|
||||
one: Opmerking
|
||||
other: Opmerkingen
|
||||
inquiry:
|
||||
one: Verzoek
|
||||
other: Verzoeken
|
||||
offer:
|
||||
one: Aanbieding
|
||||
other: Aanbiedingen
|
||||
organization:
|
||||
one: Tijdbank
|
||||
other: Tijdbanken
|
||||
post:
|
||||
one: Bericht
|
||||
other: Berichten
|
||||
transfer:
|
||||
one: Overboeking
|
||||
other: Overboekingen
|
||||
user:
|
||||
one: Gebruiker
|
||||
other: Gebruikers
|
||||
application:
|
||||
landing:
|
||||
button: Invoeren
|
||||
slogan: Laten we onze tijd waarderen
|
||||
sub_slogan: Er is een tijdbank bij u in de buurt
|
||||
login_form:
|
||||
button: Invoeren
|
||||
email: E-mail
|
||||
password: Wachtwoord
|
||||
remember_check: Onthoud mij
|
||||
menu:
|
||||
sign_in: Inloggen
|
||||
sing_out: Uitloggen
|
||||
menus:
|
||||
offers_by_tag_link:
|
||||
tags: Labels
|
||||
navbar:
|
||||
admin: Beheren
|
||||
administration: Administratie
|
||||
adminshort: Beheer
|
||||
all_transfers: Alle overboekingen
|
||||
categories: Diensten
|
||||
demographics: Demografische gegevens
|
||||
global_activity: Wereldwijde activiteit
|
||||
inactive_users: Inactieve gebruikers
|
||||
inquiry_public_link: Openbare link naar verzoeken
|
||||
last_login: Laatste login
|
||||
offer_public_link: Openbare link naar aanbiedingen
|
||||
organizations: Organisaties
|
||||
reports: Rapporten
|
||||
sign_out: Uitloggen
|
||||
statistics: Statistieken
|
||||
statistics_all_transfers: Alle overboekingen
|
||||
stats: Statistieken
|
||||
tags: Labels
|
||||
type_of_swaps: Type transacties
|
||||
users: Gebruikers
|
||||
without_offers: Zonder aanbiedingen
|
||||
terms_conditions: Gebruiksvoorwaarden
|
||||
tips:
|
||||
entertag: Voer labels gescheiden door komma's in
|
||||
user_not_found: Gebruiker niet gevonden.
|
||||
devise:
|
||||
confirmations:
|
||||
confirmed: Uw account is succesvol bevestigd.
|
||||
confirmed_and_signed_in: Uw account is succesvol bevestigd. U bent nu ingelogd.
|
||||
new:
|
||||
resend_instructions: Instructies voor het opnieuw verzenden van de bevestiging
|
||||
resend_instructions_button: Opnieuw verzenden
|
||||
resend_instructions_description: Als u uw e-mailadres hebt gewijzigd,
|
||||
moet u het volgende doen
|
||||
send_instructions: U ontvangt binnen enkele minuten een e-mail met
|
||||
instructies voor het bevestigen van uw account.
|
||||
send_paranoid_instructions: Als uw e-mailadres in onze database staat,
|
||||
ontvangt u binnen enkele minuten een e-mail met instructies voor het
|
||||
bevestigen van uw account.
|
||||
failure:
|
||||
already_authenticated: U bent al ingelogd.
|
||||
inactive: Uw account is nog niet geactiveerd.
|
||||
invalid: Ongeldig e-mailadres of wachtwoord.
|
||||
invalid_token: Ongeldig authenticatietoken.
|
||||
locked: Uw account is geblokkeerd.
|
||||
not_found_in_database: Ongeldig e-mailadres of wachtwoord.
|
||||
timeout: Uw sessie is verlopen. Log opnieuw in om verder te gaan.
|
||||
unauthenticated: U moet inloggen of registreren voordat u verder kunt gaan.
|
||||
unconfirmed: U moet uw account bevestigen voordat u verder kunt gaan.
|
||||
user:
|
||||
last_attempt: Let op, u hebt nog één poging voordat uw account wordt geblokkeerd
|
||||
mailer:
|
||||
confirmation_instructions:
|
||||
subject: Bevestigingsinstructies
|
||||
reset_password_instructions:
|
||||
subject: Instructies voor het opnieuw instellen van uw wachtwoord
|
||||
unlock_instructions:
|
||||
subject: Instructies voor ontgrendelen
|
||||
omniauth_callbacks:
|
||||
failure: Authenticatie vanaf %{kind} is niet mogelijk vanwege "%{reason}".
|
||||
success: Authenticatie vanaf %{kind} account is succesvol voltooid.
|
||||
passwords:
|
||||
edit:
|
||||
change_password: Mijn wachtwoord wijzigen
|
||||
confirm_password: Bevestig uw nieuwe wachtwoord
|
||||
new_password: Nieuw wachtwoord
|
||||
passwords_not_match: Wachtwoorden komen niet overeen
|
||||
new:
|
||||
forgot_question: Een nieuw wachtwoord aanmaken
|
||||
forgot_question_description: Voer het e-mailadres in dat aan uw account
|
||||
is gekoppeld en wij sturen u een e-mail met een link om een nieuw
|
||||
wachtwoord aan te maken.
|
||||
send_instructions: Link verzenden
|
||||
no_token: U hebt geen toegang tot deze pagina als u niet via een e-mail
|
||||
voor het opnieuw instellen van uw wachtwoord op deze pagina terecht bent
|
||||
gekomen. Als u via zo'n e-mail komt, zorg er dan voor dat u de volledige
|
||||
URL gebruikt.
|
||||
send_instructions: U ontvangt binnen enkele minuten een e-mail met
|
||||
instructies voor het opnieuw instellen van uw wachtwoord.
|
||||
send_paranoid_instructions: Als uw e-mailadres in onze database staat,
|
||||
ontvangt u binnen enkele minuten een link voor wachtwoordherstel op uw
|
||||
e-mailadres.
|
||||
updated: Uw wachtwoord is succesvol gewijzigd. U bent nu ingelogd.
|
||||
updated_not_active: Uw wachtwoord is succesvol gewijzigd.
|
||||
registrations:
|
||||
destroyed: Tot ziens! Uw account is succesvol geannuleerd. We hopen u
|
||||
snel weer te zien.
|
||||
edit:
|
||||
cancel_account: Account annuleren
|
||||
current_password: Huidig wachtwoord
|
||||
edit_user: Gebruiker bewerken
|
||||
help_current_password: Hulp bij huidig wachtwoord
|
||||
help_password: Hulp bij wachtwoord
|
||||
password: Wachtwoord
|
||||
password_confirmation: Wachtwoordbevestiging
|
||||
unhappy: Niet tevreden
|
||||
update: Bijwerken
|
||||
new:
|
||||
password: Wachtwoord
|
||||
password_confirmation: Wachtwoordbevestiging
|
||||
sign_me_up: Meld me aan
|
||||
sign_up: Aanmelden
|
||||
signed_up: Welkom! U bent succesvol aangemeld.
|
||||
signed_up_but_inactive: U hebt zich succesvol aangemeld. We konden u
|
||||
echter niet inloggen omdat uw account nog niet is geactiveerd.
|
||||
signed_up_but_locked: U hebt zich succesvol aangemeld. We konden u echter
|
||||
niet inloggen omdat uw account is geblokkeerd.
|
||||
signed_up_but_unconfirmed: Er is een bericht met een bevestigingslink
|
||||
naar uw e-mailadres verzonden. Open de link om uw account te activeren.
|
||||
update_needs_confirmation: U account is succesvol bijgewerkt, maar we
|
||||
moeten uw nieuwe e-mailadres nog verifiëren. Controleer uw e-mail en klik
|
||||
op de bevestigingslink om de verificatie van uw nieuwe e-mailadres af te
|
||||
ronden.
|
||||
updated: U hebt uw account succesvol bijgewerkt.
|
||||
sessions:
|
||||
new:
|
||||
remember_me: Onthoud mij
|
||||
sign_in: Inloggen
|
||||
user:
|
||||
signed_in: Ingelogd
|
||||
signed_out: Uitgelogd
|
||||
shared:
|
||||
links:
|
||||
didnt_receive_confirmation_instructions: Bevestigingsmail opnieuw verzenden
|
||||
didnt_receive_unlock_instructions: Ontgrendelingsinstructies ontvangen
|
||||
forgot_your_password: Ik weet mijn wachtwoord niet meer
|
||||
sign_in: Inloggen
|
||||
sign_in_with: Inloggen met %{provider}
|
||||
sign_up: Registreren
|
||||
unlocks:
|
||||
new:
|
||||
resend_instructions: Ontgrendelingsinstructies opnieuw verzenden
|
||||
resend_instructions_button: Opnieuw verzenden
|
||||
resend_instructions_description: Als u per ongeluk meer dan vijf keer
|
||||
bent ingelogd, moet u deze stap uitvoeren om uw account te
|
||||
ontgrendelen.
|
||||
send_instructions: U ontvangt binnen enkele minuten een e-mail met
|
||||
instructies voor het ontgrendelen van uw account.
|
||||
send_paranoid_instructions: Als uw account bestaat, ontvangt u binnen
|
||||
enkele minuten een e-mail met instructies voor het ontgrendelen ervan.
|
||||
unlocked: Uw account is succesvol ontgrendeld. Log in om verder te gaan.
|
||||
errors:
|
||||
internal_server_error:
|
||||
description: Het spijt ons, er lijkt een fout te zijn opgetreden bij dit
|
||||
verzoek. We hebben automatisch een melding ontvangen en zullen dit zo
|
||||
snel mogelijk oplossen.
|
||||
title: Interne serverfout
|
||||
messages:
|
||||
already_confirmed: is al bevestigd, probeer opnieuw in te loggen
|
||||
confirmation_period_expired: Moet binnen %{period} bevestigd worden, vraag een nieuwe aan
|
||||
expired: is verlopen, vraag een nieuwe aan
|
||||
not_found: niet gevonden
|
||||
not_locked: was niet vergrendeld
|
||||
not_saved:
|
||||
one: '1 fout verhinderde dat deze %{resource} kon worden opgeslagen:'
|
||||
other: "%{count} fouten verhinderden dat deze %{resource} kon worden opgeslagen:"
|
||||
not_found:
|
||||
description: De pagina die u zocht bestaat niet. Mogelijk hebt u het
|
||||
adres verkeerd ingetypt of is de pagina verplaatst.
|
||||
title: Niet gevonden
|
||||
global:
|
||||
add_new: Nieuw aanmaken
|
||||
all: Alles
|
||||
amount: Aantal
|
||||
announcements: Bericht
|
||||
back: Terug
|
||||
balance: 'Saldo:'
|
||||
cancel_membership: Permanente verwijdering
|
||||
contact_details: Contactgegevens
|
||||
create: Aanmaken
|
||||
date: Gegevens
|
||||
decline: Weigeren
|
||||
delete: Verwijderen
|
||||
demote: Degraderen naar normale gebruiker
|
||||
edit: Bijwerken
|
||||
enter_to_timebank: Toevoegen aan tijdbank
|
||||
filter: Filter
|
||||
from: Van
|
||||
give_time: Tijdsoverdracht
|
||||
here: hier
|
||||
home: Home
|
||||
information: Informatie
|
||||
locales_header: taal wijzigen
|
||||
member_count: 'Aantal gebruikers:'
|
||||
more: Meer
|
||||
movements: Transacties
|
||||
next: Volgende
|
||||
or: of
|
||||
promote: Promotie tot beheerder
|
||||
reason: Reden
|
||||
required_field: "* Verplicht veld"
|
||||
save: Opslaan
|
||||
search: Zoeken
|
||||
search_location: Zoeken op locatie
|
||||
show: Tonen
|
||||
source_destination: Van/tot
|
||||
statistics: Statistieken
|
||||
table:
|
||||
actions: Acties
|
||||
to: Naar
|
||||
inquiries:
|
||||
edit:
|
||||
submit: Verzoek wijzigen
|
||||
index:
|
||||
new_inquiry: Nieuw verzoek
|
||||
new:
|
||||
submit: Verzoek aanmaken
|
||||
layouts:
|
||||
application:
|
||||
about: Over TimeOverflow
|
||||
bdtnear: Tijdbank doorzoeken
|
||||
edit_org: Bijwerken %{organization}
|
||||
edit_profile: Mijn profiel bijwerken
|
||||
help: Help
|
||||
login: Inloggen
|
||||
manage_memberships: Lidmaatschappen beheren
|
||||
no_memberhsip_warning: Uw registratie is voltooid zodra u een verzoek
|
||||
hebt ingediend om lid te worden van een Timebank en de Timebank uw
|
||||
verzoek heeft geaccepteerd. Als u binnen 30 dagen geen verzoek indient
|
||||
om lid te worden van een Timebank, wordt uw gebruikersaccount uit het
|
||||
systeem verwijderd.
|
||||
report:
|
||||
report_title: REPORT
|
||||
locales:
|
||||
ca: Catalan
|
||||
en: English
|
||||
es: Spanish
|
||||
eu: Basque
|
||||
fr: French
|
||||
gl: Galician
|
||||
pt-BR: Portuguese
|
||||
ja: Japanese
|
||||
nl-NL: Nederlands
|
||||
mailers_globals:
|
||||
footer:
|
||||
text: "%{organization_name} van"
|
||||
text_donation: De ADBdT-vereniging biedt TimeOverflow gratis aan tijdbanken aan. Als u wilt helpen bij het onderhouden en verbeteren van het platform, kunt u %{href}.
|
||||
text_donation_link: bezoek deze website
|
||||
multi_transfers:
|
||||
multi_transfers: Meerdere overboekingen
|
||||
step:
|
||||
confirm:
|
||||
description: Bevestig de wijzigingen
|
||||
type_of_transfer: Type overboeking
|
||||
select_type:
|
||||
description: Selecteer het type overboeking
|
||||
set_params:
|
||||
description: Geef het over te maken bedrag, de reden en de boeking
|
||||
(indien van toepassing) op.
|
||||
set_source:
|
||||
description: Selecteer de rekening(en) waarnaar de tijd wordt overgeboekt
|
||||
set_target:
|
||||
description: Selecteer de rekening(en) die de tijd ontvangt
|
||||
success: Succesvol aangemaakte overboekingen
|
||||
types:
|
||||
many_to_one: Veel-op-één
|
||||
one_to_many: Eén-op-veel
|
||||
one_to_one: Eén-op-één
|
||||
offers:
|
||||
edit:
|
||||
submit: Aanbod wijzigen
|
||||
index:
|
||||
by_category: Per categorie
|
||||
by_tag: Per label
|
||||
filtek: Filter
|
||||
new_offer: Nieuw aanbod
|
||||
offered_by: Aangeboden door %{size} personen
|
||||
new:
|
||||
submit: Aanbod aanmaken
|
||||
show:
|
||||
give_time_for: Tijdsoverdracht voor dit aanbod
|
||||
offered_by: Aangeboden door
|
||||
organization_notifier:
|
||||
member_deleted:
|
||||
body: Gebruiker %{username} heeft zich afgemeld bij de organisatie.
|
||||
recent_posts:
|
||||
subject: Nieuwsbrief
|
||||
text1: 'Laatst gepubliceerde aanbiedingen:'
|
||||
text2: 'Laatst gepubliceerde aanvragen:'
|
||||
organizations:
|
||||
give_time:
|
||||
give_time: Tijd geven aan
|
||||
index:
|
||||
member_count: Aantal gebruikers
|
||||
new:
|
||||
new: Nieuwe bank
|
||||
show:
|
||||
contact_information: Contactgegevens
|
||||
join_timebank: Neem gerust contact op met de tijdbank om u aan te melden
|
||||
of vragen te stellen.
|
||||
pages:
|
||||
about:
|
||||
app-mobile: Mobiele app
|
||||
app-mobile-text: De mobiele app TimeOverflow is beschikbaar. <br /> Deze app is mogelijk gemaakt dankzij de samenwerking met de gemeente Barcelona, programma %{impulsem_link} (Barcelona Activa) 2017-2018.
|
||||
banner-button: Toegang tot TimeOverflow aanvragen
|
||||
banner-subtitle: We nemen contact met u op om de app te starten of een demonstratie te geven
|
||||
banner-title: Bent u een Tijdbank?
|
||||
empower-adbdt: ADBdT
|
||||
empower-adbdt-title: Vereniging voor de Ontwikkeling van Tijdbanken
|
||||
empower-coopdevs: Coopdevs
|
||||
empower-coopdevs-title: Coopdevs
|
||||
empower-github: Github
|
||||
empower-github-title: Github
|
||||
empower-showmap: zie kaart
|
||||
empower-showmap-title: Tijdbanken
|
||||
empower-text-1: TimeOveflow is speciaal ontworpen voor en door Time Banks
|
||||
die fysiek bestaan — %{showmap_link} – en het doel ervan is om ze
|
||||
te versterken dankzij internet.
|
||||
empower-text-2: Dankzij de gezamenlijke inspanningen van %{coopdevs_link}
|
||||
en %{abdt_link} kunnen we de software TimeOverflow vandaag gratis en open
|
||||
aanbieden aan alle tijdbanken die er gebruik van willen maken.
|
||||
empower-text-3: De broncode van TimeOverflow is beschikbaar onder een
|
||||
open source-licentie en je kunt deze downloaden via %{github_link}.
|
||||
empower-title: Het versterken van de tijdbanken
|
||||
feature-group-1: Tijdbankbeheer met beheerdersrollen
|
||||
feature-group-2: Sociaal netwerk en online bankieren toegankelijk voor leden
|
||||
feature-text-1: Aanmaken/verwijderen/bijwerken van bankleden
|
||||
feature-text-2: Plaatsen van aanbiedingen en aanvragen
|
||||
feature-text-3: Invoeren van cheques en beheren van de boekhouding
|
||||
feature-text-4: Leden van een tijdbank hebben toegang tot het systeem en
|
||||
kunnen verbinding maken met anderen
|
||||
feature-text-5: Plaatsen van aanbiedingen en aanvragen
|
||||
feature-text-6: Uren uitbetalen aan andere leden
|
||||
impulsem-link: Impulsem el que fas
|
||||
subtitle: TimeOverflow is open source, gratis en collaboratief
|
||||
title: De software is ontworpen door en voor
|
||||
title2: Tijdbanken
|
||||
petitions:
|
||||
application_sent: Aanvraag correct verzonden
|
||||
application_sent_body: Hallo! Uw sollicitatie bij %{organization_name} is correct verzonden.
|
||||
application_status: Aanvraag %{status}
|
||||
applications: Aanvragen
|
||||
apply: Aanmelden
|
||||
new: Nieuwe aanvraag
|
||||
new_body: Hallo, %{username} heeft zojuist een verzoek ingediend om lid te worden van %{organization_name} Tijdbank. U kunt %{here_link} invoeren om het verzoek te accepteren of af te wijzen. Zodra u het verzoek accepteert, verschijnt de gebruiker automatisch in uw gebruikerslijst.
|
||||
status:
|
||||
accepted: geaccepteerd
|
||||
declined: afgewezen
|
||||
pending: in behandeling
|
||||
sent: verzonden
|
||||
status_applications: "%{status} aanvragen"
|
||||
posts:
|
||||
show:
|
||||
info: Deze %{type} behoort tot %{organization}.
|
||||
reports:
|
||||
download: Downloaden
|
||||
download_all: Alles downloaden
|
||||
shared:
|
||||
movements:
|
||||
delete_reason: Weet je zeker dat je deze reactie wilt verwijderen?
|
||||
movements: Uitwisselingen
|
||||
post_form:
|
||||
group_inquiry: Is dit een groepsverzoek?
|
||||
group_offer: Is dit een groepsaanbieding?
|
||||
you_can_use: Je kunt gebruiken
|
||||
simple_form:
|
||||
error_notification:
|
||||
default_message: 'Bekijk de onderstaande problemen:'
|
||||
'nee': 'Nee'
|
||||
options:
|
||||
user:
|
||||
gender:
|
||||
female: Vrouw
|
||||
male: Man
|
||||
others: Anders
|
||||
prefer_not_to_answer: Ik geef er de voorkeur aan om niet te antwoorden
|
||||
required:
|
||||
mark: "*"
|
||||
text: verplicht
|
||||
'ja': 'Ja'
|
||||
statistics:
|
||||
all_transfers:
|
||||
date: Datum
|
||||
delete_reason: Weet je zeker dat je deze reactie wilt verwijderen?
|
||||
from: Van
|
||||
post: Bericht
|
||||
quantity: Aantal
|
||||
reason: Reden
|
||||
to: Naar
|
||||
transfers: Alle overboekingen
|
||||
demographics:
|
||||
by_ages: Per leeftijd
|
||||
by_gender: Per geslacht
|
||||
demographics: Demografische gegevens
|
||||
female: Vrouw
|
||||
male: Man
|
||||
num_people: "# aantal personen"
|
||||
unknown: Onbekend
|
||||
global_activity:
|
||||
bank_activity: Bankactiviteit
|
||||
global_activity: Wereldwijde activiteit
|
||||
num_swaps: " Transacties"
|
||||
per_month: Per maand
|
||||
show: Weergeven
|
||||
total_hours: " antal overgeboekte uren"
|
||||
users_reg: " Geregistreerde gebruikers"
|
||||
inactive_users:
|
||||
days_without_swaps: Dagen zonder transacties
|
||||
inactive_users: Inactieve gebruikers
|
||||
last_movement: Laatste transactie
|
||||
no_movements: Zonder transacties
|
||||
last_login:
|
||||
last_login: Laatste login
|
||||
never_login: Nooit ingelogd
|
||||
type_swaps:
|
||||
type_of_swaps: Type transacties
|
||||
without_category: Zonder categorie
|
||||
without_tags: Zonder tags
|
||||
without_offers:
|
||||
without_offers: Zonder aanbiedingen
|
||||
stats:
|
||||
min_balance:
|
||||
title: Minimumsaldo gebruikers
|
||||
tags:
|
||||
alpha_grouped_index:
|
||||
maintitle: Beschikbare labels
|
||||
terms:
|
||||
accept: Accepteren
|
||||
show:
|
||||
accept: Accepteren
|
||||
transfers:
|
||||
computation:
|
||||
hour:
|
||||
one: "%{count} uur"
|
||||
other: "%{count} uur"
|
||||
joiner: " en "
|
||||
minute:
|
||||
one: "%{count} minuut"
|
||||
other: "%{count} minuten"
|
||||
new:
|
||||
error_amount: Tijd moet groter zijn dan 0
|
||||
users:
|
||||
avatar:
|
||||
change_your_image: Uw afbeelding wijzigen
|
||||
crop_the_image: Afbeelding bijsnijden
|
||||
max_size_warning: Afbeelding is te groot, maximaal toegestaan is %{size}MB
|
||||
confirm_email:
|
||||
email_sent: Er is een e-mail verzonden naar %{email}. Na bevestiging kunt
|
||||
u solliciteren bij elke organisatie.
|
||||
please: Bevestig het e-mailadres
|
||||
edit:
|
||||
edit_user: Gebruiker bijwerken
|
||||
form:
|
||||
notifications: Meldingen
|
||||
give_time:
|
||||
give_time: Geef het even de tijd
|
||||
index:
|
||||
account_deactivated: Uw account is gedeactiveerd in deze tijdbank
|
||||
actions: Acties
|
||||
active_warning: U gaat de accountstatus van gebruiker %{username} wijzigen
|
||||
cancel_warning: U gaat het account van gebruiker %{username} verwijderen
|
||||
uit de tijdbank
|
||||
create: Nieuwe gebruiker aanmaken
|
||||
deactivated_warning: Als u denkt dat uw account per ongeluk is
|
||||
gedeactiveerd, neem dan contact op met de beheerder via onderstaande
|
||||
gegevens.
|
||||
manage_warning: U gaat de rechten van gebruiker %{username} wijzigen
|
||||
members: Leden
|
||||
user_created: Gebruiker %{uid} %{name} opgeslagen
|
||||
member_card:
|
||||
active_ago: Actief %{time} geleden
|
||||
no_activity: Geen activiteit
|
||||
new:
|
||||
cancel: Annuleren
|
||||
create_more_users_button: Een andere gebruiker aanmaken en toevoegen
|
||||
new_user: Nieuwe gebruiker
|
||||
user_created_add: Gebruiker %{uid} %{name} opgeslagen, maak nu de volgende aan
|
||||
show:
|
||||
account: Last transactions
|
||||
accounts: Accounts
|
||||
balance: 'Saldo:'
|
||||
categories: Aangeboden services
|
||||
created_at: 'Geregistreerd:'
|
||||
data: Gebruikersgegevens
|
||||
date: Datum
|
||||
deleted_user: De gebruiker bestaat niet meer
|
||||
from_to: Van/Tot
|
||||
inactive: "(Inactief)"
|
||||
inactive_user: De gebruiker is niet actief
|
||||
invalid_format: Ongeldig formaat, kies een ".jpg", ".jpeg" of ".png".
|
||||
phone:
|
||||
one: Telefoon
|
||||
other: Telefoons
|
||||
post: Bericht
|
||||
quantity: Aantal
|
||||
reason: Reden
|
||||
user_no: 'Gebruiker #:'
|
||||
user_rows:
|
||||
activate: Activeren
|
||||
active_warning: U gaat de accountstatus van gebruiker %{user} wijzigen
|
||||
cancel_warning: U gaat het account van gebruiker %{user} uit de Tijdbank verwijderen
|
||||
deactivate: Deactiveren
|
||||
delete_membership: Lidmaatschap verwijderen
|
||||
manage_warning: U gaat de rechten van gebruiker %{user} wijzigen
|
||||
sure_delete: Weet u zeker dat u uw lidmaatschap van %{organization_name}
|
||||
wilt verwijderen?
|
||||
views:
|
||||
pagination:
|
||||
first: Eerst
|
||||
last: Laatste
|
||||
next: Volgende
|
||||
previous: Vorige
|
||||
truncate: Afkorten
|
||||
@ -2,6 +2,8 @@ pt-BR:
|
||||
active_admin:
|
||||
users:
|
||||
organization: Banco de Tempo
|
||||
confirm_user: Confirmar usuário
|
||||
confirmed_notice: Usuário confirmado com sucesso
|
||||
upload_csv: Arquivo
|
||||
upload_from_csv: Importar CSV
|
||||
activerecord:
|
||||
@ -70,6 +72,7 @@ pt-BR:
|
||||
registration_date: Data de ingresso
|
||||
registration_number: Código do usuário
|
||||
superadmin: Administrador do sistema
|
||||
confirm_immediately: Confirmar imediatamente
|
||||
unconfirmed_email: E-mail sem confirmação
|
||||
updated_at: Atualizado
|
||||
username: Nome
|
||||
@ -357,6 +360,7 @@ pt-BR:
|
||||
gl: Galego
|
||||
pt-BR: Português
|
||||
ja:
|
||||
nl-NL: Holandês
|
||||
mailers_globals:
|
||||
footer:
|
||||
text: "%{organization_name} em"
|
||||
|
||||
@ -1,3 +1,8 @@
|
||||
if Rails.env.production? && ENV["SEED_DEMO_DATA"] != "true"
|
||||
puts "Skipping seeds in production environment. Set SEED_DEMO_DATA=true to allow demo seeds."
|
||||
return
|
||||
end
|
||||
|
||||
Organization.find_or_create_by(name: "Banco de Tiempo Local")
|
||||
Organization.find_or_create_by(name: "El otro Banco de Tiempo :)")
|
||||
|
||||
|
||||
79
spec/admin/users_controller_spec.rb
Normal file
79
spec/admin/users_controller_spec.rb
Normal file
@ -0,0 +1,79 @@
|
||||
RSpec.describe Admin::UsersController, type: :controller do
|
||||
let(:organization) { Fabricate(:organization) }
|
||||
let(:member) { Fabricate(:member, organization: organization) }
|
||||
let(:user) { member.user }
|
||||
|
||||
before do
|
||||
login(user)
|
||||
allow(controller).to receive(:authenticate_superuser!).and_return(true)
|
||||
end
|
||||
|
||||
describe "PUT #confirm" do
|
||||
context "when the user is unconfirmed" do
|
||||
let(:unconfirmed_user) { Fabricate(:user, confirmed_at: nil) }
|
||||
|
||||
it "confirms the user and redirects with notice" do
|
||||
put :confirm, params: { id: unconfirmed_user.id }
|
||||
|
||||
expect(unconfirmed_user.reload.confirmed?).to be true
|
||||
expect(response).to redirect_to(admin_user_path(unconfirmed_user))
|
||||
expect(flash[:notice]).to eq(I18n.t("active_admin.users.confirmed_notice"))
|
||||
end
|
||||
end
|
||||
|
||||
context "when the user is already confirmed" do
|
||||
it "re-confirms and redirects with notice" do
|
||||
put :confirm, params: { id: user.id }
|
||||
|
||||
expect(response).to redirect_to(admin_user_path(user))
|
||||
expect(flash[:notice]).to eq(I18n.t("active_admin.users.confirmed_notice"))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "POST #create" do
|
||||
let(:valid_params) do
|
||||
{ username: "newuser", email: "new@example.com", locale: "en" }
|
||||
end
|
||||
|
||||
context "with confirm_immediately checked" do
|
||||
it "creates a confirmed user" do
|
||||
post :create, params: { user: valid_params.merge(confirm_immediately: "1") }
|
||||
|
||||
created_user = User.find_by(email: "new@example.com")
|
||||
expect(created_user).to be_confirmed
|
||||
end
|
||||
end
|
||||
|
||||
context "without confirm_immediately checked" do
|
||||
it "creates an unconfirmed user" do
|
||||
post :create, params: { user: valid_params.merge(confirm_immediately: "0") }
|
||||
|
||||
created_user = User.find_by(email: "new@example.com")
|
||||
expect(created_user).not_to be_confirmed
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "PUT #update" do
|
||||
context "when password is blank" do
|
||||
it "does not change the existing password" do
|
||||
original_encrypted = user.encrypted_password
|
||||
|
||||
put :update, params: { id: user.id, user: { password: "", password_confirmation: "" } }
|
||||
|
||||
expect(user.reload.encrypted_password).to eq(original_encrypted)
|
||||
end
|
||||
end
|
||||
|
||||
context "when password is provided" do
|
||||
it "updates the password" do
|
||||
original_encrypted = user.encrypted_password
|
||||
|
||||
put :update, params: { id: user.id, user: { password: "newpassword123", password_confirmation: "newpassword123" } }
|
||||
|
||||
expect(user.reload.encrypted_password).not_to eq(original_encrypted)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user