ecm_user_area 0.0.1.pre

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.
Files changed (47) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +27 -0
  4. data/app/admin/users.rb +20 -0
  5. data/app/controllers/ecm/user_area/confirmations_controller.rb +3 -0
  6. data/app/controllers/ecm/user_area/passwords_controller.rb +3 -0
  7. data/app/controllers/ecm/user_area/registrations_controller.rb +3 -0
  8. data/app/controllers/ecm/user_area/sessions_controller.rb +3 -0
  9. data/app/controllers/ecm/user_area/unlocks_controller.rb +3 -0
  10. data/app/helpers/ecm/user_area_helper.rb +5 -0
  11. data/app/mailers/ecm/user_area/mailer.rb +4 -0
  12. data/app/models/user.rb +13 -0
  13. data/app/views/ecm/user_area/_navigation.html.erb +9 -0
  14. data/app/views/ecm/user_area/confirmations/new.de.html.erb +16 -0
  15. data/app/views/ecm/user_area/confirmations/new.en.html.erb +16 -0
  16. data/app/views/ecm/user_area/mailer/confirmation_instructions.de.html.erb +5 -0
  17. data/app/views/ecm/user_area/mailer/confirmation_instructions.en.html.erb +5 -0
  18. data/app/views/ecm/user_area/mailer/reset_password_instructions.de.html.erb +8 -0
  19. data/app/views/ecm/user_area/mailer/reset_password_instructions.en.html.erb +8 -0
  20. data/app/views/ecm/user_area/mailer/unlock_instructions.de.html.erb +7 -0
  21. data/app/views/ecm/user_area/mailer/unlock_instructions.en.html.erb +7 -0
  22. data/app/views/ecm/user_area/passwords/edit.de.html.erb +19 -0
  23. data/app/views/ecm/user_area/passwords/edit.en.html.erb +19 -0
  24. data/app/views/ecm/user_area/passwords/new.de.html.erb +15 -0
  25. data/app/views/ecm/user_area/passwords/new.en.html.erb +15 -0
  26. data/app/views/ecm/user_area/registrations/edit.de.html.erb +27 -0
  27. data/app/views/ecm/user_area/registrations/edit.en.html.erb +27 -0
  28. data/app/views/ecm/user_area/registrations/new.de.html.erb +17 -0
  29. data/app/views/ecm/user_area/registrations/new.en.html.erb +17 -0
  30. data/app/views/ecm/user_area/sessions/new.de.html.erb +15 -0
  31. data/app/views/ecm/user_area/sessions/new.en.html.erb +15 -0
  32. data/app/views/ecm/user_area/shared/_links.de.erb +25 -0
  33. data/app/views/ecm/user_area/shared/_links.en.erb +25 -0
  34. data/app/views/ecm/user_area/unlocks/new.en.html.erb +16 -0
  35. data/config/locales/de.yml +26 -0
  36. data/config/locales/en.yml +26 -0
  37. data/db/migrate/001_devise_create_users.rb +47 -0
  38. data/lib/ecm/user_area/configuration.rb +16 -0
  39. data/lib/ecm/user_area/engine.rb +11 -0
  40. data/lib/ecm/user_area/routing.rb +19 -0
  41. data/lib/ecm/user_area/version.rb +5 -0
  42. data/lib/ecm_user_area.rb +13 -0
  43. data/lib/generators/ecm/user_area/install/install_generator.rb +15 -0
  44. data/lib/generators/ecm/user_area/install/templates/ecm_user_area.rb +3 -0
  45. data/lib/generators/ecm/user_area/locales/locales_generator.rb +17 -0
  46. data/lib/tasks/ecm_user_area_tasks.rake +4 -0
  47. metadata +441 -0
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2013 Roberto Vasquez Angel
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,3 @@
1
+ = ECM Module Template
2
+
3
+ This project rocks and uses MIT-LICENSE.
data/Rakefile ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'EcmUserArea'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+
24
+
25
+
26
+ Bundler::GemHelper.install_tasks
27
+
@@ -0,0 +1,20 @@
1
+ ActiveAdmin.register User do
2
+ index do
3
+ column :email
4
+ column :current_sign_in_at
5
+ column :last_sign_in_at
6
+ column :sign_in_count
7
+ default_actions
8
+ end
9
+
10
+ filter :email
11
+
12
+ form do |f|
13
+ f.inputs "User Details" do
14
+ f.input :email
15
+ f.input :password
16
+ f.input :password_confirmation
17
+ end
18
+ f.actions
19
+ end
20
+ end
@@ -0,0 +1,3 @@
1
+ class Ecm::UserArea::ConfirmationsController < Devise::ConfirmationsController
2
+ include RailsTools::I18nController
3
+ end
@@ -0,0 +1,3 @@
1
+ class Ecm::UserArea::PasswordsController < Devise::PasswordsController
2
+ include RailsTools::I18nController
3
+ end
@@ -0,0 +1,3 @@
1
+ class Ecm::UserArea::RegistrationsController < Devise::RegistrationsController
2
+ include RailsTools::I18nController
3
+ end
@@ -0,0 +1,3 @@
1
+ class Ecm::UserArea::SessionsController < Devise::SessionsController
2
+ include RailsTools::I18nController
3
+ end
@@ -0,0 +1,3 @@
1
+ class Ecm::UserArea::UnlocksController < Devise::UnlocksController
2
+ include RailsTools::I18nController
3
+ end
@@ -0,0 +1,5 @@
1
+ module Ecm::UserAreaHelper
2
+ def render_user_navigation
3
+ render :partial => 'ecm/user_area/navigation'
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ module Ecm::UserArea
2
+ class Mailer < Devise::Mailer
3
+ end
4
+ end
@@ -0,0 +1,13 @@
1
+ class User < ActiveRecord::Base
2
+ # Include default devise modules. Others available are:
3
+ # :token_authenticatable and :omniauthable
4
+ devise :confirmable, :database_authenticatable, :lockable, :registerable,
5
+ :recoverable, :rememberable, :timeoutable, :trackable, :validatable
6
+
7
+ # Setup accessible (or protected) attributes for your model
8
+ attr_accessible :email, :password, :password_confirmation, :remember_me
9
+
10
+ def devise_mailer
11
+ Ecm::UserArea::Mailer
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ <ul class="nav">
2
+ <% if user_signed_in? %>
3
+ <li><%= link_to t('ecm.user_area.actions.registration.edit'), edit_user_registration_path %></li>
4
+ <li><%= link_to t('ecm.user_area.actions.sign_out'), destroy_user_session_path, :method => :delete %></li>
5
+ <% else %>
6
+ <li><%= link_to t('ecm.user_area.actions.sign_in'), new_user_session_path %></li>
7
+ <li><%= link_to t('ecm.user_area.actions.registration.new'), new_user_registration_path %></li>
8
+ <% end %>
9
+ </ul>
@@ -0,0 +1,16 @@
1
+ <h2>Bestätigungsanweisungen erneut versenden</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f| %>
4
+ <%= f.error_notification %>
5
+ <%= f.full_error :confirmation_token %>
6
+
7
+ <div class="form-inputs">
8
+ <%= f.input :email, :required => true, :autofocus => true %>
9
+ </div>
10
+
11
+ <div class="form-actions">
12
+ <%= f.button :submit, "Bestätigungsanweisungen erneut versenden", :class=>'btn btn-primary' %>
13
+ </div>
14
+ <% end %>
15
+
16
+ <%= render "ecm/user_area/shared/links" %>
@@ -0,0 +1,16 @@
1
+ <h2>Resend confirmation instructions</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f| %>
4
+ <%= f.error_notification %>
5
+ <%= f.full_error :confirmation_token %>
6
+
7
+ <div class="form-inputs">
8
+ <%= f.input :email, :required => true, :autofocus => true %>
9
+ </div>
10
+
11
+ <div class="form-actions">
12
+ <%= f.button :submit, "Resend confirmation instructions", :class=>'btn btn-primary' %>
13
+ </div>
14
+ <% end %>
15
+
16
+ <%= render "ecm/user_area/shared/links" %>
@@ -0,0 +1,5 @@
1
+ <p>Willkommen <%= @resource.email %>!</p>
2
+
3
+ <p>Sie können Ihre E-Mail-Konto über den Link unten bestätigen:</p>
4
+
5
+ <p><%= link_to 'Bestätigen Sie Ihr Konto', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token, :i18n_locale => I18n.locale) %></p>
@@ -0,0 +1,5 @@
1
+ <p>Welcome <%= @email %>!</p>
2
+
3
+ <p>You can confirm your account email through the link below:</p>
4
+
5
+ <p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token, :i18n_locale => I18n.locale) %></p>
@@ -0,0 +1,8 @@
1
+ <p>Hallo <%= @resource.email %>!</p>
2
+
3
+ <p>Jemand hat einen Link zu ändern Sie Ihres Kennworts angefordert wird, und Sie können dies über den Link unten tun.</p>
4
+
5
+ <p><%= link_to 'Mein Passwort ändern', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %></p>
6
+
7
+ <p>Ignorieren Sie diese E-Mail, wenn Sie dies nicht angefordert haben.</p>
8
+ <p>Ihr Passwort wird sich nicht ändern, bis Sie auf den Link zugreifen und ein Neues erstellen.</p>
@@ -0,0 +1,8 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Someone has requested a link to change your password. You can do this through the link below.</p>
4
+
5
+ <p><%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %></p>
6
+
7
+ <p>If you didn't request this, please ignore this email.</p>
8
+ <p>Your password won't change until you access the link above and create a new one.</p>
@@ -0,0 +1,7 @@
1
+ <p>Hallo <%= @resource.email %>!</p>
2
+
3
+ <p>Ihr Konto ist durch eine übermäßige Anzahl an erfolglosen Login-Versuchen gesperrt.</p>
4
+
5
+ <p>Klicken Sie auf den untenstehenden Link, um Ihren Account freizuschalten:</p>
6
+
7
+ <p><%= link_to 'Meinen Account freischalten', unlock_url(@resource, :unlock_token => @resource.unlock_token) %></p>
@@ -0,0 +1,7 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Your account has been locked due to an excessive number of unsuccessful sign in attempts.</p>
4
+
5
+ <p>Click the link below to unlock your account:</p>
6
+
7
+ <p><%= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token) %></p>
@@ -0,0 +1,19 @@
1
+ <h2>Mein Passwort ändern</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <%= f.input :reset_password_token, :as => :hidden %>
7
+ <%= f.full_error :reset_password_token %>
8
+
9
+ <div class="form-inputs">
10
+ <%= f.input :password, :label => "Neues Passwort", :required => true, :autofocus => true %>
11
+ <%= f.input :password_confirmation, :label => "Bestätigen Sie Ihr neues Passwort", :required => true %>
12
+ </div>
13
+
14
+ <div class="form-actions">
15
+ <%= f.button :submit, "Mein Passwort ändern", :class=>'btn btn-primary' %>
16
+ </div>
17
+ <% end %>
18
+
19
+ <%= render "ecm/user_area/shared/links" %>
@@ -0,0 +1,19 @@
1
+ <h2>Change your password</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <%= f.input :reset_password_token, :as => :hidden %>
7
+ <%= f.full_error :reset_password_token %>
8
+
9
+ <div class="form-inputs">
10
+ <%= f.input :password, :label => "New password", :required => true, :autofocus => true %>
11
+ <%= f.input :password_confirmation, :label => "Confirm your new password", :required => true %>
12
+ </div>
13
+
14
+ <div class="form-actions">
15
+ <%= f.button :submit, "Change my password", :class=>'btn btn-primary' %>
16
+ </div>
17
+ <% end %>
18
+
19
+ <%= render "ecm/user_area/shared/links" %>
@@ -0,0 +1,15 @@
1
+ <h2>Passwort vergessen?</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="form-inputs">
7
+ <%= f.input :email, :required => true, :autofocus => true %>
8
+ </div>
9
+
10
+ <div class="form-actions">
11
+ <%= f.button :submit, "Anweisungen zum zurücksetzen anfordern", :class=>'btn btn-primary' %>
12
+ </div>
13
+ <% end %>
14
+
15
+ <%= render "ecm/user_area/shared/links" %>
@@ -0,0 +1,15 @@
1
+ <h2>Forgot your password?</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="form-inputs">
7
+ <%= f.input :email, :required => true, :autofocus => true %>
8
+ </div>
9
+
10
+ <div class="form-actions">
11
+ <%= f.button :submit, "Send me reset password instructions", :class=>'btn btn-primary' %>
12
+ </div>
13
+ <% end %>
14
+
15
+ <%= render "ecm/user_area/shared/links" %>
@@ -0,0 +1,27 @@
1
+ <h2><%= resource_name.to_s.humanize %> bearbeiten</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="form-inputs">
7
+ <%= f.input :email, :required => true, :autofocus => true %>
8
+
9
+ <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
10
+ <p>Currently waiting confirmation for: <%= resource.unconfirmed_email %></p>
11
+ <% end %>
12
+
13
+ <%= f.input :password, :autocomplete => "off", :hint => "leer lassen, falls Sie es nicht ändern möchten", :required => false %>
14
+ <%= f.input :password_confirmation, :required => false %>
15
+ <%= f.input :current_password, :hint => "Wir brauchen Ihr aktuelles Passwort, um Ihre Änderungen zu bestätigen", :required => true %>
16
+ </div>
17
+
18
+ <div class="form-actions">
19
+ <%= f.button :submit, "Aktualisieren", :class=>'btn btn-primary' %>
20
+ </div>
21
+ <% end %>
22
+
23
+ <h3>Mein Konto kündigen</h3>
24
+
25
+ <p>Unzufrieden? <%= link_to "Mein Konto kündigen", registration_path(resource_name), :data => { :confirm => "Sind Sie sicher?" }, :method => :delete, :class=>'btn btn-danger btn-mini' %>.</p>
26
+
27
+ <%= link_to "Zurück", :back %>
@@ -0,0 +1,27 @@
1
+ <h2>Edit <%= resource_name.to_s.humanize %></h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="form-inputs">
7
+ <%= f.input :email, :required => true, :autofocus => true %>
8
+
9
+ <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
10
+ <p>Currently waiting confirmation for: <%= resource.unconfirmed_email %></p>
11
+ <% end %>
12
+
13
+ <%= f.input :password, :autocomplete => "off", :hint => "leave it blank if you don't want to change it", :required => false %>
14
+ <%= f.input :password_confirmation, :required => false %>
15
+ <%= f.input :current_password, :hint => "we need your current password to confirm your changes", :required => true %>
16
+ </div>
17
+
18
+ <div class="form-actions">
19
+ <%= f.button :submit, "Update", :class=>'btn btn-primary' %>
20
+ </div>
21
+ <% end %>
22
+
23
+ <h3>Cancel my account</h3>
24
+
25
+ <p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete, :class=>'btn btn-danger' %>.</p>
26
+
27
+ <%= link_to "Back", :back %>
@@ -0,0 +1,17 @@
1
+ <h2>Registrieren</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="form-inputs">
7
+ <%= f.input :email, :required => true, :autofocus => true %>
8
+ <%= f.input :password, :required => true %>
9
+ <%= f.input :password_confirmation, :required => true %>
10
+ </div>
11
+
12
+ <div class="form-actions">
13
+ <%= f.button :submit, "Registrieren", :class=>'btn btn-primary' %>
14
+ </div>
15
+ <% end %>
16
+
17
+ <%= render "ecm/user_area/shared/links" %>
@@ -0,0 +1,17 @@
1
+ <h2>Sign up</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="form-inputs">
7
+ <%= f.input :email, :required => true, :autofocus => true %>
8
+ <%= f.input :password, :required => true %>
9
+ <%= f.input :password_confirmation, :required => true %>
10
+ </div>
11
+
12
+ <div class="form-actions">
13
+ <%= f.button :submit, "Sign up", :class=>'btn btn-primary' %>
14
+ </div>
15
+ <% end %>
16
+
17
+ <%= render "ecm/user_area/shared/links" %>
@@ -0,0 +1,15 @@
1
+ <h2>Anmeldung</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
4
+ <div class="form-inputs">
5
+ <%= f.input :email, :required => false, :autofocus => true %>
6
+ <%= f.input :password, :required => false %>
7
+ <%= f.input :remember_me, :as => :boolean if devise_mapping.rememberable? %>
8
+ </div>
9
+
10
+ <div class="form-actions">
11
+ <%= f.button :submit, "Anmelden", :class=>'btn btn-primary' %>
12
+ </div>
13
+ <% end %>
14
+
15
+ <%= render "ecm/user_area/shared/links" %>
@@ -0,0 +1,15 @@
1
+ <h2>Sign in</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
4
+ <div class="form-inputs">
5
+ <%= f.input :email, :required => false, :autofocus => true %>
6
+ <%= f.input :password, :required => false %>
7
+ <%= f.input :remember_me, :as => :boolean if devise_mapping.rememberable? %>
8
+ </div>
9
+
10
+ <div class="form-actions">
11
+ <%= f.button :submit, "Sign in", :class=>'btn btn-primary' %>
12
+ </div>
13
+ <% end %>
14
+
15
+ <%= render "ecm/user_area/shared/links" %>
@@ -0,0 +1,25 @@
1
+ <%- if controller_name != 'sessions' %>
2
+ <%= link_to "Anmelden", new_session_path(resource_name) %><br />
3
+ <% end -%>
4
+
5
+ <%- if devise_mapping.registerable? && controller_name != 'registrations' %>
6
+ <%= link_to "Registrieren", new_registration_path(resource_name) %><br />
7
+ <% end -%>
8
+
9
+ <%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
10
+ <%= link_to "Passwort vergessen?", new_password_path(resource_name) %><br />
11
+ <% end -%>
12
+
13
+ <%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
14
+ <%= link_to "Keine Bestätigungsanweisungen erhalten?", new_confirmation_path(resource_name) %><br />
15
+ <% end -%>
16
+
17
+ <%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
18
+ <%= link_to "Keine Entsperranweisungen erhalten?", new_unlock_path(resource_name) %><br />
19
+ <% end -%>
20
+
21
+ <%- if devise_mapping.omniauthable? %>
22
+ <%- resource_class.omniauth_providers.each do |provider| %>
23
+ <%= link_to "Mit #{provider.to_s.titleize} anmelden", omniauth_authorize_path(resource_name, provider) %><br />
24
+ <% end -%>
25
+ <% end -%>
@@ -0,0 +1,25 @@
1
+ <%- if controller_name != 'sessions' %>
2
+ <%= link_to "Sign in", new_session_path(resource_name) %><br />
3
+ <% end -%>
4
+
5
+ <%- if devise_mapping.registerable? && controller_name != 'registrations' %>
6
+ <%= link_to "Sign up", new_registration_path(resource_name) %><br />
7
+ <% end -%>
8
+
9
+ <%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
10
+ <%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
11
+ <% end -%>
12
+
13
+ <%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
14
+ <%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
15
+ <% end -%>
16
+
17
+ <%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
18
+ <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
19
+ <% end -%>
20
+
21
+ <%- if devise_mapping.omniauthable? %>
22
+ <%- resource_class.omniauth_providers.each do |provider| %>
23
+ <%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
24
+ <% end -%>
25
+ <% end -%>
@@ -0,0 +1,16 @@
1
+ <h2>Resend unlock instructions</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post }) do |f| %>
4
+ <%= f.error_notification %>
5
+ <%= f.full_error :unlock_token %>
6
+
7
+ <div class="form-inputs">
8
+ <%= f.input :email, :required => true, :autofocus => true %>
9
+ </div>
10
+
11
+ <div class="form-actions">
12
+ <%= f.button :submit, "Resend unlock instructions", :class=>'btn btn-primary' %>
13
+ </div>
14
+ <% end %>
15
+
16
+ <%= render "devise/shared/links" %>
@@ -0,0 +1,26 @@
1
+ de:
2
+ activerecord:
3
+ attributes:
4
+ user:
5
+ created_at: Erstellt am
6
+ current_password: Aktuelles Passwort
7
+ current_sign_in_at: Angemeldet seit
8
+ email: E-Mail
9
+ last_sign_in_at: Zuletzt angemeldet
10
+ last_sign_in_ip: IP Adresse
11
+ password: Passwort
12
+ password_confirmation: Passwort wiederholen
13
+ remember_me: merken?
14
+ sign_in_count: Anmeldungen
15
+ models:
16
+ user:
17
+ one: Benutzer
18
+ other: Benutzer
19
+ ecm:
20
+ user_area:
21
+ actions:
22
+ registration:
23
+ edit: Mein Account
24
+ new: Registrieren
25
+ sign_in: Anmelden
26
+ sign_out: Abmelden
@@ -0,0 +1,26 @@
1
+ en:
2
+ activerecord:
3
+ attributes:
4
+ user:
5
+ created_at: created at
6
+ current_password: current password
7
+ current_sign_in_at: logged in since
8
+ email: e-mail
9
+ last_sign_in_at: last sign in at
10
+ last_sign_in_ip: last sign in ip
11
+ password: password
12
+ password_confirmation: password confirmation
13
+ remember_me: remember me?
14
+ sign_in_count: sign in count
15
+ models:
16
+ user:
17
+ one: user
18
+ other: users
19
+ ecm:
20
+ user_area:
21
+ actions:
22
+ registration:
23
+ edit: My account
24
+ new: Register
25
+ sign_in: Sign in
26
+ sign_out: Sign out
@@ -0,0 +1,47 @@
1
+ class DeviseCreateUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table(:users) do |t|
4
+ ## Database authenticatable
5
+ t.string :email, :null => false, :default => ""
6
+ t.string :encrypted_password, :null => false, :default => ""
7
+
8
+ ## Recoverable
9
+ t.string :reset_password_token
10
+ t.datetime :reset_password_sent_at
11
+
12
+ ## Rememberable
13
+ t.datetime :remember_created_at
14
+
15
+ ## Trackable
16
+ t.integer :sign_in_count, :default => 0
17
+ t.datetime :current_sign_in_at
18
+ t.datetime :last_sign_in_at
19
+ t.string :current_sign_in_ip
20
+ t.string :last_sign_in_ip
21
+
22
+ ## Confirmable
23
+ t.string :confirmation_token
24
+ t.datetime :confirmed_at
25
+ t.datetime :confirmation_sent_at
26
+ t.string :unconfirmed_email # Only if using reconfirmable
27
+
28
+ ## Lockable
29
+ t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
30
+ t.string :unlock_token # Only if unlock strategy is :email or :both
31
+ t.datetime :locked_at
32
+
33
+ ## Token authenticatable
34
+ # t.string :authentication_token
35
+
36
+
37
+ t.timestamps
38
+ end
39
+
40
+ add_index :users, :email, :unique => true
41
+ add_index :users, :reset_password_token, :unique => true
42
+ add_index :users, :confirmation_token, :unique => true
43
+ add_index :users, :unlock_token, :unique => true
44
+ # add_index :users, :authentication_token, :unique => true
45
+ end
46
+ end
47
+
@@ -0,0 +1,16 @@
1
+ require 'active_support/core_ext/module/delegation'
2
+ require 'active_support/core_ext/module/attribute_accessors'
3
+ require 'active_support/hash_with_indifferent_access'
4
+
5
+ module Ecm
6
+ module UserArea
7
+ module Configuration
8
+ def configure
9
+ yield self
10
+ end
11
+
12
+ # mattr_accessor :foo
13
+ # @@foo = nil
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ module Ecm
2
+ module UserArea
3
+ class Engine < ::Rails::Engine
4
+ initializer :ecm_user_area_engine do
5
+ ActiveAdmin.setup do |config|
6
+ config.load_paths << File.join(self.root, 'app/admin')
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ module Ecm
2
+ module UserArea
3
+ class Routing
4
+ def self.routes(router, options = {})
5
+ options.reverse_merge!({})
6
+
7
+ # router.resources :posts, :controller => 'ecm/user_area/posts'
8
+ router.devise_for :users, :controllers => {
9
+ :confirmations => 'ecm/user_area/confirmations',
10
+ :passwords => 'ecm/user_area/passwords',
11
+ :registrations => 'ecm/user_area/registrations',
12
+ :sessions => 'ecm/user_area/sessions',
13
+ :unlocks => 'ecm/user_area/unlocks'
14
+ }
15
+ end
16
+ end
17
+ end
18
+ end
19
+
@@ -0,0 +1,5 @@
1
+ module Ecm
2
+ module UserArea
3
+ VERSION = "0.0.1.pre"
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ require 'devise'
2
+ require 'devise-i18n'
3
+ require 'simple_form'
4
+
5
+ require 'ecm/user_area/engine'
6
+ require 'ecm/user_area/configuration'
7
+ require 'ecm/user_area/routing'
8
+
9
+ module Ecm
10
+ module UserArea
11
+ extend Configuration
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ module Ecm
2
+ module UserArea
3
+ module Generators
4
+ class InstallGenerator < Rails::Generators::Base
5
+ desc "Generates the intializer"
6
+
7
+ source_root File.expand_path('../templates', __FILE__)
8
+
9
+ def generate_intializer
10
+ copy_file "ecm_user_area.rb", "config/initializers/ecm_user_area.rb"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ Ecm::UserArea.configure do |config|
2
+ # config.foo = :bar
3
+ end
@@ -0,0 +1,17 @@
1
+ module Ecm
2
+ module UserArea
3
+ module Generators
4
+ class LocalesGenerator < Rails::Generators::Base
5
+ desc "Copies the locale files to your application"
6
+
7
+ source_root File.expand_path('../../../../../../config/locales', __FILE__)
8
+
9
+ def generate_locales
10
+ copy_file "en.yml", "config/locales/ecm.user_area.en.yml"
11
+ copy_file "de.yml", "config/locales/ecm.user_area.de.yml"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :ecm_user_area do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,441 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ecm_user_area
3
+ version: !ruby/object:Gem::Version
4
+ hash: 961915968
5
+ prerelease: 6
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ - pre
11
+ version: 0.0.1.pre
12
+ platform: ruby
13
+ authors:
14
+ - Roberto Vasquez Angel
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2013-04-09 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rails
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 21
30
+ segments:
31
+ - 3
32
+ - 2
33
+ - 13
34
+ version: 3.2.13
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: devise
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: devise-i18n
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :runtime
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: simple_form
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ type: :runtime
78
+ version_requirements: *id004
79
+ - !ruby/object:Gem::Dependency
80
+ name: sqlite3
81
+ prerelease: false
82
+ requirement: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 3
88
+ segments:
89
+ - 0
90
+ version: "0"
91
+ type: :development
92
+ version_requirements: *id005
93
+ - !ruby/object:Gem::Dependency
94
+ name: thin
95
+ prerelease: false
96
+ requirement: &id006 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ hash: 3
102
+ segments:
103
+ - 0
104
+ version: "0"
105
+ type: :development
106
+ version_requirements: *id006
107
+ - !ruby/object:Gem::Dependency
108
+ name: yard
109
+ prerelease: false
110
+ requirement: &id007 !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ hash: 3
116
+ segments:
117
+ - 0
118
+ version: "0"
119
+ type: :development
120
+ version_requirements: *id007
121
+ - !ruby/object:Gem::Dependency
122
+ name: activeadmin
123
+ prerelease: false
124
+ requirement: &id008 !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ hash: 3
130
+ segments:
131
+ - 0
132
+ version: "0"
133
+ type: :development
134
+ version_requirements: *id008
135
+ - !ruby/object:Gem::Dependency
136
+ name: sass-rails
137
+ prerelease: false
138
+ requirement: &id009 !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ hash: 3
144
+ segments:
145
+ - 0
146
+ version: "0"
147
+ type: :development
148
+ version_requirements: *id009
149
+ - !ruby/object:Gem::Dependency
150
+ name: coffee-rails
151
+ prerelease: false
152
+ requirement: &id010 !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ hash: 3
158
+ segments:
159
+ - 0
160
+ version: "0"
161
+ type: :development
162
+ version_requirements: *id010
163
+ - !ruby/object:Gem::Dependency
164
+ name: i18n_routing
165
+ prerelease: false
166
+ requirement: &id011 !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ hash: 3
172
+ segments:
173
+ - 0
174
+ version: "0"
175
+ type: :development
176
+ version_requirements: *id011
177
+ - !ruby/object:Gem::Dependency
178
+ name: therubyracer
179
+ prerelease: false
180
+ requirement: &id012 !ruby/object:Gem::Requirement
181
+ none: false
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ hash: 3
186
+ segments:
187
+ - 0
188
+ version: "0"
189
+ type: :development
190
+ version_requirements: *id012
191
+ - !ruby/object:Gem::Dependency
192
+ name: less-rails
193
+ prerelease: false
194
+ requirement: &id013 !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ hash: 3
200
+ segments:
201
+ - 0
202
+ version: "0"
203
+ type: :development
204
+ version_requirements: *id013
205
+ - !ruby/object:Gem::Dependency
206
+ name: twitter-bootstrap-rails
207
+ prerelease: false
208
+ requirement: &id014 !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ hash: 3
214
+ segments:
215
+ - 0
216
+ version: "0"
217
+ type: :development
218
+ version_requirements: *id014
219
+ - !ruby/object:Gem::Dependency
220
+ name: localeapp
221
+ prerelease: false
222
+ requirement: &id015 !ruby/object:Gem::Requirement
223
+ none: false
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ hash: 3
228
+ segments:
229
+ - 0
230
+ version: "0"
231
+ type: :development
232
+ version_requirements: *id015
233
+ - !ruby/object:Gem::Dependency
234
+ name: capybara
235
+ prerelease: false
236
+ requirement: &id016 !ruby/object:Gem::Requirement
237
+ none: false
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ hash: 3
242
+ segments:
243
+ - 0
244
+ version: "0"
245
+ type: :development
246
+ version_requirements: *id016
247
+ - !ruby/object:Gem::Dependency
248
+ name: rspec-rails
249
+ prerelease: false
250
+ requirement: &id017 !ruby/object:Gem::Requirement
251
+ none: false
252
+ requirements:
253
+ - - ~>
254
+ - !ruby/object:Gem::Version
255
+ hash: 3
256
+ segments:
257
+ - 2
258
+ - 0
259
+ version: "2.0"
260
+ type: :development
261
+ version_requirements: *id017
262
+ - !ruby/object:Gem::Dependency
263
+ name: shoulda-matchers
264
+ prerelease: false
265
+ requirement: &id018 !ruby/object:Gem::Requirement
266
+ none: false
267
+ requirements:
268
+ - - ">="
269
+ - !ruby/object:Gem::Version
270
+ hash: 3
271
+ segments:
272
+ - 0
273
+ version: "0"
274
+ type: :development
275
+ version_requirements: *id018
276
+ - !ruby/object:Gem::Dependency
277
+ name: factory_girl_rails
278
+ prerelease: false
279
+ requirement: &id019 !ruby/object:Gem::Requirement
280
+ none: false
281
+ requirements:
282
+ - - ~>
283
+ - !ruby/object:Gem::Version
284
+ hash: 15
285
+ segments:
286
+ - 1
287
+ - 0
288
+ version: "1.0"
289
+ type: :development
290
+ version_requirements: *id019
291
+ - !ruby/object:Gem::Dependency
292
+ name: guard-rails
293
+ prerelease: false
294
+ requirement: &id020 !ruby/object:Gem::Requirement
295
+ none: false
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ hash: 3
300
+ segments:
301
+ - 0
302
+ version: "0"
303
+ type: :development
304
+ version_requirements: *id020
305
+ - !ruby/object:Gem::Dependency
306
+ name: rb-inotify
307
+ prerelease: false
308
+ requirement: &id021 !ruby/object:Gem::Requirement
309
+ none: false
310
+ requirements:
311
+ - - ~>
312
+ - !ruby/object:Gem::Version
313
+ hash: 25
314
+ segments:
315
+ - 0
316
+ - 9
317
+ version: "0.9"
318
+ type: :development
319
+ version_requirements: *id021
320
+ - !ruby/object:Gem::Dependency
321
+ name: guard-rspec
322
+ prerelease: false
323
+ requirement: &id022 !ruby/object:Gem::Requirement
324
+ none: false
325
+ requirements:
326
+ - - ">="
327
+ - !ruby/object:Gem::Version
328
+ hash: 3
329
+ segments:
330
+ - 0
331
+ version: "0"
332
+ type: :development
333
+ version_requirements: *id022
334
+ - !ruby/object:Gem::Dependency
335
+ name: guard-bundler
336
+ prerelease: false
337
+ requirement: &id023 !ruby/object:Gem::Requirement
338
+ none: false
339
+ requirements:
340
+ - - ">="
341
+ - !ruby/object:Gem::Version
342
+ hash: 3
343
+ segments:
344
+ - 0
345
+ version: "0"
346
+ type: :development
347
+ version_requirements: *id023
348
+ description: ECM User Area.
349
+ email:
350
+ - roberto@vasquez-angel.de
351
+ executables: []
352
+
353
+ extensions: []
354
+
355
+ extra_rdoc_files: []
356
+
357
+ files:
358
+ - app/controllers/ecm/user_area/passwords_controller.rb
359
+ - app/controllers/ecm/user_area/confirmations_controller.rb
360
+ - app/controllers/ecm/user_area/sessions_controller.rb
361
+ - app/controllers/ecm/user_area/unlocks_controller.rb
362
+ - app/controllers/ecm/user_area/registrations_controller.rb
363
+ - app/helpers/ecm/user_area_helper.rb
364
+ - app/views/ecm/user_area/mailer/reset_password_instructions.en.html.erb
365
+ - app/views/ecm/user_area/mailer/reset_password_instructions.de.html.erb
366
+ - app/views/ecm/user_area/mailer/unlock_instructions.de.html.erb
367
+ - app/views/ecm/user_area/mailer/unlock_instructions.en.html.erb
368
+ - app/views/ecm/user_area/mailer/confirmation_instructions.de.html.erb
369
+ - app/views/ecm/user_area/mailer/confirmation_instructions.en.html.erb
370
+ - app/views/ecm/user_area/sessions/new.en.html.erb
371
+ - app/views/ecm/user_area/sessions/new.de.html.erb
372
+ - app/views/ecm/user_area/unlocks/new.en.html.erb
373
+ - app/views/ecm/user_area/_navigation.html.erb
374
+ - app/views/ecm/user_area/confirmations/new.en.html.erb
375
+ - app/views/ecm/user_area/confirmations/new.de.html.erb
376
+ - app/views/ecm/user_area/passwords/new.en.html.erb
377
+ - app/views/ecm/user_area/passwords/edit.en.html.erb
378
+ - app/views/ecm/user_area/passwords/edit.de.html.erb
379
+ - app/views/ecm/user_area/passwords/new.de.html.erb
380
+ - app/views/ecm/user_area/registrations/new.en.html.erb
381
+ - app/views/ecm/user_area/registrations/edit.en.html.erb
382
+ - app/views/ecm/user_area/registrations/edit.de.html.erb
383
+ - app/views/ecm/user_area/registrations/new.de.html.erb
384
+ - app/views/ecm/user_area/shared/_links.en.erb
385
+ - app/views/ecm/user_area/shared/_links.de.erb
386
+ - app/mailers/ecm/user_area/mailer.rb
387
+ - app/models/user.rb
388
+ - app/admin/users.rb
389
+ - config/locales/de.yml
390
+ - config/locales/en.yml
391
+ - db/migrate/001_devise_create_users.rb
392
+ - lib/generators/ecm/user_area/locales/locales_generator.rb
393
+ - lib/generators/ecm/user_area/install/install_generator.rb
394
+ - lib/generators/ecm/user_area/install/templates/ecm_user_area.rb
395
+ - lib/tasks/ecm_user_area_tasks.rake
396
+ - lib/ecm_user_area.rb
397
+ - lib/ecm/user_area/engine.rb
398
+ - lib/ecm/user_area/version.rb
399
+ - lib/ecm/user_area/routing.rb
400
+ - lib/ecm/user_area/configuration.rb
401
+ - MIT-LICENSE
402
+ - Rakefile
403
+ - README.rdoc
404
+ homepage: https://github.com/robotex82/ecm_user_area
405
+ licenses: []
406
+
407
+ post_install_message:
408
+ rdoc_options: []
409
+
410
+ require_paths:
411
+ - lib
412
+ required_ruby_version: !ruby/object:Gem::Requirement
413
+ none: false
414
+ requirements:
415
+ - - ">="
416
+ - !ruby/object:Gem::Version
417
+ hash: 3
418
+ segments:
419
+ - 0
420
+ version: "0"
421
+ required_rubygems_version: !ruby/object:Gem::Requirement
422
+ none: false
423
+ requirements:
424
+ - - ">"
425
+ - !ruby/object:Gem::Version
426
+ hash: 25
427
+ segments:
428
+ - 1
429
+ - 3
430
+ - 1
431
+ version: 1.3.1
432
+ requirements: []
433
+
434
+ rubyforge_project:
435
+ rubygems_version: 1.8.24
436
+ signing_key:
437
+ specification_version: 3
438
+ summary: ECM User Area.
439
+ test_files: []
440
+
441
+ has_rdoc: