ecm_user_area 0.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
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: