tiny_core_users 0.0.1
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.
- data/lib/tiny_core/acts/user.rb +78 -0
 - data/lib/tiny_core/controllers/admin_users.rb +18 -0
 - data/lib/tiny_core/controllers/application.rb +70 -0
 - data/lib/tiny_core/controllers/password_resets.rb +52 -0
 - data/lib/tiny_core/controllers/user_sessions.rb +30 -0
 - data/lib/tiny_core/controllers/users.rb +58 -0
 - data/lib/tiny_core/mailers/password_resets_mailer.rb +9 -0
 - data/lib/tiny_core/models/guest.rb +7 -0
 - data/lib/tiny_core/role.rb +33 -0
 - data/lib/tiny_core/role/admin.rb +17 -0
 - data/lib/tiny_core/role/guest.rb +15 -0
 - data/lib/tiny_core_users.rb +10 -0
 - data/rails_generators/tiny_user/templates/admin/users/_index.html.erb +22 -0
 - data/rails_generators/tiny_user/templates/admin/users/index.html.erb +11 -0
 - data/rails_generators/tiny_user/templates/admin_users_controller.rb +3 -0
 - data/rails_generators/tiny_user/templates/create_users.rb +29 -0
 - data/rails_generators/tiny_user/templates/password_resets/edit.html.erb +17 -0
 - data/rails_generators/tiny_user/templates/password_resets/index.html.erb +1 -0
 - data/rails_generators/tiny_user/templates/password_resets/new.html.erb +12 -0
 - data/rails_generators/tiny_user/templates/password_resets_controller.rb +3 -0
 - data/rails_generators/tiny_user/templates/password_resets_mailer/password_reset_instructions.de.erb +10 -0
 - data/rails_generators/tiny_user/templates/password_resets_mailer/password_reset_instructions.erb +10 -0
 - data/rails_generators/tiny_user/templates/role/admin.rb +3 -0
 - data/rails_generators/tiny_user/templates/role/guest.rb +3 -0
 - data/rails_generators/tiny_user/templates/role/user.rb +3 -0
 - data/rails_generators/tiny_user/templates/user.rb +3 -0
 - data/rails_generators/tiny_user/templates/user_session.rb +2 -0
 - data/rails_generators/tiny_user/templates/user_sessions/new.html.erb +19 -0
 - data/rails_generators/tiny_user/templates/user_sessions_controller.rb +3 -0
 - data/rails_generators/tiny_user/templates/users/edit.html.erb +18 -0
 - data/rails_generators/tiny_user/templates/users/new.html.erb +34 -0
 - data/rails_generators/tiny_user/templates/users/show.html.erb +36 -0
 - data/rails_generators/tiny_user/templates/users_controller.rb +3 -0
 - data/rails_generators/tiny_user/templates/users_de.yml +83 -0
 - data/rails_generators/tiny_user/templates/users_en.yml +83 -0
 - data/rails_generators/tiny_user/tiny_user_generator.rb +46 -0
 - metadata +102 -0
 
| 
         @@ -0,0 +1,78 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module TinyCore
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Acts
         
     | 
| 
      
 3 
     | 
    
         
            +
                module User
         
     | 
| 
      
 4 
     | 
    
         
            +
                  module ActsMethods
         
     | 
| 
      
 5 
     | 
    
         
            +
                    def acts_as_user
         
     | 
| 
      
 6 
     | 
    
         
            +
                      acts_as_authentic
         
     | 
| 
      
 7 
     | 
    
         
            +
                      validates_presence_of :full_name
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                      attr_protected :role
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                      extend ClassMethods
         
     | 
| 
      
 12 
     | 
    
         
            +
                      include InstanceMethods
         
     | 
| 
      
 13 
     | 
    
         
            +
                    end
         
     | 
| 
      
 14 
     | 
    
         
            +
                  end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  module ClassMethods
         
     | 
| 
      
 17 
     | 
    
         
            +
                    def from_param!(param)
         
     | 
| 
      
 18 
     | 
    
         
            +
                      find(param)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                    def paginate_for_list(filter, options = {})
         
     | 
| 
      
 22 
     | 
    
         
            +
                      with_search_scope(filter) do
         
     | 
| 
      
 23 
     | 
    
         
            +
                        paginate(options.merge(:order => 'users.created_at DESC'))
         
     | 
| 
      
 24 
     | 
    
         
            +
                      end
         
     | 
| 
      
 25 
     | 
    
         
            +
                    end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  protected
         
     | 
| 
      
 28 
     | 
    
         
            +
                    def with_search_scope(filter, &block)
         
     | 
| 
      
 29 
     | 
    
         
            +
                      conditions = filter.empty? ? nil : ['users.full_name LIKE ? OR users.email LIKE ?', "%#{filter.query}%", "%#{filter.query}%"]
         
     | 
| 
      
 30 
     | 
    
         
            +
                      with_scope :find => { :conditions => conditions } do
         
     | 
| 
      
 31 
     | 
    
         
            +
                        yield
         
     | 
| 
      
 32 
     | 
    
         
            +
                      end
         
     | 
| 
      
 33 
     | 
    
         
            +
                    end
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                  module InstanceMethods
         
     | 
| 
      
 37 
     | 
    
         
            +
                    def after_initialize
         
     | 
| 
      
 38 
     | 
    
         
            +
                      if self.role.blank?
         
     | 
| 
      
 39 
     | 
    
         
            +
                        extend ::Role::User
         
     | 
| 
      
 40 
     | 
    
         
            +
                      else
         
     | 
| 
      
 41 
     | 
    
         
            +
                        extend "::Role::#{self.role.classify}".constantize
         
     | 
| 
      
 42 
     | 
    
         
            +
                      end
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    def deliver_password_reset_instructions!
         
     | 
| 
      
 46 
     | 
    
         
            +
                      reset_perishable_token!
         
     | 
| 
      
 47 
     | 
    
         
            +
                      PasswordResetsMailer.deliver_password_reset_instructions(self)
         
     | 
| 
      
 48 
     | 
    
         
            +
                    end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                    def reset_password!(password, password_confirmation)
         
     | 
| 
      
 51 
     | 
    
         
            +
                      # We need to check for blank password explicitly, because authlogic only performs that check on create.
         
     | 
| 
      
 52 
     | 
    
         
            +
                      if password.blank? || password_confirmation.blank?
         
     | 
| 
      
 53 
     | 
    
         
            +
                        errors.add(:password, I18n.t('authlogic.error_messages.password_blank'))
         
     | 
| 
      
 54 
     | 
    
         
            +
                        return false
         
     | 
| 
      
 55 
     | 
    
         
            +
                      else
         
     | 
| 
      
 56 
     | 
    
         
            +
                        self.password = password
         
     | 
| 
      
 57 
     | 
    
         
            +
                        self.password_confirmation = password_confirmation
         
     | 
| 
      
 58 
     | 
    
         
            +
                        save
         
     | 
| 
      
 59 
     | 
    
         
            +
                      end
         
     | 
| 
      
 60 
     | 
    
         
            +
                    end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                    def name
         
     | 
| 
      
 63 
     | 
    
         
            +
                      full_name
         
     | 
| 
      
 64 
     | 
    
         
            +
                    end
         
     | 
| 
      
 65 
     | 
    
         
            +
                    
         
     | 
| 
      
 66 
     | 
    
         
            +
                    def guest?
         
     | 
| 
      
 67 
     | 
    
         
            +
                      false
         
     | 
| 
      
 68 
     | 
    
         
            +
                    end
         
     | 
| 
      
 69 
     | 
    
         
            +
                  end
         
     | 
| 
      
 70 
     | 
    
         
            +
                  
         
     | 
| 
      
 71 
     | 
    
         
            +
                  def self.included(receiver)
         
     | 
| 
      
 72 
     | 
    
         
            +
                    receiver.extend ActsMethods
         
     | 
| 
      
 73 
     | 
    
         
            +
                  end
         
     | 
| 
      
 74 
     | 
    
         
            +
                end
         
     | 
| 
      
 75 
     | 
    
         
            +
              end
         
     | 
| 
      
 76 
     | 
    
         
            +
            end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            ActiveRecord::Base.send :include, TinyCore::Acts::User
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module TinyCore
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Controllers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module AdminUsers
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def self.included(receiver)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    receiver.before_filter :login_required
         
     | 
| 
      
 6 
     | 
    
         
            +
                    receiver.before_filter :can_see_all_users!
         
     | 
| 
      
 7 
     | 
    
         
            +
                  end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def index
         
     | 
| 
      
 10 
     | 
    
         
            +
                    @search_filter = SearchFilter.new(params[:search_filter])
         
     | 
| 
      
 11 
     | 
    
         
            +
                    @users = User.paginate_for_list(@search_filter, :page => params[:page])
         
     | 
| 
      
 12 
     | 
    
         
            +
                    render :update do |page|
         
     | 
| 
      
 13 
     | 
    
         
            +
                      page.replace_html 'users', :partial => 'index'
         
     | 
| 
      
 14 
     | 
    
         
            +
                    end if request.xhr?
         
     | 
| 
      
 15 
     | 
    
         
            +
                  end
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,70 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module TinyCore
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Controllers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Application
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def self.included(receiver)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    receiver.helper_method :current_user_session, :current_user, :logged_in?
         
     | 
| 
      
 6 
     | 
    
         
            +
                  end
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                protected
         
     | 
| 
      
 9 
     | 
    
         
            +
                  def method_missing(method, *args)
         
     | 
| 
      
 10 
     | 
    
         
            +
                    if method.to_s =~ /^can_.*\?$/
         
     | 
| 
      
 11 
     | 
    
         
            +
                      if current_user.send(method, *args)
         
     | 
| 
      
 12 
     | 
    
         
            +
                        yield if block_given?
         
     | 
| 
      
 13 
     | 
    
         
            +
                        true
         
     | 
| 
      
 14 
     | 
    
         
            +
                      else
         
     | 
| 
      
 15 
     | 
    
         
            +
                        false
         
     | 
| 
      
 16 
     | 
    
         
            +
                      end
         
     | 
| 
      
 17 
     | 
    
         
            +
                    elsif method.to_s =~ /^can_.*\!$/
         
     | 
| 
      
 18 
     | 
    
         
            +
                      if current_user.send(method.to_s.gsub(/\!$/, '?'), *args)
         
     | 
| 
      
 19 
     | 
    
         
            +
                        yield if block_given?
         
     | 
| 
      
 20 
     | 
    
         
            +
                      else
         
     | 
| 
      
 21 
     | 
    
         
            +
                        flash[:error] = t('flash.error.access_denied')
         
     | 
| 
      
 22 
     | 
    
         
            +
                        redirect_to root_path
         
     | 
| 
      
 23 
     | 
    
         
            +
                        false
         
     | 
| 
      
 24 
     | 
    
         
            +
                      end
         
     | 
| 
      
 25 
     | 
    
         
            +
                    else
         
     | 
| 
      
 26 
     | 
    
         
            +
                      super
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                  def login_required
         
     | 
| 
      
 31 
     | 
    
         
            +
                    deny_access(I18n.t("flash.error.login_required"), login_path) unless logged_in?
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  def guest_required
         
     | 
| 
      
 35 
     | 
    
         
            +
                    deny_access(I18n.t("flash.error.guest_required")) if logged_in?
         
     | 
| 
      
 36 
     | 
    
         
            +
                  end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  def deny_access(message = nil, path = root_path)
         
     | 
| 
      
 39 
     | 
    
         
            +
                    store_location
         
     | 
| 
      
 40 
     | 
    
         
            +
                    flash[:error] = message || I18n.t("flash.error.access_denied")
         
     | 
| 
      
 41 
     | 
    
         
            +
                    redirect_to path
         
     | 
| 
      
 42 
     | 
    
         
            +
                    return false
         
     | 
| 
      
 43 
     | 
    
         
            +
                  end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                  def store_location
         
     | 
| 
      
 46 
     | 
    
         
            +
                    session[:return_to] = request.request_uri
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                  def redirect_back_or_default(default)
         
     | 
| 
      
 50 
     | 
    
         
            +
                    redirect_to(session[:return_to] || default)
         
     | 
| 
      
 51 
     | 
    
         
            +
                    session[:return_to] = nil
         
     | 
| 
      
 52 
     | 
    
         
            +
                  end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                  def logged_in?
         
     | 
| 
      
 55 
     | 
    
         
            +
                    !current_user.guest?
         
     | 
| 
      
 56 
     | 
    
         
            +
                  end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                private
         
     | 
| 
      
 59 
     | 
    
         
            +
                  def current_user_session
         
     | 
| 
      
 60 
     | 
    
         
            +
                    return @current_user_session if defined?(@current_user_session)
         
     | 
| 
      
 61 
     | 
    
         
            +
                    @current_user_session = UserSession.find
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                  def current_user
         
     | 
| 
      
 65 
     | 
    
         
            +
                    return @current_user if defined?(@current_user)
         
     | 
| 
      
 66 
     | 
    
         
            +
                    @current_user = (current_user_session && current_user_session.user) || Guest.new
         
     | 
| 
      
 67 
     | 
    
         
            +
                  end
         
     | 
| 
      
 68 
     | 
    
         
            +
                end
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,52 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module TinyCore
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Controllers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module PasswordResets
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def self.included(receiver)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    receiver.before_filter :load_user_using_perishable_token, :only => [:edit, :update]
         
     | 
| 
      
 6 
     | 
    
         
            +
                    receiver.before_filter :guest_required
         
     | 
| 
      
 7 
     | 
    
         
            +
                  end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def index
         
     | 
| 
      
 10 
     | 
    
         
            +
                    render
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  def new
         
     | 
| 
      
 14 
     | 
    
         
            +
                    render
         
     | 
| 
      
 15 
     | 
    
         
            +
                  end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                  def create
         
     | 
| 
      
 18 
     | 
    
         
            +
                    @user = User.find_by_email(params[:email])
         
     | 
| 
      
 19 
     | 
    
         
            +
                    if @user
         
     | 
| 
      
 20 
     | 
    
         
            +
                      @user.deliver_password_reset_instructions!
         
     | 
| 
      
 21 
     | 
    
         
            +
                      flash[:notice] = I18n.t("flash.notice.password_instructions_sent")
         
     | 
| 
      
 22 
     | 
    
         
            +
                      redirect_to password_resets_path
         
     | 
| 
      
 23 
     | 
    
         
            +
                    else
         
     | 
| 
      
 24 
     | 
    
         
            +
                      flash[:error] = I18n.t("flash.error.user_by_email_not_found")
         
     | 
| 
      
 25 
     | 
    
         
            +
                      render :action => :new
         
     | 
| 
      
 26 
     | 
    
         
            +
                    end
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  def edit
         
     | 
| 
      
 30 
     | 
    
         
            +
                    render
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  def update
         
     | 
| 
      
 34 
     | 
    
         
            +
                    if @user.reset_password!(params[:user][:password], params[:user][:password_confirmation])
         
     | 
| 
      
 35 
     | 
    
         
            +
                      flash[:notice] = I18n.t("flash.notice.password_updated")
         
     | 
| 
      
 36 
     | 
    
         
            +
                      redirect_to root_path
         
     | 
| 
      
 37 
     | 
    
         
            +
                    else
         
     | 
| 
      
 38 
     | 
    
         
            +
                      render :action => :edit
         
     | 
| 
      
 39 
     | 
    
         
            +
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                private
         
     | 
| 
      
 43 
     | 
    
         
            +
                  def load_user_using_perishable_token
         
     | 
| 
      
 44 
     | 
    
         
            +
                    @user = User.find_using_perishable_token(params[:id])
         
     | 
| 
      
 45 
     | 
    
         
            +
                    unless @user
         
     | 
| 
      
 46 
     | 
    
         
            +
                      flash[:error] = I18n.t("flash.error.user_could_not_be_located")
         
     | 
| 
      
 47 
     | 
    
         
            +
                      redirect_to login_path
         
     | 
| 
      
 48 
     | 
    
         
            +
                    end
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
              end
         
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module TinyCore
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Controllers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module UserSessions
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def self.included(receiver)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    receiver.before_filter :guest_required, :only => [ :new, :create ]
         
     | 
| 
      
 6 
     | 
    
         
            +
                    receiver.skip_before_filter :verify_authenticity_token, :only => :create
         
     | 
| 
      
 7 
     | 
    
         
            +
                  end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def new
         
     | 
| 
      
 10 
     | 
    
         
            +
                    @user_session = UserSession.new
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  def create
         
     | 
| 
      
 14 
     | 
    
         
            +
                    @user_session = UserSession.new(params[:user_session])
         
     | 
| 
      
 15 
     | 
    
         
            +
                    if @user_session.save
         
     | 
| 
      
 16 
     | 
    
         
            +
                      flash[:notice] = I18n.t("flash.notice.logged_in")
         
     | 
| 
      
 17 
     | 
    
         
            +
                      redirect_back_or_default root_path
         
     | 
| 
      
 18 
     | 
    
         
            +
                    else
         
     | 
| 
      
 19 
     | 
    
         
            +
                      render :action => :new
         
     | 
| 
      
 20 
     | 
    
         
            +
                    end
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                  def destroy
         
     | 
| 
      
 24 
     | 
    
         
            +
                    current_user_session.destroy
         
     | 
| 
      
 25 
     | 
    
         
            +
                    flash[:notice] = I18n.t("flash.notice.logged_out")
         
     | 
| 
      
 26 
     | 
    
         
            +
                    redirect_to login_path
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,58 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module TinyCore
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Controllers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Users
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def self.included(receiver)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    receiver.before_filter :login_required, :only => [:index, :show, :edit, :update]
         
     | 
| 
      
 6 
     | 
    
         
            +
                  end
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  def index
         
     | 
| 
      
 9 
     | 
    
         
            +
                    redirect_to account_path(current_user.current_account)
         
     | 
| 
      
 10 
     | 
    
         
            +
                  end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  def new
         
     | 
| 
      
 13 
     | 
    
         
            +
                    @user = User.new
         
     | 
| 
      
 14 
     | 
    
         
            +
                  end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  def create
         
     | 
| 
      
 17 
     | 
    
         
            +
                    if logged_in? && current_user.respond_to?(:current_account)
         
     | 
| 
      
 18 
     | 
    
         
            +
                      @user = current_user.current_account.users.build(params[:user])
         
     | 
| 
      
 19 
     | 
    
         
            +
                      @user.current_account = current_user.current_account
         
     | 
| 
      
 20 
     | 
    
         
            +
                    else
         
     | 
| 
      
 21 
     | 
    
         
            +
                      @user = User.new(params[:user])
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                    if @user.save
         
     | 
| 
      
 25 
     | 
    
         
            +
                      flash[:notice] = I18n.t('flash.notice.created_user')
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                      if logged_in?
         
     | 
| 
      
 28 
     | 
    
         
            +
                        @user.accounts << current_user.current_account if current_user.respond_to?(:current_account)
         
     | 
| 
      
 29 
     | 
    
         
            +
                        redirect_to new_user_path
         
     | 
| 
      
 30 
     | 
    
         
            +
                      else
         
     | 
| 
      
 31 
     | 
    
         
            +
                        redirect_back_or_default root_path
         
     | 
| 
      
 32 
     | 
    
         
            +
                      end
         
     | 
| 
      
 33 
     | 
    
         
            +
                    else
         
     | 
| 
      
 34 
     | 
    
         
            +
                      render :action => :new
         
     | 
| 
      
 35 
     | 
    
         
            +
                    end
         
     | 
| 
      
 36 
     | 
    
         
            +
                  end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  def show
         
     | 
| 
      
 39 
     | 
    
         
            +
                    @user = User.find(params[:id])
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  def edit
         
     | 
| 
      
 43 
     | 
    
         
            +
                    @user = User.find(params[:id])
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  def update
         
     | 
| 
      
 47 
     | 
    
         
            +
                    @user = User.find(params[:id])
         
     | 
| 
      
 48 
     | 
    
         
            +
                    if @user.update_attributes(params[:user])
         
     | 
| 
      
 49 
     | 
    
         
            +
                      flash[:notice] = I18n.t('flash.notice.updated_user')
         
     | 
| 
      
 50 
     | 
    
         
            +
                      redirect_to root_path
         
     | 
| 
      
 51 
     | 
    
         
            +
                    else
         
     | 
| 
      
 52 
     | 
    
         
            +
                      render :action => :edit
         
     | 
| 
      
 53 
     | 
    
         
            +
                    end
         
     | 
| 
      
 54 
     | 
    
         
            +
                  end
         
     | 
| 
      
 55 
     | 
    
         
            +
                end
         
     | 
| 
      
 56 
     | 
    
         
            +
              end
         
     | 
| 
      
 57 
     | 
    
         
            +
            end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,9 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class PasswordResetsMailer < ActionMailer::Base
         
     | 
| 
      
 2 
     | 
    
         
            +
              def password_reset_instructions(user)
         
     | 
| 
      
 3 
     | 
    
         
            +
                subject       I18n.t("password_reset_mailer.subject")
         
     | 
| 
      
 4 
     | 
    
         
            +
                from          "#{TinyCore::Application.name} <#{TinyCore::Config.email_sender_address}>"
         
     | 
| 
      
 5 
     | 
    
         
            +
                recipients    user.email
         
     | 
| 
      
 6 
     | 
    
         
            +
                sent_on       Time.now
         
     | 
| 
      
 7 
     | 
    
         
            +
                body          :edit_password_reset_path => edit_password_reset_path(user.perishable_token)
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module TinyCore
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Role
         
     | 
| 
      
 3 
     | 
    
         
            +
                module ClassMethods
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def allow(*things)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    things.each do |thing|
         
     | 
| 
      
 6 
     | 
    
         
            +
                      define_method "can_#{thing}?" do
         
     | 
| 
      
 7 
     | 
    
         
            +
                        true
         
     | 
| 
      
 8 
     | 
    
         
            +
                      end
         
     | 
| 
      
 9 
     | 
    
         
            +
                    end
         
     | 
| 
      
 10 
     | 
    
         
            +
                  end
         
     | 
| 
      
 11 
     | 
    
         
            +
                
         
     | 
| 
      
 12 
     | 
    
         
            +
                  def allow_if_owner(*things)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    things.each do |thing|
         
     | 
| 
      
 14 
     | 
    
         
            +
                      define_method "can_#{thing}?" do |model|
         
     | 
| 
      
 15 
     | 
    
         
            +
                        model.user == self
         
     | 
| 
      
 16 
     | 
    
         
            +
                      end
         
     | 
| 
      
 17 
     | 
    
         
            +
                    end
         
     | 
| 
      
 18 
     | 
    
         
            +
                  end
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
              
         
     | 
| 
      
 21 
     | 
    
         
            +
                def method_missing(method, *args)
         
     | 
| 
      
 22 
     | 
    
         
            +
                  if method.to_s =~ /^can_.*\?$/
         
     | 
| 
      
 23 
     | 
    
         
            +
                    false
         
     | 
| 
      
 24 
     | 
    
         
            +
                  else
         
     | 
| 
      
 25 
     | 
    
         
            +
                    super
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
              
         
     | 
| 
      
 29 
     | 
    
         
            +
                def self.included(base)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  base.extend ClassMethods
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # require all necessary files here
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/tiny_core/acts/user'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/tiny_core/controllers/application'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/tiny_core/controllers/admin_users'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/tiny_core/controllers/password_resets'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/tiny_core/controllers/user_sessions'
         
     | 
| 
      
 8 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/tiny_core/controllers/users'
         
     | 
| 
      
 9 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/tiny_core/mailers/password_resets_mailer'
         
     | 
| 
      
 10 
     | 
    
         
            +
            require File.dirname(__FILE__) + '/tiny_core/models/guest'
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <%= will_paginate @users %>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            <table class="list">
         
     | 
| 
      
 4 
     | 
    
         
            +
              <thead>
         
     | 
| 
      
 5 
     | 
    
         
            +
                <tr>
         
     | 
| 
      
 6 
     | 
    
         
            +
                  <th><%= t('.name') %></th>
         
     | 
| 
      
 7 
     | 
    
         
            +
                  <th><%= t('.email') %></th>
         
     | 
| 
      
 8 
     | 
    
         
            +
                  <th><%= t('.options') %></th>
         
     | 
| 
      
 9 
     | 
    
         
            +
                </tr>
         
     | 
| 
      
 10 
     | 
    
         
            +
              </thead>
         
     | 
| 
      
 11 
     | 
    
         
            +
              <tbody>
         
     | 
| 
      
 12 
     | 
    
         
            +
                <% @users.each do |user| %>
         
     | 
| 
      
 13 
     | 
    
         
            +
                  <tr>
         
     | 
| 
      
 14 
     | 
    
         
            +
                    <td><%= link_to highlight(user.full_name, @search_filter.query), user_path(user) %></td>
         
     | 
| 
      
 15 
     | 
    
         
            +
                    <td><%= mail_to user.email, highlight(user.email, @search_filter.query) %></td>
         
     | 
| 
      
 16 
     | 
    
         
            +
                    <td><%= link_to t(".edit"), edit_user_path(user) %></td>
         
     | 
| 
      
 17 
     | 
    
         
            +
                  </tr>
         
     | 
| 
      
 18 
     | 
    
         
            +
                <% end %>
         
     | 
| 
      
 19 
     | 
    
         
            +
              </tbody>
         
     | 
| 
      
 20 
     | 
    
         
            +
            </table>
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            <%= will_paginate @users %>
         
     | 
| 
         @@ -0,0 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <h2><%= t('.all_users') %></h2>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            <% if @users.empty? %>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <p><%= t('.no_users') %></p>
         
     | 
| 
      
 5 
     | 
    
         
            +
            <% else %>
         
     | 
| 
      
 6 
     | 
    
         
            +
              <%= render :partial => "/shared/filter", :locals => { :url => admin_users_path } %>
         
     | 
| 
      
 7 
     | 
    
         
            +
              
         
     | 
| 
      
 8 
     | 
    
         
            +
              <div id="users">
         
     | 
| 
      
 9 
     | 
    
         
            +
                <%= render :partial => "index" %>
         
     | 
| 
      
 10 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 11 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class CreateUsers < ActiveRecord::Migration
         
     | 
| 
      
 2 
     | 
    
         
            +
              def self.up
         
     | 
| 
      
 3 
     | 
    
         
            +
                create_table :users do |t|
         
     | 
| 
      
 4 
     | 
    
         
            +
                  t.string   :full_name,           :null => false
         
     | 
| 
      
 5 
     | 
    
         
            +
                  t.string   :email,               :null => false
         
     | 
| 
      
 6 
     | 
    
         
            +
                  t.string   :crypted_password,    :null => false
         
     | 
| 
      
 7 
     | 
    
         
            +
                  t.string   :password_salt,       :null => false
         
     | 
| 
      
 8 
     | 
    
         
            +
                  t.string   :persistence_token,   :null => false
         
     | 
| 
      
 9 
     | 
    
         
            +
                  t.string   :single_access_token, :null => false
         
     | 
| 
      
 10 
     | 
    
         
            +
                  t.string   :perishable_token,    :null => false
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  t.integer  :login_count,         :null => false, :default => 0
         
     | 
| 
      
 13 
     | 
    
         
            +
                  t.integer  :failed_login_count,  :null => false, :default => 0
         
     | 
| 
      
 14 
     | 
    
         
            +
                  t.datetime :last_request_at
         
     | 
| 
      
 15 
     | 
    
         
            +
                  t.datetime :current_login_at
         
     | 
| 
      
 16 
     | 
    
         
            +
                  t.datetime :last_login_at
         
     | 
| 
      
 17 
     | 
    
         
            +
                  t.string   :current_login_ip
         
     | 
| 
      
 18 
     | 
    
         
            +
                  t.string   :last_login_ip
         
     | 
| 
      
 19 
     | 
    
         
            +
                  
         
     | 
| 
      
 20 
     | 
    
         
            +
                  t.string   :role
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  t.timestamps
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              def self.down
         
     | 
| 
      
 27 
     | 
    
         
            +
                drop_table :users
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <h2><%= t('.change_password') %></h2>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            <% form_for @user, :url => password_reset_path, :method => :put, :html => { :class => 'form' } do |f| %>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <%= f.error_messages :header_message => t('.could_not_reset_password') %>
         
     | 
| 
      
 5 
     | 
    
         
            +
              
         
     | 
| 
      
 6 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 7 
     | 
    
         
            +
                <span class="label"><%= f.label :password, t('.password') %></span>
         
     | 
| 
      
 8 
     | 
    
         
            +
                <%= f.password_field :password %>
         
     | 
| 
      
 9 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 12 
     | 
    
         
            +
                <span class="label"><%= f.label :password_confirmation, t('.password_confirmation') %></span>
         
     | 
| 
      
 13 
     | 
    
         
            +
                <%= f.password_field :password_confirmation %>
         
     | 
| 
      
 14 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 15 
     | 
    
         
            +
              
         
     | 
| 
      
 16 
     | 
    
         
            +
              <p><%= f.submit t('.update') %></p>
         
     | 
| 
      
 17 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <p><%= t('.instructions') %></p>
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <h2><%= t('.forgot_password') %></h2>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            <p><%= t('.instructions') %></p>
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            <% form_tag password_resets_path do %>
         
     | 
| 
      
 6 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 7 
     | 
    
         
            +
                <span class="label"><label><%= t('.email') %></label></span>
         
     | 
| 
      
 8 
     | 
    
         
            +
                <%= text_field_tag "email" %>
         
     | 
| 
      
 9 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              <p><%= submit_tag t('.reset') %></p>
         
     | 
| 
      
 12 
     | 
    
         
            +
            <% end %>
         
     | 
    
        data/rails_generators/tiny_user/templates/password_resets_mailer/password_reset_instructions.de.erb
    ADDED
    
    | 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Hallo,
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Es wurde angefragt, Ihr <%= TinyCore::Application.name %> Passwort zu ändern. Falls Sie diese Anfrage nicht gestellt haben, ignorieren Sie bitte diese Mail. Falls Sie diese Anfrage gestellt haben, klicken Sie bitte auf folgenden Link:
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              http://<%= TinyCore::Config.host %><%= @edit_password_reset_path %>
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            Falls der Link nicht funktioniert, versuchen Sie bitte den Link in die Adressleiste Ihres Browsers zu kopieren.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            Viele Grüße,
         
     | 
| 
      
 10 
     | 
    
         
            +
            <%= TinyCore::Application.name %>
         
     | 
    
        data/rails_generators/tiny_user/templates/password_resets_mailer/password_reset_instructions.erb
    ADDED
    
    | 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Hello,
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            A request to reset your <%= TinyCore::Application.name %> password has been made. If you did not make this request, simply ignore this email. If you did make this request just click the link below:
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              http://<%= TinyCore::Config.host %><%= @edit_password_reset_path %>
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            If the above URL does not work try copying and pasting it into your browser.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            Sincerely,
         
     | 
| 
      
 10 
     | 
    
         
            +
            <%= TinyCore::Application.name %>
         
     | 
| 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <h2><%= t('.login') %></h2>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            <% form_for @user_session, :url => login_path, :html => { :class => 'form' } do |f| %>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <%= f.error_messages :header_message => t('.could_not_login') %>
         
     | 
| 
      
 5 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 6 
     | 
    
         
            +
                <span class="label"><%= f.label :email, t('.email') %></span>
         
     | 
| 
      
 7 
     | 
    
         
            +
                <%= f.text_field :email %>
         
     | 
| 
      
 8 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 9 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 10 
     | 
    
         
            +
                <span class="label"><%= f.label :password, t('.password') %></span>
         
     | 
| 
      
 11 
     | 
    
         
            +
                <%= f.password_field :password %>
         
     | 
| 
      
 12 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 15 
     | 
    
         
            +
                <%= f.check_box :remember_me %><%= f.label :remember_me, t('.remember_me') %>
         
     | 
| 
      
 16 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 17 
     | 
    
         
            +
              
         
     | 
| 
      
 18 
     | 
    
         
            +
              <p><%= f.submit t('.login') %> | <%= link_to t('.forgot_password'), new_password_reset_path %> | <%= link_to t('.register_instead'), new_user_path %></p>
         
     | 
| 
      
 19 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <h2><%= t('.edit_users_profile', :full_name => @user.full_name) %></h2>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            <% form_for @user, :html => { :class => 'form' } do |f| %>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <%= f.error_messages :header_message => t('.could_not_update_user') %>
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 7 
     | 
    
         
            +
                <span class="label"><%= f.label :full_name, t('.full_name'), :class => 'required' %></span>
         
     | 
| 
      
 8 
     | 
    
         
            +
                <%= f.text_field :full_name %>
         
     | 
| 
      
 9 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 12 
     | 
    
         
            +
                <span class="label"><%= f.label :email, t('.email_address'), :class => 'required' %></span>
         
     | 
| 
      
 13 
     | 
    
         
            +
                <span class="desc"><%= t('.the_email_address_is_used_for_notifications') %></span>
         
     | 
| 
      
 14 
     | 
    
         
            +
                <%= f.text_field :email %>
         
     | 
| 
      
 15 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 16 
     | 
    
         
            +
              
         
     | 
| 
      
 17 
     | 
    
         
            +
              <p><%= f.submit t('.update') %></p>
         
     | 
| 
      
 18 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -0,0 +1,34 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <h2><%= t('.create_new_account') %></h2>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            <% form_for @user, :html => { :class => 'form' } do |f| %>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <%= f.error_messages :header_message => t('.could_not_register_user') %>
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 7 
     | 
    
         
            +
                <span class="label"><%= f.label :full_name, t('.full_name'), :class => 'required' %></span>
         
     | 
| 
      
 8 
     | 
    
         
            +
                <%= f.text_field :full_name %>
         
     | 
| 
      
 9 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 10 
     | 
    
         
            +
              
         
     | 
| 
      
 11 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 12 
     | 
    
         
            +
                <span class="label"><%= f.label :email, t('.email_address'), :class => 'required' %></span>
         
     | 
| 
      
 13 
     | 
    
         
            +
                <span class="desc"><%= t('.the_email_address_is_used_for_notifications') %></span>
         
     | 
| 
      
 14 
     | 
    
         
            +
                <%= f.text_field :email %>
         
     | 
| 
      
 15 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 16 
     | 
    
         
            +
              
         
     | 
| 
      
 17 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 18 
     | 
    
         
            +
                <span class="label"><%= f.label :password, t('.password'), :class => 'required' %></span>
         
     | 
| 
      
 19 
     | 
    
         
            +
                <%= f.password_field :password %>
         
     | 
| 
      
 20 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 21 
     | 
    
         
            +
              
         
     | 
| 
      
 22 
     | 
    
         
            +
              <p class="form_item">
         
     | 
| 
      
 23 
     | 
    
         
            +
                <span class="label"><%= f.label :password_confirmation, t('.password_confirmation'), :class => 'required' %></span>
         
     | 
| 
      
 24 
     | 
    
         
            +
                <span class="desc"><%= t('.please_repeat_the_password_exactly_as_above') %></span>
         
     | 
| 
      
 25 
     | 
    
         
            +
                <%= f.password_field :password_confirmation %>
         
     | 
| 
      
 26 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 27 
     | 
    
         
            +
              
         
     | 
| 
      
 28 
     | 
    
         
            +
              <p>
         
     | 
| 
      
 29 
     | 
    
         
            +
                <%= f.submit t('.create_account') %>
         
     | 
| 
      
 30 
     | 
    
         
            +
                <% unless logged_in? %>
         
     | 
| 
      
 31 
     | 
    
         
            +
                  | <%= link_to t('.login_instead'), login_path %>
         
     | 
| 
      
 32 
     | 
    
         
            +
                <% end %>
         
     | 
| 
      
 33 
     | 
    
         
            +
              </p>
         
     | 
| 
      
 34 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -0,0 +1,36 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <h2><%= t('.users_profile', :full_name => @user.full_name) %></h2>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            <dl>
         
     | 
| 
      
 4 
     | 
    
         
            +
              <dt><%= t('.full_name') %></dt>
         
     | 
| 
      
 5 
     | 
    
         
            +
              <dd><%= @user.full_name %></dd>
         
     | 
| 
      
 6 
     | 
    
         
            +
              <% if current_user.can_see_email?(@user) %>
         
     | 
| 
      
 7 
     | 
    
         
            +
                <dt><%= t('.email') %></dt>
         
     | 
| 
      
 8 
     | 
    
         
            +
                <dd><%= @user.email %></dd>
         
     | 
| 
      
 9 
     | 
    
         
            +
              <% end %>
         
     | 
| 
      
 10 
     | 
    
         
            +
              <% if @user.respond_to?(:accounts) %>
         
     | 
| 
      
 11 
     | 
    
         
            +
                <dt><%= t('.accounts') %></dt>
         
     | 
| 
      
 12 
     | 
    
         
            +
                <dd>
         
     | 
| 
      
 13 
     | 
    
         
            +
                  <% if @user.accounts.empty? %>
         
     | 
| 
      
 14 
     | 
    
         
            +
                    <%= t('.no_accounts') %>
         
     | 
| 
      
 15 
     | 
    
         
            +
                  <% else %>
         
     | 
| 
      
 16 
     | 
    
         
            +
                    <ul>
         
     | 
| 
      
 17 
     | 
    
         
            +
                      <% @user.accounts.each do |account| %>
         
     | 
| 
      
 18 
     | 
    
         
            +
                        <li>
         
     | 
| 
      
 19 
     | 
    
         
            +
                          <% if current_user.can_see_account?(account) %>
         
     | 
| 
      
 20 
     | 
    
         
            +
                            <%= link_to account.name, account_path(account) %>
         
     | 
| 
      
 21 
     | 
    
         
            +
                          <% else %>
         
     | 
| 
      
 22 
     | 
    
         
            +
                            <%= account.name %>
         
     | 
| 
      
 23 
     | 
    
         
            +
                          <% end %>
         
     | 
| 
      
 24 
     | 
    
         
            +
                        </li>
         
     | 
| 
      
 25 
     | 
    
         
            +
                      <% end %>
         
     | 
| 
      
 26 
     | 
    
         
            +
                    </ul>
         
     | 
| 
      
 27 
     | 
    
         
            +
                  <% end %>
         
     | 
| 
      
 28 
     | 
    
         
            +
                </dd>
         
     | 
| 
      
 29 
     | 
    
         
            +
              <% end %>
         
     | 
| 
      
 30 
     | 
    
         
            +
            </dl>
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            <% if current_user.can_edit_profile?(@user) %>
         
     | 
| 
      
 33 
     | 
    
         
            +
              <ul class="action-list">
         
     | 
| 
      
 34 
     | 
    
         
            +
                <li><%= link_to t('.edit_profile'), edit_user_path(@user) %></li>
         
     | 
| 
      
 35 
     | 
    
         
            +
              </ul>
         
     | 
| 
      
 36 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -0,0 +1,83 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- 
         
     | 
| 
      
 2 
     | 
    
         
            +
            de: 
         
     | 
| 
      
 3 
     | 
    
         
            +
              admin: 
         
     | 
| 
      
 4 
     | 
    
         
            +
                users: 
         
     | 
| 
      
 5 
     | 
    
         
            +
                  index: 
         
     | 
| 
      
 6 
     | 
    
         
            +
                    accounts: Konten
         
     | 
| 
      
 7 
     | 
    
         
            +
                    all_users: "Alle Benutzer"
         
     | 
| 
      
 8 
     | 
    
         
            +
                    email: E-Mail
         
     | 
| 
      
 9 
     | 
    
         
            +
                    name: Name
         
     | 
| 
      
 10 
     | 
    
         
            +
                    no_users: "Keine Benutzer gefunden."
         
     | 
| 
      
 11 
     | 
    
         
            +
                    options: Optionen
         
     | 
| 
      
 12 
     | 
    
         
            +
              flash: 
         
     | 
| 
      
 13 
     | 
    
         
            +
                error: 
         
     | 
| 
      
 14 
     | 
    
         
            +
                  access_denied: "Zugriff verweigert"
         
     | 
| 
      
 15 
     | 
    
         
            +
                  guest_required: "Sie müssen ausgeloggt sein, um auf diese Seite zuzugreifen"
         
     | 
| 
      
 16 
     | 
    
         
            +
                  login_required: "Sie müssen eingeloggt sein, um auf diese Seite zuzugreifen"
         
     | 
| 
      
 17 
     | 
    
         
            +
                  user_by_email_not_found: "Es wurde kein Benutzer mit dieser E-Mail-Adresse gefunden"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  user_could_not_be_located: "Es tut uns leid, aber wir konnten den Benutzer nicht identifizieren. Bitte versuchen Sie die URL aus der E-Mail in die Adressleiste des Browsers zu kopieren oder starten Sie den Password-Vergessen-Prozess von vorne."
         
     | 
| 
      
 19 
     | 
    
         
            +
                notice: 
         
     | 
| 
      
 20 
     | 
    
         
            +
                  created_user: "Benutzer wurde erfolgreich erstellt"
         
     | 
| 
      
 21 
     | 
    
         
            +
                  logged_in: "Erfolgreich eingeloggt"
         
     | 
| 
      
 22 
     | 
    
         
            +
                  logged_out: "Erfolgreich ausgeloggt"
         
     | 
| 
      
 23 
     | 
    
         
            +
                  password_instructions_sent: "Anweisungen zur Änderung Ihres Passwortes wurden per E-Mail verschickt. Bitte prüfen Sie Ihren Posteingang."
         
     | 
| 
      
 24 
     | 
    
         
            +
                  password_updated: "Ihr Passwort wurde erfolgreich geändert"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  updated_user: "Benutzer wurde erfolgreich aktualisiert"
         
     | 
| 
      
 26 
     | 
    
         
            +
                password_reset_mailer: 
         
     | 
| 
      
 27 
     | 
    
         
            +
                  subject: "Anweisungen zur Änderung Ihres Passwortes"
         
     | 
| 
      
 28 
     | 
    
         
            +
              layouts: 
         
     | 
| 
      
 29 
     | 
    
         
            +
                accounts: Konten
         
     | 
| 
      
 30 
     | 
    
         
            +
                admin: Admin
         
     | 
| 
      
 31 
     | 
    
         
            +
                login: Login
         
     | 
| 
      
 32 
     | 
    
         
            +
                logout: Logout
         
     | 
| 
      
 33 
     | 
    
         
            +
                signup: Registrieren
         
     | 
| 
      
 34 
     | 
    
         
            +
                user_greeter: "Willkommen, {{user}}"
         
     | 
| 
      
 35 
     | 
    
         
            +
              password_resets: 
         
     | 
| 
      
 36 
     | 
    
         
            +
                edit: 
         
     | 
| 
      
 37 
     | 
    
         
            +
                  change_password: "Passwort ändern"
         
     | 
| 
      
 38 
     | 
    
         
            +
                  could_not_reset_password: "Konnte Passwort nicht zurücksetzen"
         
     | 
| 
      
 39 
     | 
    
         
            +
                  password: Passwort
         
     | 
| 
      
 40 
     | 
    
         
            +
                  password_confirmation: "Passwort bestätigen"
         
     | 
| 
      
 41 
     | 
    
         
            +
                  update: "Passwort ändern"
         
     | 
| 
      
 42 
     | 
    
         
            +
                index: 
         
     | 
| 
      
 43 
     | 
    
         
            +
                  instructions: "Bitte prüfen Sie Ihren Posteingang für Anweisungen zur Änderung Ihres Passwortes."
         
     | 
| 
      
 44 
     | 
    
         
            +
                new: 
         
     | 
| 
      
 45 
     | 
    
         
            +
                  email: E-Mail-Adresse
         
     | 
| 
      
 46 
     | 
    
         
            +
                  forgot_password: "Passwort vergessen"
         
     | 
| 
      
 47 
     | 
    
         
            +
                  instructions: "Füllen Sie untenstehendes Formular aus, um Ihr Passwort zurückzusetzen."
         
     | 
| 
      
 48 
     | 
    
         
            +
                  reset: "Passwort zurücksetzen"
         
     | 
| 
      
 49 
     | 
    
         
            +
              user_sessions: 
         
     | 
| 
      
 50 
     | 
    
         
            +
                new: 
         
     | 
| 
      
 51 
     | 
    
         
            +
                  could_not_login: "Login war nicht erfolgreich"
         
     | 
| 
      
 52 
     | 
    
         
            +
                  email: E-Mail
         
     | 
| 
      
 53 
     | 
    
         
            +
                  forgot_password: "Passwort vergessen?"
         
     | 
| 
      
 54 
     | 
    
         
            +
                  login: Login
         
     | 
| 
      
 55 
     | 
    
         
            +
                  password: Passwort
         
     | 
| 
      
 56 
     | 
    
         
            +
                  register_instead: "Noch nicht registriert?"
         
     | 
| 
      
 57 
     | 
    
         
            +
                  remember_me: "Eingeloggt bleiben"
         
     | 
| 
      
 58 
     | 
    
         
            +
              users: 
         
     | 
| 
      
 59 
     | 
    
         
            +
                edit: 
         
     | 
| 
      
 60 
     | 
    
         
            +
                  could_not_update_user: "Konnte Benutzerprofil nicht aktualisieren"
         
     | 
| 
      
 61 
     | 
    
         
            +
                  edit_users_profile: "Benutzerprofil bearbeiten"
         
     | 
| 
      
 62 
     | 
    
         
            +
                  email_address: E-Mail-Adresse
         
     | 
| 
      
 63 
     | 
    
         
            +
                  full_name: "Voller Name"
         
     | 
| 
      
 64 
     | 
    
         
            +
                  the_email_address_is_used_for_notifications: "Die E-Mail-Adresse wird für Benachrichtigungen verwendet"
         
     | 
| 
      
 65 
     | 
    
         
            +
                  update: Aktualisieren
         
     | 
| 
      
 66 
     | 
    
         
            +
                new: 
         
     | 
| 
      
 67 
     | 
    
         
            +
                  could_not_register_user: "Konnte Benutzer nicht registrieren"
         
     | 
| 
      
 68 
     | 
    
         
            +
                  create_account: "Benutzer registrieren"
         
     | 
| 
      
 69 
     | 
    
         
            +
                  create_new_account: "Neuen Benutzer registrieren"
         
     | 
| 
      
 70 
     | 
    
         
            +
                  email_address: E-Mail-Adresse
         
     | 
| 
      
 71 
     | 
    
         
            +
                  full_name: "Voller Name"
         
     | 
| 
      
 72 
     | 
    
         
            +
                  login_instead: "Bereits registriert?"
         
     | 
| 
      
 73 
     | 
    
         
            +
                  password: Passwort
         
     | 
| 
      
 74 
     | 
    
         
            +
                  password_confirmation: "Passwort wiederholen"
         
     | 
| 
      
 75 
     | 
    
         
            +
                  please_repeat_the_password_exactly_as_above: "Bitte wiederholen Sie das Passwort exakt wie oben"
         
     | 
| 
      
 76 
     | 
    
         
            +
                  the_email_address_is_used_for_notifications: "Die E-Mail-Adresse wird für Benachrichtigungen verwendet"
         
     | 
| 
      
 77 
     | 
    
         
            +
                show: 
         
     | 
| 
      
 78 
     | 
    
         
            +
                  accounts: Konten
         
     | 
| 
      
 79 
     | 
    
         
            +
                  edit_profile: "Profil bearbeiten"
         
     | 
| 
      
 80 
     | 
    
         
            +
                  email: E-Mail-Adresse
         
     | 
| 
      
 81 
     | 
    
         
            +
                  full_name: "Voller Name"
         
     | 
| 
      
 82 
     | 
    
         
            +
                  no_accounts: "bisher keine"
         
     | 
| 
      
 83 
     | 
    
         
            +
                  users_profile: "{{full_name}}s Profil"
         
     | 
| 
         @@ -0,0 +1,83 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- 
         
     | 
| 
      
 2 
     | 
    
         
            +
            en: 
         
     | 
| 
      
 3 
     | 
    
         
            +
              admin: 
         
     | 
| 
      
 4 
     | 
    
         
            +
                users: 
         
     | 
| 
      
 5 
     | 
    
         
            +
                  index: 
         
     | 
| 
      
 6 
     | 
    
         
            +
                    accounts: Accounts
         
     | 
| 
      
 7 
     | 
    
         
            +
                    all_users: "All Users"
         
     | 
| 
      
 8 
     | 
    
         
            +
                    email: Email
         
     | 
| 
      
 9 
     | 
    
         
            +
                    name: Name
         
     | 
| 
      
 10 
     | 
    
         
            +
                    no_users: "No users found."
         
     | 
| 
      
 11 
     | 
    
         
            +
                    options: Options
         
     | 
| 
      
 12 
     | 
    
         
            +
              flash: 
         
     | 
| 
      
 13 
     | 
    
         
            +
                error: 
         
     | 
| 
      
 14 
     | 
    
         
            +
                  access_denied: "Access denied"
         
     | 
| 
      
 15 
     | 
    
         
            +
                  guest_required: "You must be logged out to access this page"
         
     | 
| 
      
 16 
     | 
    
         
            +
                  login_required: "You must be logged in to access this page"
         
     | 
