decidim-direct_verifications 0.22.1 → 1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +32 -3
- data/app/assets/config/direct_verifications_admin_manifest.css +3 -0
- data/app/assets/stylesheets/decidim/direct_verifications/authorizations.scss +17 -0
- data/app/commands/decidim/direct_verifications/verification/create_import.rb +50 -0
- data/app/controllers/decidim/direct_verifications/verification/admin/authorizations_controller.rb +40 -0
- data/app/controllers/decidim/direct_verifications/verification/admin/direct_verifications_controller.rb +20 -18
- data/app/controllers/decidim/direct_verifications/verification/admin/imports_controller.rb +55 -0
- data/app/forms/decidim/direct_verifications/registration_form.rb +8 -0
- data/app/forms/decidim/direct_verifications/verification/create_import_form.rb +43 -0
- data/app/jobs/decidim/direct_verifications/authorize_users_job.rb +34 -0
- data/app/jobs/decidim/direct_verifications/base_import_job.rb +38 -0
- data/app/jobs/decidim/direct_verifications/register_users_job.rb +19 -0
- data/app/jobs/decidim/direct_verifications/revoke_users_job.rb +17 -0
- data/app/mailers/decidim/direct_verifications/import_mailer.rb +27 -0
- data/app/mailers/decidim/direct_verifications/stats.rb +23 -0
- data/app/views/decidim/direct_verifications/import_mailer/finished_processing.html.erb +7 -0
- data/app/views/decidim/direct_verifications/import_mailer/finished_processing.text.erb +7 -0
- data/app/views/decidim/direct_verifications/verification/admin/authorizations/index.html.erb +42 -0
- data/app/views/decidim/direct_verifications/verification/admin/direct_verifications/index.html.erb +2 -1
- data/app/views/decidim/direct_verifications/verification/admin/imports/new.html.erb +50 -0
- data/config/initializers/mail_previews.rb +5 -0
- data/config/locales/ca.yml +20 -20
- data/config/locales/cs.yml +69 -0
- data/config/locales/en.yml +29 -2
- data/config/locales/es.yml +20 -20
- data/config/locales/fr.yml +69 -0
- data/lib/decidim/direct_verifications.rb +24 -1
- data/lib/decidim/direct_verifications/authorize_user.rb +64 -0
- data/lib/decidim/direct_verifications/instrumenter.rb +58 -0
- data/lib/decidim/direct_verifications/parsers.rb +11 -0
- data/lib/decidim/direct_verifications/parsers/base_parser.rb +37 -0
- data/lib/decidim/direct_verifications/parsers/metadata_parser.rb +54 -0
- data/lib/decidim/direct_verifications/parsers/name_parser.rb +40 -0
- data/lib/decidim/direct_verifications/register_user.rb +54 -0
- data/lib/decidim/direct_verifications/revoke_user.rb +45 -0
- data/lib/decidim/direct_verifications/tests/factories.rb +11 -0
- data/lib/decidim/direct_verifications/tests/verification_controller_examples.rb +8 -3
- data/lib/decidim/direct_verifications/user_processor.rb +17 -101
- data/lib/decidim/direct_verifications/user_stats.rb +5 -5
- data/lib/decidim/direct_verifications/verification/admin_engine.rb +6 -1
- data/lib/decidim/direct_verifications/version.rb +3 -3
- metadata +37 -9
- data/lib/decidim/direct_verifications/config.rb +0 -23
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "decidim/direct_verifications/instrumenter"
|
4
|
+
|
5
|
+
module Decidim
|
6
|
+
module DirectVerifications
|
7
|
+
class RegisterUsersJob < BaseImportJob
|
8
|
+
def process_users
|
9
|
+
emails.each do |email, data|
|
10
|
+
RegisterUser.new(email, data, organization, current_user, instrumenter).call
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def type
|
15
|
+
:registered
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module DirectVerifications
|
5
|
+
class RevokeUsersJob < BaseImportJob
|
6
|
+
def process_users
|
7
|
+
emails.each do |email, _name|
|
8
|
+
RevokeUser.new(email, organization, instrumenter, authorization_handler).call
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def type
|
13
|
+
:revoked
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module DirectVerifications
|
5
|
+
class ImportMailer < Decidim::Admin::ApplicationMailer
|
6
|
+
include LocalisedMailer
|
7
|
+
|
8
|
+
layout "decidim/mailer"
|
9
|
+
|
10
|
+
I18N_SCOPE = "decidim.direct_verifications.verification.admin.imports.mailer"
|
11
|
+
|
12
|
+
def finished_processing(user, instrumenter, type, handler)
|
13
|
+
@stats = Stats.from(instrumenter, type)
|
14
|
+
@organization = user.organization
|
15
|
+
@i18n_key = "#{I18N_SCOPE}.#{type}"
|
16
|
+
@handler = handler
|
17
|
+
|
18
|
+
with_user(user) do
|
19
|
+
mail(
|
20
|
+
to: user.email,
|
21
|
+
subject: I18n.t("#{I18N_SCOPE}.subject")
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module DirectVerifications
|
5
|
+
class Stats
|
6
|
+
attr_reader :count, :successful, :errors
|
7
|
+
|
8
|
+
def self.from(instrumenter, type)
|
9
|
+
new(
|
10
|
+
count: instrumenter.emails_count(type),
|
11
|
+
successful: instrumenter.processed_count(type),
|
12
|
+
errors: instrumenter.errors_count(type)
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize(count:, successful:, errors:)
|
17
|
+
@count = count
|
18
|
+
@successful = successful
|
19
|
+
@errors = errors
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<%= stylesheet_link_tag "decidim/direct_verifications/authorizations" %>
|
2
|
+
|
3
|
+
<div class="card">
|
4
|
+
<div class="card-divider">
|
5
|
+
<h2 class="card-title">
|
6
|
+
<%= t(".title") %>
|
7
|
+
<%= link_to t("admin.index.stats", scope: "decidim.direct_verifications.verification"), stats_path, class: "button tiny button--title" %>
|
8
|
+
<%= link_to t(".new_import"), direct_verifications_path, class: "button tiny button--title" %>
|
9
|
+
</h2>
|
10
|
+
</div>
|
11
|
+
<div class="card-section">
|
12
|
+
<div class="table-scroll">
|
13
|
+
<table class="table-list">
|
14
|
+
<thead>
|
15
|
+
<tr>
|
16
|
+
<th><%= t(".name") %></th>
|
17
|
+
<th><%= t(".metadata") %></th>
|
18
|
+
<th><%= t(".user_name") %></th>
|
19
|
+
<th><%= t(".created_at") %></th>
|
20
|
+
<th> </th>
|
21
|
+
</tr>
|
22
|
+
</thead>
|
23
|
+
<tbody>
|
24
|
+
<% @authorizations.each do |authorization| %>
|
25
|
+
<tr data-authorization-id="<%= authorization.id %>">
|
26
|
+
<td><%= authorization.name %></td>
|
27
|
+
<td class="metadata">
|
28
|
+
<span class="code"><%= authorization.metadata %></span>
|
29
|
+
</td>
|
30
|
+
<td><%= authorization.user.name %></td>
|
31
|
+
<td><%= authorization.created_at %></td>
|
32
|
+
|
33
|
+
<td class="table-list__actions">
|
34
|
+
<%= icon_link_to "circle-x", authorization_path(authorization), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
|
35
|
+
</td>
|
36
|
+
</tr>
|
37
|
+
<% end %>
|
38
|
+
</tbody>
|
39
|
+
</table>
|
40
|
+
</div>
|
41
|
+
</div>
|
42
|
+
</div>
|
data/app/views/decidim/direct_verifications/verification/admin/direct_verifications/index.html.erb
CHANGED
@@ -3,10 +3,11 @@
|
|
3
3
|
<h2 class="card-title">
|
4
4
|
<%= t("admin.index.title", scope: "decidim.direct_verifications.verification") %>
|
5
5
|
<%= link_to t("admin.index.stats", scope: "decidim.direct_verifications.verification"), stats_path, class: "button tiny button--title" %>
|
6
|
+
<%= link_to t("admin.index.authorizations", scope: "decidim.direct_verifications.verification"), authorizations_path, class: "button tiny button--title" %>
|
6
7
|
</h2>
|
7
8
|
</div>
|
8
9
|
<div class="card-section">
|
9
|
-
<p><%= t("decidim.direct_verifications.verification.admin.new.
|
10
|
+
<p><%= t("decidim.direct_verifications.verification.admin.new.info_html", link: new_import_path) %></p>
|
10
11
|
<%= form_tag direct_verifications_path, multipart: true, class: "form" do %>
|
11
12
|
<%= label_tag :userslist, t("admin.new.textarea", scope: "decidim.direct_verifications.verification") %>
|
12
13
|
<%= text_area_tag :userslist, @userslist, rows: 10 %>
|
@@ -0,0 +1,50 @@
|
|
1
|
+
<div class="card">
|
2
|
+
<div class="card-divider">
|
3
|
+
<h2 class="card-title">
|
4
|
+
<%= t("admin.index.title", scope: "decidim.direct_verifications.verification") %>
|
5
|
+
<%= link_to t("admin.index.stats", scope: "decidim.direct_verifications.verification"), stats_path, class: "button tiny button--title" %>
|
6
|
+
<%= link_to t("admin.index.authorizations", scope: "decidim.direct_verifications.verification"), authorizations_path, class: "button tiny button--title" %>
|
7
|
+
</h2>
|
8
|
+
</div>
|
9
|
+
<div class="card-section">
|
10
|
+
<p><%= t("decidim.direct_verifications.verification.admin.imports.new.info") %></p>
|
11
|
+
<pre class="code-block">
|
12
|
+
<strong>email, name, membership_phone, membership_type, membership_weight</strong>
|
13
|
+
ava@example.com, Ava Hawkins, +3476318371, consumer, 1
|
14
|
+
ewan@example.com, Ewan Cooper, +34653565765, worker, 1
|
15
|
+
tilly@example.com, Tilly Jones, +34653565761, collaborator, 0.67
|
16
|
+
...
|
17
|
+
</pre>
|
18
|
+
|
19
|
+
<%= decidim_form_for(@form, url: imports_path, html: { class: "form" }) do |form| %>
|
20
|
+
<label>
|
21
|
+
<%= check_box_tag :register %>
|
22
|
+
<%= t("admin.new.register", scope: "decidim.direct_verifications.verification") %>
|
23
|
+
<div data-alert class="callout alert hide">
|
24
|
+
<%= t("admin.direct_verifications.gdpr_disclaimer", scope: "decidim.direct_verifications.verification") %>
|
25
|
+
</div>
|
26
|
+
</label>
|
27
|
+
<label>
|
28
|
+
<%= radio_button_tag :authorize, "in" %>
|
29
|
+
<%= t("admin.new.authorize", scope: "decidim.direct_verifications.verification") %>
|
30
|
+
</label>
|
31
|
+
<label>
|
32
|
+
<%= radio_button_tag :authorize, "out" %>
|
33
|
+
<%= t("admin.new.revoke", scope: "decidim.direct_verifications.verification") %>
|
34
|
+
</label>
|
35
|
+
<label>
|
36
|
+
<%= radio_button_tag :authorize, "check", true %>
|
37
|
+
<%= t("admin.new.check", scope: "decidim.direct_verifications.verification") %>
|
38
|
+
</label>
|
39
|
+
|
40
|
+
<%= label_tag :authorization_handler, t("admin.new.authorization_handler", scope: "decidim.direct_verifications.verification") %>
|
41
|
+
<%= select_tag :authorization_handler, options_for_select(workflows, current_authorization_handler) %>
|
42
|
+
|
43
|
+
<%= form.file_field :file, label: t(".file") %>
|
44
|
+
<%= form.submit t(".submit"), class: "button" %>
|
45
|
+
<% end %>
|
46
|
+
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
|
50
|
+
<%= javascript_include_tag "decidim/direct_verifications/verification/admin/direct_verifications_admin" %>
|
data/config/locales/ca.yml
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
---
|
2
1
|
ca:
|
3
2
|
decidim:
|
4
3
|
admin:
|
@@ -11,40 +10,41 @@ ca:
|
|
11
10
|
admin:
|
12
11
|
direct_verifications:
|
13
12
|
help:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
- 'Permet la introducció massiva d''usuaris per tal de:'
|
14
|
+
- Registrar-los directament a la organització amb l'enviament d'invitacions
|
15
|
+
- Verificar-los en qualsevol mètode de verificació actiu
|
16
|
+
- Revocar la verificació en qualsevol mètode de verificació actiu
|
18
17
|
direct_verifications:
|
19
18
|
explanation: Verificació manual per par dels administradors de l'organització
|
20
19
|
name: Verificació directa
|
21
20
|
direct_verifications:
|
22
21
|
verification:
|
23
22
|
admin:
|
23
|
+
authorizations:
|
24
|
+
index:
|
25
|
+
created_at: Data de creació
|
26
|
+
metadata: Metadades
|
27
|
+
name: Nom
|
28
|
+
title: Autoritzacions
|
29
|
+
user_name: Nom d'usuari
|
30
|
+
new_import: Nova importació
|
24
31
|
direct_verifications:
|
25
32
|
create:
|
26
|
-
authorized: S'han verificat correctament %{authorized} usuaris utilitzant
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
detectats, %{errors} errors)
|
33
|
-
revoked: S'ha revocat correctament la verificació de %{revoked} usuaris
|
34
|
-
utilitzant [%{handler}] (%{count} detectats, %{errors} errors)
|
35
|
-
gdpr_disclaimer: Feu-ho sota la vostra responsabilitat. Recordeu que heu
|
36
|
-
de tenir el consentiment explícit dels vostres usuaris per registrar-los.
|
37
|
-
En cas contrari, estareu infringint la regulació GDPR als països de
|
38
|
-
la UE.
|
33
|
+
authorized: "S'han verificat correctament %{authorized} usuaris utilitzant [%{handler}] (%{count} detectats, %{errors} errors)"
|
34
|
+
info: "S'han detectat %{count} usuaris, dels quals %{registered} estan registrats, %{authorized} autoritzats utilitzant [%{handler}] (%{unconfirmed} sense confirmar)"
|
35
|
+
missing_header: Si us plau, proporcioneu una fila d'encapçalament
|
36
|
+
registered: "S'han registrat correctament %{registered} usuaris (%{count} detectats, %{errors} errors)"
|
37
|
+
revoked: S'ha revocat correctament la verificació de %{revoked} usuaris utilitzant [%{handler}] (%{count} detectats, %{errors} errors)
|
38
|
+
gdpr_disclaimer: Feu-ho sota la vostra responsabilitat. Recordeu que heu de tenir el consentiment explícit dels vostres usuaris per registrar-los. En cas contrari, estareu infringint la regulació GDPR als països de la UE.
|
39
39
|
index:
|
40
|
+
authorizations: Usuaris autoritzats
|
40
41
|
stats: Estadístiques d'usuaris
|
41
42
|
title: Inscriu i autoritza usuaris
|
42
43
|
new:
|
43
44
|
authorization_handler: Mètode de verificació
|
44
45
|
authorize: Autoritza els usuaris
|
45
46
|
check: Comprova l'estat dels usuaris
|
46
|
-
info: Introdueix aquí els emails, un per línia. Si els emails estan precedits
|
47
|
-
per un text, s'interpretarà com el nom de l'usuari
|
47
|
+
info: Introdueix aquí els emails, un per línia. Si els emails estan precedits per un text, s'interpretarà com el nom de l'usuari
|
48
48
|
register: Registra els usuaris a la plataforma (si existeixen s'ignoraran)
|
49
49
|
revoke: Revoca l'autorització dels usuaris
|
50
50
|
submit: Envia i processa el llistat
|
@@ -0,0 +1,69 @@
|
|
1
|
+
cs:
|
2
|
+
decidim:
|
3
|
+
admin:
|
4
|
+
models:
|
5
|
+
user:
|
6
|
+
fields:
|
7
|
+
roles:
|
8
|
+
participant: Účastník
|
9
|
+
authorization_handlers:
|
10
|
+
admin:
|
11
|
+
direct_verifications:
|
12
|
+
help:
|
13
|
+
- 'Umožňuje masivní zavedení uživatelů:'
|
14
|
+
- Přímá registrace v organizaci a odeslání pozvánek
|
15
|
+
- Ověřit je pomocí jakékoliv metody aktivního ověření
|
16
|
+
- Zrušit jejich ověření pomocí jakékoli metody aktivního ověření
|
17
|
+
direct_verifications:
|
18
|
+
explanation: Ruční ověření správcem organizace
|
19
|
+
name: Přímé ověření
|
20
|
+
direct_verifications:
|
21
|
+
verification:
|
22
|
+
admin:
|
23
|
+
authorizations:
|
24
|
+
index:
|
25
|
+
created_at: Vytvořeno v
|
26
|
+
metadata: Metadata
|
27
|
+
name: Název
|
28
|
+
title: Autorizace
|
29
|
+
user_name: Uživatelské jméno
|
30
|
+
new_import: Nový import
|
31
|
+
direct_verifications:
|
32
|
+
create:
|
33
|
+
authorized: "%{authorized} uživatelů bylo úspěšně ověřeno pomocí [%{handler}] (%{count} detekováno, %{errors} chyb)"
|
34
|
+
info: "Zjištěno %{count} uživatelů, z nichž %{registered} jsou registrováni, %{authorized} autorizováni pomocí [%{handler}] (%{unconfirmed} nepotvrzeno)"
|
35
|
+
registered: "%{registered} uživatelů bylo úspěšně zaregistrováno (%{count} detekováno, %{errors} chyb) "
|
36
|
+
revoked: Ověření od %{revoked} uživatelů bylo zrušeno pomocí [%{handler}] (%{count} detekováno, %{errors} chyb)
|
37
|
+
gdpr_disclaimer: Udělejte to v rámci vaší odpovědnosti. Nezapomeňte, že potřebujete mít výslovný souhlas svých uživatelů, abyste je mohli zaregistrovat. V opačném případě můžete porušovat nařízení o GDPR v zemích EU.
|
38
|
+
index:
|
39
|
+
authorizations: Autorizovaní uživatelé
|
40
|
+
stats: Statistiky uživatelů
|
41
|
+
title: Registrovat a autorizovat uživatele
|
42
|
+
new:
|
43
|
+
authorization_handler: Ověřovací metoda
|
44
|
+
authorize: Autorizovat uživatele
|
45
|
+
check: Zkontrolovat stav uživatelů
|
46
|
+
info: Zadejte e-maily zde, jeden na řádek. Pokud e-mailům předchází text, bude interpretován jako jméno uživatele
|
47
|
+
register: Registrovat uživatele na platformě (pokud existují, budou ignorováni)
|
48
|
+
revoke: Zrušit autorizaci od uživatelů
|
49
|
+
submit: Odeslat a zpracovat seznam
|
50
|
+
textarea: Seznam e-mailů
|
51
|
+
stats:
|
52
|
+
index:
|
53
|
+
authorized: Autorizováno
|
54
|
+
authorized_unconfirmed: Autorizováno, ale nepotvrzeno
|
55
|
+
global: "- Jakákoli metoda ověřování -"
|
56
|
+
registered: Registrován
|
57
|
+
unconfirmed: Nepotvrzeno
|
58
|
+
authorizations:
|
59
|
+
new:
|
60
|
+
no_action: Tato metoda vyžaduje administrátora, který vás ověřuje
|
61
|
+
verifications:
|
62
|
+
authorizations:
|
63
|
+
first_login:
|
64
|
+
actions:
|
65
|
+
direct_verifications: Přímé ověření
|
66
|
+
devise:
|
67
|
+
mailer:
|
68
|
+
direct_invite:
|
69
|
+
subject: Pokyny pro pozvání
|
data/config/locales/en.yml
CHANGED
@@ -21,12 +21,39 @@ en:
|
|
21
21
|
direct_verifications:
|
22
22
|
verification:
|
23
23
|
admin:
|
24
|
+
imports:
|
25
|
+
new:
|
26
|
+
info: Import a CSV file with a user entry per line copying the format from the example below
|
27
|
+
submit: Upload file
|
28
|
+
file: CSV file with users data
|
29
|
+
create:
|
30
|
+
success: File successfully uploaded. We'll email you when all users are imported.
|
31
|
+
error: There was an error importing the file
|
32
|
+
mailer:
|
33
|
+
subject: File import results
|
34
|
+
authorized: "%{successful} users have been successfully verified using
|
35
|
+
[%{handler}] (%{count} detected, %{errors} errors)"
|
36
|
+
info: "%{count} users detected, of which %{registered} are registered,
|
37
|
+
%{authorized} authorized using [%{handler}] (%{unconfirmed} unconfirmed)"
|
38
|
+
registered: "%{successful} users have been successfully registered (%{count}
|
39
|
+
detected, %{errors} errors) "
|
40
|
+
revoked: Verification from %{successful} users have been revoked using
|
41
|
+
[%{handler}] (%{count} detected, %{errors} errors)
|
42
|
+
authorizations:
|
43
|
+
index:
|
44
|
+
created_at: Created at
|
45
|
+
metadata: Metadata
|
46
|
+
name: Name
|
47
|
+
title: Authorizations
|
48
|
+
user_name: User name
|
49
|
+
new_import: New import
|
24
50
|
direct_verifications:
|
25
51
|
create:
|
26
52
|
authorized: "%{authorized} users have been successfully verified using
|
27
53
|
[%{handler}] (%{count} detected, %{errors} errors)"
|
28
54
|
info: "%{count} users detected, of which %{registered} are registered,
|
29
55
|
%{authorized} authorized using [%{handler}] (%{unconfirmed} unconfirmed)"
|
56
|
+
missing_header: Please, provide a header row
|
30
57
|
registered: "%{registered} users have been successfully registered (%{count}
|
31
58
|
detected, %{errors} errors) "
|
32
59
|
revoked: Verification from %{revoked} users have been revoked using
|
@@ -35,14 +62,14 @@ en:
|
|
35
62
|
need to have explicit consent from your users in order to register them.
|
36
63
|
Otherwise you will be infringing the GDPR regulation in EU countries.
|
37
64
|
index:
|
65
|
+
authorizations: Authorized users
|
38
66
|
stats: User stats
|
39
67
|
title: Register and authorize users
|
40
68
|
new:
|
41
69
|
authorization_handler: Verification method
|
42
70
|
authorize: Authorize users
|
43
71
|
check: Check users status
|
44
|
-
|
45
|
-
by a text, it will be interpreted as the user's name
|
72
|
+
info_html: You can <a href=%{link}>import a CSV</a> or enter the emails here, one per line. If the emails are preceded by a text, it will be interpreted as the user's name.
|
46
73
|
register: Register users in the platform (if they exist they will be ignored)
|
47
74
|
revoke: Revoke authorization from users
|
48
75
|
submit: Send and process the list
|
data/config/locales/es.yml
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
---
|
2
1
|
es:
|
3
2
|
decidim:
|
4
3
|
admin:
|
@@ -11,40 +10,41 @@ es:
|
|
11
10
|
admin:
|
12
11
|
direct_verifications:
|
13
12
|
help:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
- 'Permite la introducción masiva d usuarios con el fin de:'
|
14
|
+
- Registrarlos directamente a la organización con el envío de invitaciones
|
15
|
+
- Verificarlos en cualquier método de verificación activo
|
16
|
+
- Revocar la verificación en cualquier método de verificación activo
|
18
17
|
direct_verifications:
|
19
18
|
explanation: Verificación manual por parte de los administradores de la organización
|
20
19
|
name: Verificación directa
|
21
20
|
direct_verifications:
|
22
21
|
verification:
|
23
22
|
admin:
|
23
|
+
authorizations:
|
24
|
+
index:
|
25
|
+
created_at: Creado el
|
26
|
+
metadata: Metadatos
|
27
|
+
name: Nombre
|
28
|
+
title: Autorizaciones
|
29
|
+
user_name: Nombre de usuario
|
30
|
+
new_import: Nueva importación
|
24
31
|
direct_verifications:
|
25
32
|
create:
|
26
|
-
authorized: Se han verificado correctamente %{authorized} usuarios usando
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
detectados, %{errors} errores)
|
33
|
-
revoked: Se ha revocado correctament la verificación de %{revoked} usuarios
|
34
|
-
usando [%{handler}] (%{count} detectados, %{errors} errores)
|
35
|
-
gdpr_disclaimer: Haga esto bajo su responsabilidad. Recuerde que debe
|
36
|
-
contar con el consentimiento explícito de sus usuarios para poder registrarlos.
|
37
|
-
De lo contrario, estará infringiendo la regulación GDPR en los países
|
38
|
-
de la UE.
|
33
|
+
authorized: "Se han verificado correctamente %{authorized} usuarios usando [%{handler}] (%{count} detectados, %{errors} errores)"
|
34
|
+
info: "Se han detectado %{count} usuarios, de los cuales %{registered} están registrados, %{authorized} autorizados usando [%{handler}] (%{unconfirmed} sin confirmar)"
|
35
|
+
missing_header: Por favor, proporcionad una fila de encabezamiento
|
36
|
+
registered: "Se han registrado correctamente %{registered} usuarios (%{count} detectados, %{errors} errores)"
|
37
|
+
revoked: Se ha revocado correctament la verificación de %{revoked} usuarios usando [%{handler}] (%{count} detectados, %{errors} errores)
|
38
|
+
gdpr_disclaimer: Haga esto bajo su responsabilidad. Recuerde que debe contar con el consentimiento explícito de sus usuarios para poder registrarlos. De lo contrario, estará infringiendo la regulación GDPR en los países de la UE.
|
39
39
|
index:
|
40
|
+
authorizations: Usuarios autorizados
|
40
41
|
stats: Estadísticas de usuarios
|
41
42
|
title: Inscribe y autoriza usuarios
|
42
43
|
new:
|
43
44
|
authorization_handler: Método de verificación
|
44
45
|
authorize: Autoriza los usuarios
|
45
46
|
check: Comprueba el estado de los usuarios
|
46
|
-
info: Introduce aquí los emails, uno por linea. Si los emails están precedidos
|
47
|
-
por un texto, se interpretará como el nombre del usuario
|
47
|
+
info: Introduce aquí los emails, uno por linea. Si los emails están precedidos por un texto, se interpretará como el nombre del usuario
|
48
48
|
register: Registra los usuarios a la plataforma (si existen se ignorarán)
|
49
49
|
revoke: Revoca la autorización de los usuarios
|
50
50
|
submit: Envía y procesa el listado
|