masq2 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +83 -0
- data/CODE_OF_CONDUCT.md +135 -0
- data/CONTRIBUTING.md +151 -0
- data/LICENSE.txt +22 -0
- data/README.md +426 -0
- data/SECURITY.md +23 -0
- data/app/assets/images/masq/favicon.ico +0 -0
- data/app/assets/images/masq/openid_symbol.png +0 -0
- data/app/assets/images/masq/seatbelt_icon.png +0 -0
- data/app/assets/images/masq/seatbelt_icon_gray.png +0 -0
- data/app/assets/images/masq/seatbelt_icon_high.png +0 -0
- data/app/assets/stylesheets/masq/application.css.erb +61 -0
- data/app/controllers/masq/accounts_controller.rb +132 -0
- data/app/controllers/masq/base_controller.rb +78 -0
- data/app/controllers/masq/consumer_controller.rb +144 -0
- data/app/controllers/masq/info_controller.rb +23 -0
- data/app/controllers/masq/passwords_controller.rb +42 -0
- data/app/controllers/masq/personas_controller.rb +75 -0
- data/app/controllers/masq/server_controller.rb +247 -0
- data/app/controllers/masq/sessions_controller.rb +58 -0
- data/app/controllers/masq/sites_controller.rb +60 -0
- data/app/controllers/masq/yubikey_associations_controller.rb +25 -0
- data/app/helpers/masq/application_helper.rb +57 -0
- data/app/helpers/masq/personas_helper.rb +15 -0
- data/app/helpers/masq/server_helper.rb +15 -0
- data/app/mailers/masq/account_mailer.rb +17 -0
- data/app/models/masq/account.rb +245 -0
- data/app/models/masq/open_id_request.rb +42 -0
- data/app/models/masq/persona.rb +61 -0
- data/app/models/masq/release_policy.rb +11 -0
- data/app/models/masq/site.rb +68 -0
- data/app/views/layouts/masq/base.html.erb +70 -0
- data/app/views/layouts/masq/consumer.html.erb +30 -0
- data/app/views/masq/account_mailer/forgot_password.html.erb +3 -0
- data/app/views/masq/account_mailer/forgot_password.text.erb +3 -0
- data/app/views/masq/account_mailer/signup_notification.html.erb +5 -0
- data/app/views/masq/account_mailer/signup_notification.text.erb +5 -0
- data/app/views/masq/accounts/_hcard.html.erb +29 -0
- data/app/views/masq/accounts/edit.html.erb +100 -0
- data/app/views/masq/accounts/new.html.erb +27 -0
- data/app/views/masq/accounts/show.html.erb +4 -0
- data/app/views/masq/accounts/show.xrds.builder +40 -0
- data/app/views/masq/consumer/index.html.erb +31 -0
- data/app/views/masq/consumer/start.html.erb +2 -0
- data/app/views/masq/info/help.html.erb +8 -0
- data/app/views/masq/info/index.html.erb +5 -0
- data/app/views/masq/info/safe_login.html.erb +24 -0
- data/app/views/masq/passwords/edit.html.erb +13 -0
- data/app/views/masq/passwords/new.html.erb +11 -0
- data/app/views/masq/personas/_form.html.erb +159 -0
- data/app/views/masq/personas/edit.html.erb +9 -0
- data/app/views/masq/personas/index.html.erb +17 -0
- data/app/views/masq/personas/new.html.erb +9 -0
- data/app/views/masq/server/decide.html.erb +146 -0
- data/app/views/masq/server/index.xrds.builder +19 -0
- data/app/views/masq/server/seatbelt_config.xml.builder +24 -0
- data/app/views/masq/server/seatbelt_login_state.xml.builder +4 -0
- data/app/views/masq/sessions/new.html.erb +27 -0
- data/app/views/masq/shared/_error_messages.html.erb +12 -0
- data/app/views/masq/sites/edit.html.erb +42 -0
- data/app/views/masq/sites/index.html.erb +20 -0
- data/config/initializers/configuration.rb +5 -0
- data/config/initializers/mime_types.rb +1 -0
- data/config/initializers/requires.rb +6 -0
- data/config/locales/de.yml +281 -0
- data/config/locales/en.yml +271 -0
- data/config/locales/es.yml +254 -0
- data/config/locales/nl.yml +258 -0
- data/config/locales/rails.de.yml +225 -0
- data/config/locales/ru.yml +272 -0
- data/config/masq.example.yml +132 -0
- data/config/routes.rb +41 -0
- data/db/migrate/20120312120000_masq_schema.rb +152 -0
- data/db/migrate/20130626220915_remame_last_authenticated_with_yubikey_on_masq_accounts.rb +11 -0
- data/db/migrate/20130704205532_add_first_and_lastname_columns_to_personas.rb +11 -0
- data/db/migrate/20130807060329_change_open_id_associations_server_url_column_type.rb +22 -0
- data/lib/masq/active_record_openid_store/association.rb +16 -0
- data/lib/masq/active_record_openid_store/nonce.rb +9 -0
- data/lib/masq/active_record_openid_store/openid_ar_store.rb +58 -0
- data/lib/masq/authenticated_system.rb +136 -0
- data/lib/masq/engine.rb +12 -0
- data/lib/masq/openid_server_system.rb +110 -0
- data/lib/masq/signup.rb +53 -0
- data/lib/masq/version.rb +5 -0
- data/lib/masq.rb +50 -0
- data/lib/masq2.rb +1 -0
- data/lib/tasks/masq_tasks.rake +58 -0
- data.tar.gz.sig +2 -0
- metadata +377 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,146 @@
|
|
1
|
+
<h2><%= t(:identity_request_from_host, :host => h(extract_host(@site.url))).html_safe %></h2>
|
2
|
+
|
3
|
+
<% if ax_store_request %>
|
4
|
+
<p><%= t(:trust_root_sends_some_personal_data, :trust_root => "<strong>#{h checkid_request.trust_root}</strong>").html_safe %><br />
|
5
|
+
<% if @site.persona %>
|
6
|
+
<%= t(:select_information_to_accept) %></p>
|
7
|
+
<p class="note">
|
8
|
+
<%= t( :attributes_will_be_added_to_persona,
|
9
|
+
:persona => "<strong>#{h @site.persona.title}</strong>",
|
10
|
+
:choose_link => link_to(
|
11
|
+
t(:choose_other_persona),
|
12
|
+
'#',
|
13
|
+
:onclick => 'Element.toggle("persona_select"); return false;'
|
14
|
+
)
|
15
|
+
).html_safe %>
|
16
|
+
</p>
|
17
|
+
<% else %>
|
18
|
+
<p>
|
19
|
+
<%= t( :identity_request_missing_persona,
|
20
|
+
:create_link => link_to(
|
21
|
+
t(:create_persona_link),
|
22
|
+
new_account_persona_path(:return => decide_path)
|
23
|
+
)
|
24
|
+
).html_safe %>
|
25
|
+
</p>
|
26
|
+
<% end %>
|
27
|
+
|
28
|
+
<% elsif sreg_request || ax_fetch_request %>
|
29
|
+
<p><%= t(:trust_root_requests_some_personal_data, :trust_root => "<strong>#{h checkid_request.trust_root}</strong>").html_safe %><br />
|
30
|
+
<% if @site.persona %>
|
31
|
+
<%= t(:select_information_to_submit) %></p>
|
32
|
+
<p class="note"><%= t(:attributes_are_shown_from_persona, :persona => "<strong>#{h @site.persona.title}</strong>").html_safe %><br />
|
33
|
+
<%=
|
34
|
+
t( :to_submit_other_values_you_can_edit_or_choose,
|
35
|
+
:edit_link => link_to(
|
36
|
+
t(:edit_persona_link),
|
37
|
+
edit_account_persona_path(
|
38
|
+
@site.persona,
|
39
|
+
:return => decide_path(:persona_id => @site.persona.id)
|
40
|
+
)
|
41
|
+
),
|
42
|
+
:choose_link => link_to(
|
43
|
+
t(:choose_other_persona),
|
44
|
+
'#',
|
45
|
+
:onclick => 'Element.toggle("persona_select"); return false;'
|
46
|
+
)
|
47
|
+
).html_safe
|
48
|
+
%>
|
49
|
+
</p>
|
50
|
+
<% else %>
|
51
|
+
<p><%= t(:identity_request_missing_persona, :create_link => link_to(t(:create_persona_link), new_account_persona_path(:return => decide_path))).html_safe %></p>
|
52
|
+
<% end %>
|
53
|
+
<% else %>
|
54
|
+
<p><%= t(:trust_root_requires_authentication, :trust_root => "<strong>#{h checkid_request.trust_root}</strong>").html_safe %></p>
|
55
|
+
<% end %>
|
56
|
+
|
57
|
+
<%= form_tag decide_path, :method => :get, :id => 'persona_select', :style => 'display:none;' do %>
|
58
|
+
|
59
|
+
<h3><%= t(:choose_persona_title) %></h3>
|
60
|
+
<% unless current_account.personas.empty? %>
|
61
|
+
<div class="row">
|
62
|
+
<select id="persona_id" name="persona_id">
|
63
|
+
<%= options_from_collection_for_select(current_account.personas, :id, :title, @site.persona.id) %>
|
64
|
+
</select>
|
65
|
+
</div>
|
66
|
+
<div>
|
67
|
+
<%= submit_tag t(:choose_persona_submit) %> <%= t(:or) %>
|
68
|
+
<%= link_to t(:create_new_persona_link), new_account_persona_path(:return => decide_path) %>
|
69
|
+
</div>
|
70
|
+
<% end %>
|
71
|
+
|
72
|
+
<% end if sreg_request || ax_fetch_request || ax_store_request %>
|
73
|
+
|
74
|
+
<%= form_for @site, :url => complete_path do |f| %>
|
75
|
+
|
76
|
+
<% if sreg_request || ax_fetch_request %>
|
77
|
+
<table cellspacing="0">
|
78
|
+
<tr>
|
79
|
+
<th colspan="2"><h4><%= t(:requested_information_title) %></h4></th>
|
80
|
+
<th class="disclosure"><%= t(:disclosure) %></th>
|
81
|
+
</tr>
|
82
|
+
<% (sreg_request.required + sreg_request.optional).each do |property| %>
|
83
|
+
<tr>
|
84
|
+
<td><%= label_tag "site_sreg_#{property}", property_label_text(property) %></td>
|
85
|
+
<td><%= label_tag "site_sreg_#{property}", @site.persona.property(property) %></td>
|
86
|
+
<td>
|
87
|
+
<%= check_box_tag "site[sreg][#{property}]", @site.persona.property(property), sreg_request.required.include?(property), :id => "site_sreg_#{property}", :class => sreg_request_for_field(property) %>
|
88
|
+
<%= label_tag "site_sreg_#{property}", sreg_request_for_field(property), :class => 'note' %>
|
89
|
+
</td>
|
90
|
+
</tr>
|
91
|
+
<% end if sreg_request %>
|
92
|
+
<% ax_fetch_request.attributes.each do |property| %>
|
93
|
+
<% supported = !Masq::Persona.attribute_name_for_type_uri(property.type_uri).nil? %>
|
94
|
+
<tr>
|
95
|
+
<td><%= label_tag "site_ax_fetch_#{property.ns_alias}", property_label_text(property.ns_alias) %></td>
|
96
|
+
<td><%= label_tag "site_ax_fetch_#{property.ns_alias}", supported ? @site.persona.property(property.type_uri) : t(:not_supported), :class => supported ? nil : 'note' %></td>
|
97
|
+
<td>
|
98
|
+
<%= check_box_tag "site[ax_fetch][#{property.ns_alias}][value]", @site.persona.property(property.type_uri), property.required, :id => "site_ax_fetch_#{property.ns_alias}", :class => ax_request_for_field(property), :disabled => !supported %>
|
99
|
+
<%= hidden_field_tag "site[ax_fetch][#{property.ns_alias}][type]", property.type_uri, :id => "site_ax_fetch_type_#{property.ns_alias}" %>
|
100
|
+
<%= label_tag "site_ax_fetch_#{property.ns_alias}", ax_request_for_field(property), :class => 'note' %>
|
101
|
+
</td>
|
102
|
+
</tr>
|
103
|
+
<% end if ax_fetch_request %>
|
104
|
+
</table>
|
105
|
+
<% end %>
|
106
|
+
|
107
|
+
<% if ax_store_request %>
|
108
|
+
<table cellspacing="0">
|
109
|
+
<tr>
|
110
|
+
<th colspan="2"><h4><%= t(:sent_information_title) %></h4></th>
|
111
|
+
<th class="current"><%= t(:current) %></th>
|
112
|
+
<th class="accept"><%= t(:accept) %></th>
|
113
|
+
</tr>
|
114
|
+
<% ax_store_request.data.each do |type_uri, value| %>
|
115
|
+
<% if attribute = Masq::Persona.attribute_name_for_type_uri(type_uri) %>
|
116
|
+
<tr>
|
117
|
+
<td><%= label_tag "site_ax_store_#{attribute}", property_label_text_for_type_uri(type_uri) %></td>
|
118
|
+
<td><%= label_tag "site_ax_store_#{attribute}", value %></td>
|
119
|
+
<td><%= label_tag "site_ax_store_#{attribute}", @site.persona.property(type_uri) %></td>
|
120
|
+
<td>
|
121
|
+
<%= check_box_tag "site[ax_store][#{attribute}][value]", value, false, :id => "site_ax_store_#{attribute}" %>
|
122
|
+
<%= hidden_field_tag "site[ax_store][#{attribute}][type]", type_uri, :id => "site_ax_store_type_#{attribute}" %>
|
123
|
+
</td>
|
124
|
+
</tr>
|
125
|
+
<% end %>
|
126
|
+
<% end %>
|
127
|
+
</table>
|
128
|
+
<% end %>
|
129
|
+
|
130
|
+
<div>
|
131
|
+
<% if sreg_request || ax_fetch_request || ax_store_request %>
|
132
|
+
<%= f.hidden_field :persona_id %>
|
133
|
+
<%= f.hidden_field :url %>
|
134
|
+
<% end %>
|
135
|
+
|
136
|
+
<% if sreg_request || ax_fetch_request %>
|
137
|
+
<%= submit_tag t(:trust_site_only_this_time), :name => 'temporary', :class => 'space' %>
|
138
|
+
<%= submit_tag t(:always_trust_site), :name => 'always', :class => 'space' %>
|
139
|
+
<% else %>
|
140
|
+
<%= submit_tag t(:approve_request), :name => 'temporary', :class => 'space' %>
|
141
|
+
<% end %>
|
142
|
+
<%= submit_tag t(:cancel_request), :name => 'cancel' %>
|
143
|
+
</div>
|
144
|
+
|
145
|
+
<% end unless current_account.personas.empty? %>
|
146
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
xml.instruct!
|
2
|
+
xml.xrds(
|
3
|
+
:XRDS,
|
4
|
+
"xmlns:openid" => OpenID::OPENID_1_0_NS,
|
5
|
+
"xmlns:xrds" => "xri://$xrds",
|
6
|
+
"xmlns" => "xri://$xrd*($v*2.0)",
|
7
|
+
) do
|
8
|
+
xml.XRD do
|
9
|
+
xml.Service(priority: 1) do
|
10
|
+
xml.Type(OpenID::OPENID_IDP_2_0_TYPE)
|
11
|
+
xml.Type(OpenID::SReg::NS_URI_1_1)
|
12
|
+
xml.Type(OpenID::SReg::NS_URI_1_0)
|
13
|
+
xml.Type(OpenID::AX::AXMessage::NS_URI)
|
14
|
+
xml.Type(OpenID::PAPE::AUTH_MULTI_FACTOR) if Masq::Engine.config.masq["use_ssl"]
|
15
|
+
xml.Type(OpenID::PAPE::AUTH_PHISHING_RESISTANT) if Masq::Engine.config.masq["use_ssl"]
|
16
|
+
xml.URI(endpoint_url)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
xml.instruct!
|
2
|
+
xml.opConfig(version: "1.0", serverIdentifier: endpoint_url) do
|
3
|
+
xml.configRevision("2008090801")
|
4
|
+
xml.title(Masq::Engine.config.masq["name"])
|
5
|
+
xml.serverIdentifier(endpoint_url)
|
6
|
+
xml.opDomain(Masq::Engine.config.masq["host"])
|
7
|
+
xml.opCertCommonName(Masq::Engine.config.masq["ssl_certificate_common_name"]) if Masq::Engine.config.masq["use_ssl"]
|
8
|
+
xml.opCertSHA1Hash(Masq::Engine.config.masq["ssl_certificate_sha1"]) if Masq::Engine.config.masq["use_ssl"]
|
9
|
+
xml.loginUrl(login_url(protocol: scheme))
|
10
|
+
xml.welcomeUrl(root_url(protocol: scheme))
|
11
|
+
xml.loginStateUrl(seatbelt_state_url(protocol: scheme, format: :xml))
|
12
|
+
xml.settingsIconUrl("#{root_url(protocol: scheme)}images/seatbelt_icon.png")
|
13
|
+
xml.toolbarGrayIconUrl("#{root_url(protocol: scheme)}images/seatbelt_icon_gray.png")
|
14
|
+
xml.toolbarHighIconUrl("#{root_url(protocol: scheme)}images/seatbelt_icon_high.png")
|
15
|
+
xml.toolbarGrayBackground("#EBEBEB")
|
16
|
+
xml.toolbarGrayBorder("#666666")
|
17
|
+
xml.toolbarGrayText("#666666")
|
18
|
+
xml.toolbarLoginBackground("#EBEBEB")
|
19
|
+
xml.toolbarLoginBorder("#2B802B")
|
20
|
+
xml.toolbarLoginText("#2B802B")
|
21
|
+
xml.toolbarHighBackground("#EBEBEB")
|
22
|
+
xml.toolbarHighBorder("#F50012")
|
23
|
+
xml.toolbarHighText("#F50012")
|
24
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<h2><%=t :login_title %></h2>
|
2
|
+
|
3
|
+
<%= form_tag session_path do %>
|
4
|
+
<div class="row">
|
5
|
+
<% if checkid_request && !checkid_request.id_select %>
|
6
|
+
<strong><%=t :your_openid %>:</strong>
|
7
|
+
<%= checkid_request.identity %>
|
8
|
+
<span class="note"><%= link_to t(:cancel_this_request), cancel_path %></span>
|
9
|
+
<%= hidden_field_tag :login, extract_login_from_identifier(checkid_request.identity) %>
|
10
|
+
<% else %>
|
11
|
+
<%= label_tag :login, email_as_login? ? t(:email) : t(:login) %>
|
12
|
+
<%= text_field_tag :login %>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
15
|
+
<div class="row">
|
16
|
+
<%= label_tag :password, t(:password) %>
|
17
|
+
<%= password_field_tag :password %>
|
18
|
+
</div>
|
19
|
+
<div class="row">
|
20
|
+
<%= check_box_tag :remember_me %>
|
21
|
+
<%= label_tag :remember_me, t(:remember_me), :class => 'check' %>
|
22
|
+
</div>
|
23
|
+
<div>
|
24
|
+
<%= submit_tag t(:login_submit) %>
|
25
|
+
<span class="note"><%= link_to t(:i_forgot_my_password), forgot_password_path %></span>
|
26
|
+
</div>
|
27
|
+
<% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% errors = objects.map { |object| object.errors.full_messages.map { |msg| msg } } %>
|
2
|
+
<% if errors.any? %>
|
3
|
+
<div id="error_explanation">
|
4
|
+
<ul>
|
5
|
+
<% errors.each do |messages| %>
|
6
|
+
<% messages.each do |msg| %>
|
7
|
+
<li><%= msg %></li>
|
8
|
+
<% end %>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<h2><%=t :your_release_policy_for_site, :site => h(extract_host(site.url)) %></h2>
|
2
|
+
|
3
|
+
<%= error_messages_for site %>
|
4
|
+
|
5
|
+
<%= form_for site, :url => account_site_path(site), :method => :put do |f| %>
|
6
|
+
<div class="row space">
|
7
|
+
<%= f.label :persona_id, t(:persona_label) %>
|
8
|
+
<%= f.select :persona_id, current_account.personas.collect { |p| [ p.title, p.id ] } %>
|
9
|
+
<%= submit_tag t(:choose_persona_submit) %>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<h3>
|
13
|
+
<%=h site.persona.title %>
|
14
|
+
<span class="note">
|
15
|
+
<%= link_to t(:edit_persona_link), edit_account_persona_path(site.persona, :return => params[:persona_id] ? url_for(:persona_id => params[:persona_id]) : nil) %> <%=t :or %>
|
16
|
+
<%= link_to t(:create_new_persona_link), new_account_persona_path(:return => request.url) %>
|
17
|
+
</span>
|
18
|
+
</h3>
|
19
|
+
|
20
|
+
<table cellspacing="0">
|
21
|
+
<tr>
|
22
|
+
<th><%=t :property %></th>
|
23
|
+
<th><%=t :value %></th>
|
24
|
+
<th><%=t :disclosure %></th>
|
25
|
+
</tr>
|
26
|
+
<% site.release_policies.each do |release_policy| %>
|
27
|
+
<% property, type, value = release_policy.property, release_policy.type_identifier, site.persona.property(release_policy.type_identifier) %>
|
28
|
+
<tr>
|
29
|
+
<td><%= label_tag "site_properties_#{property}", property_label_text(property) %></td>
|
30
|
+
<td><%= label_tag "site_properties_#{property}", value unless value.blank? %></td>
|
31
|
+
<td>
|
32
|
+
<%= check_box_tag "site[properties][#{property}][value]", value, true, :id => "site_properties_#{property}" %>
|
33
|
+
<%= hidden_field_tag "site[properties][#{property}][type]", type, :id => "site_properties_type_#{property}" %>
|
34
|
+
</td>
|
35
|
+
</tr>
|
36
|
+
<% end %>
|
37
|
+
</table>
|
38
|
+
|
39
|
+
<div>
|
40
|
+
<%= submit_tag t(:update_release_policy_submit) %>
|
41
|
+
</div>
|
42
|
+
<% end %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<h2><%=t :my_trusted_sites %></h2>
|
2
|
+
|
3
|
+
<p><%=t :identity_request_answered_without_interaction %><br />
|
4
|
+
<%=t :alter_release_policies_here %></p>
|
5
|
+
|
6
|
+
<% unless @sites.empty? %>
|
7
|
+
<ul>
|
8
|
+
<% @sites.each do |site| %>
|
9
|
+
<li>
|
10
|
+
<h3><%=h extract_host(site.url) %> <span class="note">(<%=h site.persona.title %>)</span></h3>
|
11
|
+
<div class="options">
|
12
|
+
<%= link_to t(:edit_link), edit_account_site_path(site) %>
|
13
|
+
<%= link_to t(:delete_link), account_site_path(site), :data => { :confirm => t(:really_want_to_delete_trust_for_site, :site => h(extract_host(site.url))) }, :method => :delete %>
|
14
|
+
</div>
|
15
|
+
</li>
|
16
|
+
<% end %>
|
17
|
+
</ul>
|
18
|
+
<% else %>
|
19
|
+
<p><%=t :no_entries_yet %></p>
|
20
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
Mime::Type.register("application/xrds+xml", :xrds)
|
@@ -0,0 +1,281 @@
|
|
1
|
+
de:
|
2
|
+
# account controller
|
3
|
+
thanks_for_signing_up_activation_link: Danke für Ihre Anmeldung! Wir haben Ihnen eine E-Mail mit einem Aktivierungslink geschickt.
|
4
|
+
thanks_for_signing_up: Danke für Ihre Anmeldung!
|
5
|
+
activation_link_resent: Wir haben Ihnen eine E-Mail mit einem Aktivierungslink geschickt.
|
6
|
+
profile_updated: Ihr Account wurde aktualisiert.
|
7
|
+
account_disabled: Ihr Account wurde deaktiviert.
|
8
|
+
entered_password_is_wrong: Das eingegebene Passwort ist falsch.
|
9
|
+
account_activated_login_now: Ihr Account wurde aktiviert - Sie können sich jetzt einloggen.
|
10
|
+
couldnt_find_account_with_code_create_new_one: Wir konnten keinen Account mit dem angegebenen Aktivierungscode finden. Bitte erstellen Sie einen neuen Account.
|
11
|
+
account_already_activated_please_login: Ihr Account wurde bereits aktiviert - bitte loggen Sie sich ein.
|
12
|
+
account_already_activated_or_missing: Der Account wurde bereits aktiviert oder existiert nicht.
|
13
|
+
password_has_been_changed: Ihr Passwort wurde geändert.
|
14
|
+
sorry_password_couldnt_be_changed: "Entschuldigung, Ihr Passwort konnte nicht geändert werden."
|
15
|
+
confirmation_of_new_password_invalid: Die Bestätigung des neuen Passworts war inkorrekt.
|
16
|
+
old_password_incorrect: Ihr altes Passwort ist falsch.
|
17
|
+
# account views
|
18
|
+
public_persona: Öffentliche Rolle
|
19
|
+
forgot_password_create_new_one: Sie haben Ihr Passwort vergessen? Hier können Sie ein neues setzen
|
20
|
+
account_created_but_not_activated_yet: Ihr OpenID-Account wurde angelegt. Er ist jedoch noch nicht aktiviert.
|
21
|
+
please_activate_it_by_clicking_the_following_link: "Bitte aktivieren Sie den Account, indem Sie auf den Link klicken"
|
22
|
+
my_profile: Mein Profil
|
23
|
+
login: Login
|
24
|
+
password: Passwort
|
25
|
+
my_password: Mein Passwort
|
26
|
+
old_password: Altes Passwort
|
27
|
+
new_password_minimum_6_characters: Neues Passwort <span class="note">(mindestens 6 Zeichen)</span>
|
28
|
+
password_confirmation: Passwort bestätigen
|
29
|
+
submit_update: Aktualisieren
|
30
|
+
my_yubikey: Mein Yubikey
|
31
|
+
your_account_is_associated_with_the_yubico_identity: Ihr Account ist mit der verbunden mit der Yubikey-Identität
|
32
|
+
yubikey_how_to_use: "Sie können den Yubikey benutzen, um sich zusätzlich zu Ihrem Passwort einzuloggen. Geben Sie einfach
|
33
|
+
Ihr Passwort und Ihr Yubico OTP (ohne Leerzeichen oder sonstige Trennzeichen) auf der Login-Seite ein."
|
34
|
+
remove_association: Assoziation entfernen.
|
35
|
+
your_yubikey_a_one_time_password: Ihr Yubikey <span class="note">(ein Yubico Einmalpasswort)</span>
|
36
|
+
your_yubikey_is_optional_for_login: Ihr Yubikey ist beim Login zur Zeit optional.
|
37
|
+
make_my_yubikey_optional: Meinen Yubikey beim Einloggen optional machen
|
38
|
+
your_yubikey_is_mandatory_for_login: Ihr Yubikey ist beim Login zur Zeit erforderlich.
|
39
|
+
make_my_yubikey_mandatory: Meinen Yubikey bei jedem Einloggen erfordern
|
40
|
+
associate_account_with_yubikey: Meinen Account mit diesem Yubikey verbinden
|
41
|
+
disable_my_account: Meinen Account deaktivieren
|
42
|
+
wont_be_possible_to_reclaim_identifier: Bitte beachten Sie, dass Sie Ihre aktuelle OpenID-Kennung nicht erneut verwenden können
|
43
|
+
confirm_by_entering_password: Bestätigen Sie bitte durch Eingabe Ihres Passworts
|
44
|
+
delete_my_account_and_data: Meinen Account und alle Daten löschen
|
45
|
+
|
46
|
+
signup_title: Anmelden
|
47
|
+
signup: Anmelden
|
48
|
+
resend_activation_email: Aktivierungsmail erneut zuschicken
|
49
|
+
|
50
|
+
# account mailer
|
51
|
+
please_activate_your_account: Bitte aktivieren Sie Ihren Account
|
52
|
+
your_request_for_a_new_password: Ihre Anfrage nach einem neuen Passwort
|
53
|
+
activation_link: Aktivierungslink
|
54
|
+
|
55
|
+
# consumer controller
|
56
|
+
immediate_request_failed_setup_needed: Immediate Request fehlgeschlagen - Einstellungen nötig
|
57
|
+
openid_transaction_cancelled: OpenID-Transaktion abgebrochen.
|
58
|
+
verification_of_identifier_failed: "Überprüfung von %{identifier} fehlgeschlagen: %{message}"
|
59
|
+
verification_failed_message: "Überprüfung fehlgeschlagen: %{message}"
|
60
|
+
verification_of_identifier_succeeded: Überprüfung von %{identifier} erfolgreich.
|
61
|
+
simple_registration_data_requested: Simple Registration Data wurde angefordert
|
62
|
+
but_none_was_returned: aber nichts wurde zurück geliefert.
|
63
|
+
but_got_no_response: aber es gab keine Antwort.
|
64
|
+
but_an_error_occured: "aber es trat ein Fehler auf:\n%{error_message}"
|
65
|
+
and_saved_at_the_identity_provider: und auf dem Server gespeichert.
|
66
|
+
the_following_data_were_sent: "Die folgenden Daten wurden gesendet:"
|
67
|
+
attribute_exchange_data_requested: Attribute Exchange-Daten wurden angefordert
|
68
|
+
attribute_exchange_store_requested: Attribute Exchange-Daten wurden gesendet
|
69
|
+
authentication_policies_requested: Authentifizierungsregeln wurden angefordert
|
70
|
+
and_server_reported_the_following: "und der Server antwortete Folgendes:"
|
71
|
+
but_the_server_did_not_report_one: aber der Server meldete keine.
|
72
|
+
authentication_time: Authentifizierungszeit
|
73
|
+
|
74
|
+
# consumer views
|
75
|
+
identifier: Kennung
|
76
|
+
verify: Überprüfen
|
77
|
+
use_immediate_mode: Immediate Modus benutzen
|
78
|
+
request_registration_data: SReg-Daten anfordern
|
79
|
+
request_attribute_exchange_data: AX-Daten anfordern (Fetch Modus)
|
80
|
+
store_attribute_exchange_data: AX-Daten senden (Store Modus)
|
81
|
+
request_pape: PAPE-Anfrage (Anti-Phishing Modus) senden
|
82
|
+
force_post: Die Transaktion mit HTTP POST durchführen
|
83
|
+
|
84
|
+
# info
|
85
|
+
questions_answers: Fragen? Antworten!
|
86
|
+
here_we_cover_openid_topics: Hier werden einige grundlegende OpenID-Themen behandelt.
|
87
|
+
openid_delegation: OpenID-Delegation
|
88
|
+
delegation_explanation: "Mit Hilfe von Delegation können Sie Ihre eigene Website oder Ihren Blog als OpenID-Kennung verwenden. Anfragen können
|
89
|
+
an diesen Server weiter geleitet werden, indem Sie folgendes HTML-Fragment in den <code><head></code>
|
90
|
+
Ihrer Website einbauen:"
|
91
|
+
get_your_openid: Holen Sie sich eine OpenID
|
92
|
+
openid_intro: "<p>OpenID ist ein Dienst für eine gemeinsame Identität, durch den Sie sich mit einer einzigen
|
93
|
+
digitalen Identität an unterschiedlichen Webseiten anmelden können. Dadurch benötigen Sie nicht mehr für jede Website
|
94
|
+
einen eigenen Benutzernamen und Passwort.</p>
|
95
|
+
<p>OpenID ist dezentral, kostenlos und ein offener Standard. Es erlaubt Ihnen zu entscheiden, wie viele und welche
|
96
|
+
persönlichen Angaben Sie anderen Webseiten übermitteln.</p>"
|
97
|
+
openid_intro_link: "<p>Legen Sie los und %{signup_link}.</p>"
|
98
|
+
signup_for_an_openid: melden Sie sich für eine OpenID an
|
99
|
+
login_to_proceed: Bitte loggen Sie sich ein, um fort zu fahren
|
100
|
+
host_requests_identification_you_need_to_login: "%{host} möchte Ihre Identität ermitteln. Dafür müssen Sie sich einloggen."
|
101
|
+
login_intro: "Um sich einzuloggen, gehen Sie bitte zu <strong>%{login_url}</strong>. Die Seite, die Sie gerade sehen,
|
102
|
+
ist <strong>als Schutz vor Phishing-Attacken und Identitätsklau</strong> gedacht
|
103
|
+
und sollte keine Links enthalten.<br />Falls hier Links auftauchen, geben Sie uns bitte Bescheid, wer Sie auf diese Seite
|
104
|
+
geleitet hat."
|
105
|
+
|
106
|
+
# nav
|
107
|
+
nav_identity: Identität
|
108
|
+
nav_profile: Account
|
109
|
+
nav_personas: Rollen
|
110
|
+
nav_trusted_sites: Websites
|
111
|
+
logout: ausloggen
|
112
|
+
current_verification_request: aktuelle Prüfanfrage
|
113
|
+
login_link: Einloggen
|
114
|
+
signup_link: Anmelden
|
115
|
+
help: Hilfe
|
116
|
+
get_help: Hilfe erhalten
|
117
|
+
openid_consumer_testsuite_title: OpenID Consumer Testsuite
|
118
|
+
relying_party_title: Vertrauende Gegenstelle
|
119
|
+
|
120
|
+
# passwords controller
|
121
|
+
password_reset_link_has_been_sent: Ein Link zum Zurücksetzen des Passwortes wurde an Ihre E-Mail-Adresse geschickt.
|
122
|
+
could_not_find_user_with_email_address: Konnte keinen User mit dieser E-Mail-Adresse finden.
|
123
|
+
password_reset: Das Passwort wurde zurück gesetzt.
|
124
|
+
password_mismatch: Das Passwort stimmt nicht überein.
|
125
|
+
password_cannot_be_blank: Das Passwort kann nicht leer sein.
|
126
|
+
reset_code_invalid_try_again: Entschuldigung, der Code zum Zurücksetzen des Passworts ist falsch. Bitte prüfen Sie den Code und versuchen Sie es noch einmal.
|
127
|
+
|
128
|
+
# passwords views
|
129
|
+
reset_password: Passwort zurück setzen
|
130
|
+
forgot_password_title: Passwort vergessen
|
131
|
+
please_enter_email: Bitte geben Sie Ihre E-Mail-Adresse ein
|
132
|
+
submit_send: Senden
|
133
|
+
|
134
|
+
# personas controller
|
135
|
+
persona_successfully_created: Die Rolle wurde erfolgreich angelegt.
|
136
|
+
persona_updated: Die Rolle wurde aktualisiert.
|
137
|
+
persona_cannot_be_deleted: Diese Rolle kann nicht gelöscht werden.
|
138
|
+
|
139
|
+
# personas views
|
140
|
+
edit_your_persona: Bearbeiten Sie Ihre Rolle “%{title}”
|
141
|
+
personal_information: Persönliche Angaben
|
142
|
+
professional_information: Berufliche Angaben
|
143
|
+
phone: Telefon
|
144
|
+
instant_messaging: Instant Messaging
|
145
|
+
other_information: Weitere Angaben
|
146
|
+
|
147
|
+
nickname: Nickname
|
148
|
+
email: E-Mail
|
149
|
+
address: Adresse
|
150
|
+
postcode: Postleitzahl
|
151
|
+
city: Stadt
|
152
|
+
state: Bundesland
|
153
|
+
country: Land
|
154
|
+
language: Sprache
|
155
|
+
timezone: Zeitzone
|
156
|
+
gender: Geschlecht
|
157
|
+
company_name: Firma
|
158
|
+
job_title: Job-Bezeichnung
|
159
|
+
phone_home: Tel. privat
|
160
|
+
phone_mobile: Tel. mobil
|
161
|
+
phone_fax: Fax
|
162
|
+
phone_work: Tel. geschäftlich
|
163
|
+
biography: Biographie
|
164
|
+
title: Titel
|
165
|
+
fullname: Vor- und Nachname
|
166
|
+
birth_date: Geburtsdatum
|
167
|
+
address_business: Adresse
|
168
|
+
address_additional: Weitere
|
169
|
+
address_additional_business: Weitere
|
170
|
+
postcode_business: Postleitzahl
|
171
|
+
city_business: Stadt
|
172
|
+
state_business: Bundesland
|
173
|
+
country_business: Land
|
174
|
+
im_aim: AIM
|
175
|
+
im_icq: ICQ
|
176
|
+
im_msn: MSN
|
177
|
+
im_yahoo: Yahoo
|
178
|
+
im_jabber: Jabber
|
179
|
+
im_skype: Skype
|
180
|
+
image_url: Bild-URL
|
181
|
+
website_url: URL der Website
|
182
|
+
blog_url: Blog-URL
|
183
|
+
dob: Geburtsdatum
|
184
|
+
date_of_birth: Geburtsdatum
|
185
|
+
|
186
|
+
my_personas_title: Meine Rollen
|
187
|
+
personas_intro: "Sie können in Ihrem Account mehrere verschiedene Rollen nutzen. Zum Beispiel können Sie eine
|
188
|
+
Rolle privat nutzen und eine fürs Geschäftliche. Wenn eine Gegenstelle Informationen anfordert können Sie
|
189
|
+
auswählen, aus welcher Rolle Ihre Daten übernommen werden."
|
190
|
+
edit: bearbeiten
|
191
|
+
delete: löschen
|
192
|
+
really_want_to_delete_persona: Wollen Sie die Rolle ”%{title}” wirklich löschen?
|
193
|
+
create_a_new_persona: neue Rolle anlegen
|
194
|
+
create_a_new_persona_title: Neue Rolle anlegen
|
195
|
+
|
196
|
+
# sessions controller
|
197
|
+
you_are_logged_in: Sie sind jetzt eingeloggt.
|
198
|
+
account_not_yet_activated: Ihr Account wurde noch nicht aktiviert.
|
199
|
+
login_incorrect: Benutzer nicht vorhanden
|
200
|
+
password_incorrect: Falsches Passwort
|
201
|
+
you_are_now_logged_out: Sie sind jetzt ausgeloggt.
|
202
|
+
account_deactivated: Ihr Account ist deaktiviert.
|
203
|
+
|
204
|
+
# sessions views
|
205
|
+
login_title: Einloggen
|
206
|
+
your_openid: Ihre OpenID
|
207
|
+
cancel_this_request: diese Anfrage abbrechen
|
208
|
+
remember_me: Merken
|
209
|
+
login_submit: Einloggen
|
210
|
+
i_forgot_my_password: Ich habe mein Passwort vergessen
|
211
|
+
|
212
|
+
# server controller
|
213
|
+
this_is_openid_not_a_human_resource: Dies ist ein OpenID-Server-Endpunkt und keine von Menschen lesbare Ressource.
|
214
|
+
identity_verification_request_invalid: Die Anfrage zur Identitätsprüfung ist ungültig.
|
215
|
+
service_provider_requires_reauthentication_last_login_too_long_ago: Der Dienstanbieter erfordert eine erneute Authentifizierung, da Ihr letzter Login zu lange her war.
|
216
|
+
login_to_verify_identity: Bitte loggen Sie sich ein, um Ihre Identität zu bestätigen.
|
217
|
+
|
218
|
+
# server views
|
219
|
+
identity_request_from_host: Identitätsanfrage von %{host}
|
220
|
+
identity_request_missing_persona: Bitte %{create_link}, um die Identitätsanfrage zu beantworten.
|
221
|
+
trust_root_requests_some_personal_data: "%{trust_root} verlangt persönliche Angaben."
|
222
|
+
trust_root_sends_some_personal_data: "%{trust_root} sendet persönliche Angaben:"
|
223
|
+
trust_root_requires_authentication: "%{trust_root} verlangt Ihre Autorisierung."
|
224
|
+
select_information_to_submit: Bitte wählen Sie die Angaben aus, die Sie übermitteln möchten.
|
225
|
+
select_information_to_accept: Bitte wählen Sie die Angaben aus, die Sie akzeptieren möchten.
|
226
|
+
attributes_are_shown_from_persona: Die folgenden Angaben stammen aus Ihrer Rolle %{persona}.
|
227
|
+
attributes_will_be_added_to_persona: Die Werte werden in Ihre Rolle %{persona} übernommen (%{choose_link}).
|
228
|
+
to_submit_other_values_you_can_edit_or_choose: Um andere Werte zu übermitteln können Sie %{edit_link} oder %{choose_link}.
|
229
|
+
create_persona_link: erstellen Sie eine Rolle
|
230
|
+
edit_persona_link: die Rolle bearbeiten
|
231
|
+
choose_other_persona: eine andere Rolle auswählen
|
232
|
+
choose_persona_title: Wählen Sie eine Rolle
|
233
|
+
choose_persona_submit: Rolle auswählen
|
234
|
+
create_new_persona_link: neue Rolle anlegen
|
235
|
+
requested_information_title: Verlangte Angaben
|
236
|
+
sent_information_title: Gesendete Angaben
|
237
|
+
disclosure: freigeben
|
238
|
+
accept: akzeptieren
|
239
|
+
current: aktueller Wert
|
240
|
+
required: benötigt
|
241
|
+
optional: optional
|
242
|
+
not_supported: nicht unterstützt
|
243
|
+
trust_site_only_this_time: Dieser Website einmal vertrauen
|
244
|
+
always_trust_site: Dieser Website immer vertrauen
|
245
|
+
approve_request: Anfrage bestätigen
|
246
|
+
cancel_request: Anfrage widerrufen
|
247
|
+
|
248
|
+
# sites controllers
|
249
|
+
release_policy_for_site_updated: Die Richtlinie für diese Website wurde aktualisiert.
|
250
|
+
|
251
|
+
# sites views
|
252
|
+
edit_link: bearbeiten
|
253
|
+
delete_link: löschen
|
254
|
+
or: oder
|
255
|
+
your_release_policy_for_site: Ihre Vertrauensrichtlinien für %{site}
|
256
|
+
persona_label: Rolle
|
257
|
+
property: Eigenschaft
|
258
|
+
value: Wert
|
259
|
+
update_release_policy_submit: Richtlinie aktualisieren
|
260
|
+
identity_request_answered_without_interaction: Identitätsanfragen der folgenden Websites werden ohne Nachfrage akzeptiert.
|
261
|
+
alter_release_policies_here: Sie können Ihre Richtlinien für diese Websites hier ändern.
|
262
|
+
really_want_to_delete_trust_for_site: Wollen Sie die Vertrauensstellung für %{site} wirklich löschen?
|
263
|
+
no_entries_yet: Es gibt noch keine Einträge.
|
264
|
+
ext0: Ext0
|
265
|
+
ext1: Ext1
|
266
|
+
ext2: Ext2
|
267
|
+
|
268
|
+
# yubikey controller
|
269
|
+
account_associated_with_yubico_identity: Ihr Account wurde mit Ihrer Yubico-Identität verknüpft.
|
270
|
+
sorry_yubico_one_time_password_incorrect: Entschuldigung, das angegebene Yubico-Einmalpasswort ist falsch.
|
271
|
+
account_disassociated_from_yubico_identity: Ihr Account wurde von der Yubico-Identität gelöst.
|
272
|
+
|
273
|
+
|
274
|
+
# AR
|
275
|
+
activerecord:
|
276
|
+
attributes:
|
277
|
+
persona:
|
278
|
+
title: Titel
|
279
|
+
account:
|
280
|
+
email: E-Mail
|
281
|
+
public_persona: Öffentliche Rolle
|