| 
      
 17 
     | 
    
         
            +
                  user_by_email_not_found: "No user was found with that email address"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  user_could_not_be_located: "We're sorry, but we could not locate your account. If you are having issues try copying and pasting the URL from your email into your browser or restarting the reset password process."
         
     | 
| 
      
 19 
     | 
    
         
            +
                notice: 
         
     | 
| 
      
 20 
     | 
    
         
            +
                  created_user: "Successfully created user"
         
     | 
| 
      
 21 
     | 
    
         
            +
                  logged_in: "Successfully logged in"
         
     | 
| 
      
 22 
     | 
    
         
            +
                  logged_out: "Successfully logged out"
         
     | 
| 
      
 23 
     | 
    
         
            +
                  password_instructions_sent: "Instructions to reset your password have been emailed to you. Please check your email."
         
     | 
| 
      
 24 
     | 
    
         
            +
                  password_updated: "Password successfully updated"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  updated_user: "Successfully updated user"
         
     | 
| 
      
 26 
     | 
    
         
            +
                password_reset_mailer: 
         
     | 
| 
      
 27 
     | 
    
         
            +
                  subject: "Password Reset Instructions"
         
     | 
| 
      
 28 
     | 
    
         
            +
              layouts: 
         
     | 
| 
      
 29 
     | 
    
         
            +
                accounts: Accounts
         
     | 
| 
      
 30 
     | 
    
         
            +
                admin: Admin
         
     | 
| 
      
 31 
     | 
    
         
            +
                login: Login
         
     | 
| 
      
 32 
     | 
    
         
            +
                logout: Logout
         
     | 
| 
      
 33 
     | 
    
         
            +
                signup: Signup
         
     | 
| 
      
 34 
     | 
    
         
            +
                user_greeter: "Welcome, {{user}}"
         
     | 
| 
      
 35 
     | 
    
         
            +
              password_resets: 
         
     | 
| 
      
 36 
     | 
    
         
            +
                edit: 
         
     | 
| 
      
 37 
     | 
    
         
            +
                  change_password: "Change My Password"
         
     | 
| 
      
 38 
     | 
    
         
            +
                  could_not_reset_password: "Could not reset password"
         
     | 
| 
      
 39 
     | 
    
         
            +
                  password: Password
         
     | 
| 
      
 40 
     | 
    
         
            +
                  password_confirmation: "Confirm password"
         
     | 
| 
      
 41 
     | 
    
         
            +
                  update: "Update my password and log me in"
         
     | 
| 
      
 42 
     | 
    
         
            +
                index: 
         
     | 
| 
      
 43 
     | 
    
         
            +
                  instructions: "Please check your email for instructions how to change your password."
         
     | 
| 
      
 44 
     | 
    
         
            +
                new: 
         
     | 
| 
      
 45 
     | 
    
         
            +
                  email: "E-mail address"
         
     | 
| 
      
 46 
     | 
    
         
            +
                  forgot_password: "Forgot Password"
         
     | 
| 
      
 47 
     | 
    
         
            +
                  instructions: "Fill out the form below and instructions to reset your password will be emailed to you."
         
     | 
| 
      
 48 
     | 
    
         
            +
                  reset: "Reset my password"
         
     | 
| 
      
 49 
     | 
    
         
            +
              user_sessions: 
         
     | 
| 
      
 50 
     | 
    
         
            +
                new: 
         
     | 
| 
      
 51 
     | 
    
         
            +
                  could_not_login: "Login failed"
         
     | 
| 
      
 52 
     | 
    
         
            +
                  email: E-Mail
         
     | 
| 
      
 53 
     | 
    
         
            +
                  forgot_password: "Forgot password?"
         
     | 
| 
      
 54 
     | 
    
         
            +
                  login: Login
         
     | 
| 
      
 55 
     | 
    
         
            +
                  password: Password
         
     | 
| 
      
 56 
     | 
    
         
            +
                  register_instead: "Not registered yet?"
         
     | 
| 
      
 57 
     | 
    
         
            +
                  remember_me: "Remember me"
         
     | 
| 
      
 58 
     | 
    
         
            +
              users: 
         
     | 
| 
      
 59 
     | 
    
         
            +
                edit: 
         
     | 
| 
      
 60 
     | 
    
         
            +
                  could_not_update_user: "Could not update user"
         
     | 
| 
      
 61 
     | 
    
         
            +
                  edit_users_profile: "Edit user's profile"
         
     | 
| 
      
 62 
     | 
    
         
            +
                  email_address: "E-mail address"
         
     | 
| 
      
 63 
     | 
    
         
            +
                  full_name: "Full name"
         
     | 
| 
      
 64 
     | 
    
         
            +
                  the_email_address_is_used_for_notifications: "The e-mail address is used for notifications"
         
     | 
| 
      
 65 
     | 
    
         
            +
                  update: Update
         
     | 
| 
      
 66 
     | 
    
         
            +
                new: 
         
     | 
| 
      
 67 
     | 
    
         
            +
                  could_not_register_user: "Could not register user"
         
     | 
| 
      
 68 
     | 
    
         
            +
                  create_account: "Create account"
         
     | 
| 
      
 69 
     | 
    
         
            +
                  create_new_account: "Create new account"
         
     | 
| 
      
 70 
     | 
    
         
            +
                  email_address: "E-mail address"
         
     | 
| 
      
 71 
     | 
    
         
            +
                  full_name: "Full name"
         
     | 
| 
      
 72 
     | 
    
         
            +
                  login_instead: "Already registered?"
         
     | 
| 
      
 73 
     | 
    
         
            +
                  password: Password
         
     | 
| 
      
 74 
     | 
    
         
            +
                  password_confirmation: "Password confirmation"
         
     | 
| 
      
 75 
     | 
    
         
            +
                  please_repeat_the_password_exactly_as_above: "Please repeat the password exactly as above"
         
     | 
| 
      
 76 
     | 
    
         
            +
                  the_email_address_is_used_for_notifications: "The e-mail address is used for notifications"
         
     | 
| 
      
 77 
     | 
    
         
            +
                show: 
         
     | 
| 
      
 78 
     | 
    
         
            +
                  accounts: Accounts
         
     | 
| 
      
 79 
     | 
    
         
            +
                  edit_profile: "Edit profile"
         
     | 
| 
      
 80 
     | 
    
         
            +
                  email: "Email address"
         
     | 
| 
      
 81 
     | 
    
         
            +
                  full_name: "Full name"
         
     | 
| 
      
 82 
     | 
    
         
            +
                  no_accounts: "none yet"
         
     | 
| 
      
 83 
     | 
    
         
            +
                  users_profile: "{{full_name}}'s profile"
         
     | 
| 
         @@ -0,0 +1,46 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class TinyUserGenerator < Rails::Generator::Base
         
     | 
| 
      
 2 
     | 
    
         
            +
              def manifest
         
     | 
| 
      
 3 
     | 
    
         
            +
                record do |m|
         
     | 
| 
      
 4 
     | 
    
         
            +
                  # Check for class naming collisions.
         
     | 
| 
      
 5 
     | 
    
         
            +
                  m.class_collisions "User", "UserSession", "UsersController", "UserSessionsController", "PasswordResetsController", "Admin::UsersController", "Role::Admin", "Role::User"
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                  # Model, controller, view and test directories.
         
     | 
| 
      
 8 
     | 
    
         
            +
                  m.directory 'app/models'
         
     | 
| 
      
 9 
     | 
    
         
            +
                  m.directory 'app/models/role'
         
     | 
| 
      
 10 
     | 
    
         
            +
                  m.directory 'app/controllers'
         
     | 
| 
      
 11 
     | 
    
         
            +
                  m.directory 'app/controllers/admin'
         
     | 
| 
      
 12 
     | 
    
         
            +
                  m.directory 'app/views/admin/users'
         
     | 
| 
      
 13 
     | 
    
         
            +
                  m.directory 'app/views/password_resets'
         
     | 
| 
      
 14 
     | 
    
         
            +
                  m.directory 'app/views/password_resets_mailer'
         
     | 
| 
      
 15 
     | 
    
         
            +
                  m.directory 'app/views/user_sessions'
         
     | 
| 
      
 16 
     | 
    
         
            +
                  m.directory 'app/views/users'
         
     | 
| 
      
 17 
     | 
    
         
            +
                  m.directory 'config/locales'
         
     | 
| 
      
 18 
     | 
    
         
            +
                  m.directory 'test/unit'
         
     | 
| 
      
 19 
     | 
    
         
            +
                  m.directory 'test/functional'
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  # Classes and tests.
         
     | 
| 
      
 22 
     | 
    
         
            +
                  m.file "admin_users_controller.rb", 'app/controllers/admin/users_controller.rb'
         
     | 
| 
      
 23 
     | 
    
         
            +
                  m.file "password_resets_controller.rb", 'app/controllers/password_resets_controller.rb'
         
     | 
| 
      
 24 
     | 
    
         
            +
                  m.file "role/admin.rb", 'app/models/role/admin.rb'
         
     | 
| 
      
 25 
     | 
    
         
            +
                  m.file "role/user.rb", 'app/models/role/user.rb'
         
     | 
| 
      
 26 
     | 
    
         
            +
                  m.file "user.rb", 'app/models/user.rb'
         
     | 
| 
      
 27 
     | 
    
         
            +
                  m.file "user_session.rb", 'app/models/user_session.rb'
         
     | 
| 
      
 28 
     | 
    
         
            +
                  m.file "user_sessions_controller.rb", 'app/controllers/user_sessions_controller.rb'
         
     | 
| 
      
 29 
     | 
    
         
            +
                  m.file "users_controller.rb", 'app/controllers/users_controller.rb'
         
     | 
| 
      
 30 
     | 
    
         
            +
                  
         
     | 
| 
      
 31 
     | 
    
         
            +
                  # Locales
         
     | 
| 
      
 32 
     | 
    
         
            +
                  m.file "users_en.yml", 'config/locales/users_en.yml'
         
     | 
| 
      
 33 
     | 
    
         
            +
                  m.file "users_de.yml", 'config/locales/users_de.yml'
         
     | 
| 
      
 34 
     | 
    
         
            +
                  
         
     | 
| 
      
 35 
     | 
    
         
            +
                  # Views
         
     | 
| 
      
 36 
     | 
    
         
            +
                  base_dir = File.dirname(__FILE__) + '/templates'
         
     | 
| 
      
 37 
     | 
    
         
            +
                  Dir.glob("#{base_dir}/**/*.html.erb") do |template|
         
     | 
| 
      
 38 
     | 
    
         
            +
                    relative_path = template.gsub("#{base_dir}/", '')
         
     | 
| 
      
 39 
     | 
    
         
            +
                    m.file relative_path, "app/views/#{relative_path}"
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
                  
         
     | 
| 
      
 42 
     | 
    
         
            +
                  # Migrations
         
     | 
| 
      
 43 
     | 
    
         
            +
                  m.migration_template 'create_users.rb', 'db/migrate', :migration_file_name => 'create_users.rb'
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,102 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification 
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: tiny_core_users
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version 
         
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 29
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 6 
     | 
    
         
            +
              segments: 
         
     | 
| 
      
 7 
     | 
    
         
            +
              - 0
         
     | 
| 
      
 8 
     | 
    
         
            +
              - 0
         
     | 
| 
      
 9 
     | 
    
         
            +
              - 1
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 0.0.1
         
     | 
| 
      
 11 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 12 
     | 
    
         
            +
            authors: 
         
     | 
| 
      
 13 
     | 
    
         
            +
            - Thomas Kadauke
         
     | 
| 
      
 14 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 15 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 16 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            date: 2010-08-30 00:00:00 +02:00
         
     | 
| 
      
 19 
     | 
    
         
            +
            default_executable: 
         
     | 
| 
      
 20 
     | 
    
         
            +
            dependencies: []
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            description: 
         
     | 
| 
      
 23 
     | 
    
         
            +
            email: tkadauke@imedo.de
         
     | 
| 
      
 24 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            files: 
         
     | 
| 
      
 31 
     | 
    
         
            +
            - lib/tiny_core/acts/user.rb
         
     | 
| 
      
 32 
     | 
    
         
            +
            - lib/tiny_core/controllers/admin_users.rb
         
     | 
| 
      
 33 
     | 
    
         
            +
            - lib/tiny_core/controllers/application.rb
         
     | 
| 
      
 34 
     | 
    
         
            +
            - lib/tiny_core/controllers/password_resets.rb
         
     | 
| 
      
 35 
     | 
    
         
            +
            - lib/tiny_core/controllers/user_sessions.rb
         
     | 
| 
      
 36 
     | 
    
         
            +
            - lib/tiny_core/controllers/users.rb
         
     | 
| 
      
 37 
     | 
    
         
            +
            - lib/tiny_core/mailers/password_resets_mailer.rb
         
     | 
| 
      
 38 
     | 
    
         
            +
            - lib/tiny_core/models/guest.rb
         
     | 
| 
      
 39 
     | 
    
         
            +
            - lib/tiny_core/role/admin.rb
         
     | 
| 
      
 40 
     | 
    
         
            +
            - lib/tiny_core/role/guest.rb
         
     | 
| 
      
 41 
     | 
    
         
            +
            - lib/tiny_core/role.rb
         
     | 
| 
      
 42 
     | 
    
         
            +
            - lib/tiny_core_users.rb
         
     | 
| 
      
 43 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/admin/users/_index.html.erb
         
     | 
| 
      
 44 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/admin/users/index.html.erb
         
     | 
| 
      
 45 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/admin_users_controller.rb
         
     | 
| 
      
 46 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/create_users.rb
         
     | 
| 
      
 47 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/password_resets/edit.html.erb
         
     | 
| 
      
 48 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/password_resets/index.html.erb
         
     | 
| 
      
 49 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/password_resets/new.html.erb
         
     | 
| 
      
 50 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/password_resets_controller.rb
         
     | 
| 
      
 51 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/password_resets_mailer/password_reset_instructions.de.erb
         
     | 
| 
      
 52 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/password_resets_mailer/password_reset_instructions.erb
         
     | 
| 
      
 53 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/role/admin.rb
         
     | 
| 
      
 54 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/role/guest.rb
         
     | 
| 
      
 55 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/role/user.rb
         
     | 
| 
      
 56 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/user.rb
         
     | 
| 
      
 57 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/user_session.rb
         
     | 
| 
      
 58 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/user_sessions/new.html.erb
         
     | 
| 
      
 59 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/user_sessions_controller.rb
         
     | 
| 
      
 60 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/users/edit.html.erb
         
     | 
| 
      
 61 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/users/new.html.erb
         
     | 
| 
      
 62 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/users/show.html.erb
         
     | 
| 
      
 63 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/users_controller.rb
         
     | 
| 
      
 64 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/users_de.yml
         
     | 
| 
      
 65 
     | 
    
         
            +
            - rails_generators/tiny_user/templates/users_en.yml
         
     | 
| 
      
 66 
     | 
    
         
            +
            - rails_generators/tiny_user/tiny_user_generator.rb
         
     | 
| 
      
 67 
     | 
    
         
            +
            has_rdoc: true
         
     | 
| 
      
 68 
     | 
    
         
            +
            homepage: 
         
     | 
| 
      
 69 
     | 
    
         
            +
            licenses: []
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 72 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            require_paths: 
         
     | 
| 
      
 75 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 76 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 77 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 78 
     | 
    
         
            +
              requirements: 
         
     | 
| 
      
 79 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 80 
     | 
    
         
            +
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 81 
     | 
    
         
            +
                  hash: 3
         
     | 
| 
      
 82 
     | 
    
         
            +
                  segments: 
         
     | 
| 
      
 83 
     | 
    
         
            +
                  - 0
         
     | 
| 
      
 84 
     | 
    
         
            +
                  version: "0"
         
     | 
| 
      
 85 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 86 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 87 
     | 
    
         
            +
              requirements: 
         
     | 
| 
      
 88 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 89 
     | 
    
         
            +
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 90 
     | 
    
         
            +
                  hash: 3
         
     | 
| 
      
 91 
     | 
    
         
            +
                  segments: 
         
     | 
| 
      
 92 
     | 
    
         
            +
                  - 0
         
     | 
| 
      
 93 
     | 
    
         
            +
                  version: "0"
         
     | 
| 
      
 94 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 97 
     | 
    
         
            +
            rubygems_version: 1.3.7
         
     | 
| 
      
 98 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 99 
     | 
    
         
            +
            specification_version: 3
         
     | 
| 
      
 100 
     | 
    
         
            +
            summary: Simple reusable user management with generator based on authlogic
         
     | 
| 
      
 101 
     | 
    
         
            +
            test_files: []
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     |