active_leonardo 0.0.2 → 0.0.3
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/CHANGELOG +7 -0
- data/active_template.rb +18 -9
- data/lib/generators/active_leonardo.rb +13 -4
- data/lib/generators/leolay/leolay_generator.rb +13 -10
- data/lib/generators/leolay/templates/app/admin/users.rb +25 -16
- data/lib/generators/leolay/templates/config/initializers/activeadmin_cancan.rb +114 -0
- data/lib/generators/leolay/templates/config/initializers/activeadmin_leonardo.rb +30 -0
- data/lib/generators/leolay/templates/config/locales/devise.it.yml +57 -0
- data/lib/generators/rails/leosca_controller/leosca_controller_generator.rb +10 -20
- metadata +41 -8
- data/lib/generators/leolay/templates/app/views/admin/users/_form.html.erb +0 -21
- data/lib/generators/leolay/templates/lib/upd_activeadmin.rb +0 -65
    
        data/CHANGELOG
    CHANGED
    
    | @@ -1,2 +1,9 @@ | |
| 1 | 
            +
            0.0.3 (May 23th, 2012) Marco Mastrodonato
         | 
| 2 | 
            +
            * Improved cancan integration
         | 
| 3 | 
            +
            * Localization yaml file cleaned from some previous leonardo stuff
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            0.0.2 (May 23th, 2012) Marco Mastrodonato
         | 
| 6 | 
            +
            * Minor changement
         | 
| 7 | 
            +
             | 
| 1 8 | 
             
            0.0.1 (May 23th, 2012) Marco Mastrodonato
         | 
| 2 9 | 
             
            * First release
         | 
    
        data/active_template.rb
    CHANGED
    
    | @@ -44,33 +44,42 @@ gem "active_leonardo" | |
| 44 44 |  | 
| 45 45 | 
             
            gem 'state_machine' if yes?("Do you have to handle states ?")
         | 
| 46 46 |  | 
| 47 | 
            -
            authorization = yes?("Authorization ?")
         | 
| 48 | 
            -
            gem 'cancan' if authorization
         | 
| 49 | 
            -
             | 
| 50 47 | 
             
            authentication = yes?("Authentication ?")
         | 
| 48 | 
            +
            model_name = authorization = nil
         | 
| 49 | 
            +
            if authentication
         | 
| 50 | 
            +
              default_model_name = "User"
         | 
| 51 | 
            +
              model_name = ask(" Insert model name: [#{default_model_name}] (Other names are not tested yet)")
         | 
| 52 | 
            +
              model_name = default_model_name if model_name.empty?
         | 
| 53 | 
            +
              
         | 
| 54 | 
            +
              authorization = yes?("Authorization ?")
         | 
| 55 | 
            +
              gem 'cancan' if authorization
         | 
| 56 | 
            +
            end
         | 
| 51 57 |  | 
| 52 | 
            -
             | 
| 53 | 
            -
            home =  | 
| 58 | 
            +
            dashboard_root = yes?("Would you use dashboard as root ? (recommended)")
         | 
| 59 | 
            +
            home = yes?("Ok. Would you create home controller as root ?") unless dashboard_root
         | 
| 54 60 |  | 
| 55 61 | 
             
            if yes?("Bundle install ?")
         | 
| 56 62 | 
             
              dir = ask(" Insert folder name to install locally: [blank=default gems path]")
         | 
| 57 63 | 
             
              run "bundle install #{"--path=#{dir}" unless dir.empty?}"
         | 
| 58 64 | 
             
            end
         | 
| 59 65 |  | 
| 60 | 
            -
            generate "active_admin:install #{authentication ?  | 
| 66 | 
            +
            generate "active_admin:install #{authentication ? model_name : "--skip-users"}"
         | 
| 61 67 |  | 
| 62 68 | 
             
            if authorization
         | 
| 63 69 | 
             
              generate "cancan:ability"
         | 
| 64 | 
            -
              generate "migration", " | 
| 70 | 
            +
              generate "migration", "AddRolesMaskTo#{model_name}", "roles_mask:integer"
         | 
| 65 71 | 
             
            end
         | 
| 66 72 |  | 
| 67 73 | 
             
            generate  "leolay",
         | 
| 68 74 | 
             
                        "active", #specify theme
         | 
| 75 | 
            +
                        "--auth_class=#{model_name}",
         | 
| 69 76 | 
             
                        (authorization ? "" : "--skip-authorization"),
         | 
| 70 | 
            -
                        (authentication ? "" : "--skip-authentication") | 
| 77 | 
            +
                        (authentication ? "" : "--skip-authentication")
         | 
| 71 78 |  | 
| 72 79 |  | 
| 73 | 
            -
            if  | 
| 80 | 
            +
            if dashboard_root
         | 
| 81 | 
            +
              route "root :to => 'admin/dashboard#index'"
         | 
| 82 | 
            +
            elsif home
         | 
| 74 83 | 
             
              generate "controller", "home", "index"
         | 
| 75 84 | 
             
              route "root :to => 'home#index'"
         | 
| 76 85 | 
             
            end
         | 
| @@ -1,15 +1,24 @@ | |
| 1 1 | 
             
            module ActiveLeonardo
         | 
| 2 2 | 
             
              module Base
         | 
| 3 3 | 
             
                protected
         | 
| 4 | 
            +
                def authorization_file
         | 
| 5 | 
            +
                  "app/models/ability.rb"
         | 
| 6 | 
            +
                end
         | 
| 4 7 | 
             
                def authorization?
         | 
| 5 | 
            -
                  File.exists?  | 
| 8 | 
            +
                  File.exists? authorization_file
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
                def authentication_file auth_class="User"
         | 
| 11 | 
            +
                  "app/models/#{auth_class.downcase}.rb"
         | 
| 6 12 | 
             
                end
         | 
| 7 | 
            -
                def authentication?
         | 
| 8 | 
            -
                  return true if File.exists?  | 
| 13 | 
            +
                def authentication? auth_class="User"
         | 
| 14 | 
            +
                  return true if File.exists? authentication_file(auth_class)
         | 
| 9 15 | 
             
                  File.exists? "config/initializers/devise.rb"
         | 
| 10 16 | 
             
                end
         | 
| 17 | 
            +
                def activeadmin_file
         | 
| 18 | 
            +
                  "config/initializers/active_admin.rb"
         | 
| 19 | 
            +
                end
         | 
| 11 20 | 
             
                def activeadmin?
         | 
| 12 | 
            -
                  File.exists?  | 
| 21 | 
            +
                  File.exists? activeadmin_file
         | 
| 13 22 | 
             
                end
         | 
| 14 23 | 
             
                #def formtastic?
         | 
| 15 24 | 
             
                #  return false unless options.formtastic?
         | 
| @@ -1,4 +1,8 @@ | |
| 1 | 
            +
            require File.join(File.dirname(__FILE__), '../active_leonardo')
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            class LeolayGenerator < Rails::Generators::Base
         | 
| 4 | 
            +
              include ::ActiveLeonardo::Base
         | 
| 5 | 
            +
             | 
| 2 6 | 
             
              source_root File.expand_path('../templates', __FILE__)
         | 
| 3 7 | 
             
              argument :style, :type => :string, :default => "active"
         | 
| 4 8 | 
             
              #class_option :pagination, :type => :boolean, :default => true, :desc => "Include pagination files"
         | 
| @@ -7,7 +11,7 @@ class LeolayGenerator < Rails::Generators::Base | |
| 7 11 | 
             
              class_option :authentication, :type => :boolean, :default => true, :desc => "Add code to manage authentication with devise"
         | 
| 8 12 | 
             
              class_option :authorization, :type => :boolean, :default => true, :desc => "Add code to manage authorization with cancan"
         | 
| 9 13 | 
             
              class_option :activeadmin, :type => :boolean, :default => true, :desc => "Add code to manage activeadmin gem"
         | 
| 10 | 
            -
              class_option :auth_class, :type => : | 
| 14 | 
            +
              class_option :auth_class, :type => :string, :default => 'User', :desc => "Set the authentication class name"
         | 
| 11 15 | 
             
              #class_option :formtastic, :type => :boolean, :default => true, :desc => "Copy formtastic files into leosca custom folder (inside project)"
         | 
| 12 16 | 
             
              #class_option :jquery_ui, :type => :boolean, :default => true, :desc => "To use jQuery ui improvement"
         | 
| 13 17 | 
             
              #class_option :rspec, :type => :boolean, :default => true, :desc => "Include custom rspec generator and custom templates"
         | 
| @@ -125,7 +129,6 @@ class LeolayGenerator < Rails::Generators::Base | |
| 125 129 | 
             
                      end
         | 
| 126 130 | 
             
                      I18n.locale = session[:lang]
         | 
| 127 131 | 
             
                    end
         | 
| 128 | 
            -
                    require "upd_activeadmin"
         | 
| 129 132 | 
             
                    FILE
         | 
| 130 133 | 
             
                  end
         | 
| 131 134 | 
             
                end
         | 
| @@ -154,7 +157,7 @@ class LeolayGenerator < Rails::Generators::Base | |
| 154 157 | 
             
                #puts "File #{file} #{File.exists?(file) ? "" : "does not"} exists!"
         | 
| 155 158 | 
             
                return unless options.authentication? and File.exists?(file)
         | 
| 156 159 |  | 
| 157 | 
            -
                inject_into_class file,  | 
| 160 | 
            +
                inject_into_class file, options[:auth_class] do
         | 
| 158 161 | 
             
                  <<-FILE.gsub(/^    /, '')
         | 
| 159 162 | 
             
                  ROLES = %w[admin manager user guest]
         | 
| 160 163 | 
             
                  scope :with_role, lambda { |role| {:conditions => "roles_mask & \#{2**ROLES.index(role.to_s)} > 0 "} }
         | 
| @@ -174,6 +177,7 @@ class LeolayGenerator < Rails::Generators::Base | |
| 174 177 | 
             
                  def admin?
         | 
| 175 178 | 
             
                    self.role? 'admin'
         | 
| 176 179 | 
             
                  end
         | 
| 180 | 
            +
                  attr_accessible :roles
         | 
| 177 181 | 
             
                  FILE
         | 
| 178 182 | 
             
                end
         | 
| 179 183 |  | 
| @@ -196,13 +200,13 @@ class LeolayGenerator < Rails::Generators::Base | |
| 196 200 | 
             
                file = "db/seeds.rb"
         | 
| 197 201 | 
             
                append_file file do
         | 
| 198 202 | 
             
                  <<-FILE.gsub(/^      /, '')
         | 
| 199 | 
            -
                  user | 
| 203 | 
            +
                  user=#{options[:auth_class]}.new :email => 'admin@#{app_name}.com', :password => 'abcd1234', :password_confirmation => 'abcd1234'
         | 
| 200 204 | 
             
                  #{"user.roles=['admin']" if options.authorization?}
         | 
| 201 205 | 
             
                  user.save
         | 
| 202 | 
            -
                  user | 
| 206 | 
            +
                  user=#{options[:auth_class]}.new :email => 'manager@#{app_name}.com', :password => 'abcd1234', :password_confirmation => 'abcd1234'
         | 
| 203 207 | 
             
                  #{"user.roles=['manager']" if options.authorization?}
         | 
| 204 208 | 
             
                  user.save
         | 
| 205 | 
            -
                  user | 
| 209 | 
            +
                  user=#{options[:auth_class]}.new :email => 'user@#{app_name}.com', :password => 'abcd1234', :password_confirmation => 'abcd1234'
         | 
| 206 210 | 
             
                  #{"user.roles=['user']" if options.authorization?}
         | 
| 207 211 | 
             
                  user.save
         | 
| 208 212 | 
             
                  FILE
         | 
| @@ -338,14 +342,13 @@ class LeolayGenerator < Rails::Generators::Base | |
| 338 342 |  | 
| 339 343 | 
             
              def setup_extras
         | 
| 340 344 | 
             
                copy_file "lib/upd_array.rb", "lib/extras/upd_array.rb"
         | 
| 341 | 
            -
                template "lib/upd_activeadmin.rb", "lib/extras/upd_activeadmin.rb"
         | 
| 342 345 | 
             
              end
         | 
| 343 346 |  | 
| 344 347 | 
             
              def setup_activeadmin
         | 
| 345 | 
            -
                 | 
| 346 | 
            -
                 | 
| 348 | 
            +
                return unless options.activeadmin? and activeadmin?
         | 
| 349 | 
            +
                template "config/initializers/activeadmin_leonardo.rb", "config/initializers/activeadmin_leonardo.rb"
         | 
| 350 | 
            +
                copy_file "config/initializers/activeadmin_cancan.rb", "config/initializers/activeadmin_cancan.rb" if options.authorization?
         | 
| 347 351 | 
             
                template "app/admin/users.rb", "app/admin/#{options[:auth_class].downcase.pluralize}.rb"
         | 
| 348 | 
            -
                template "app/views/admin/users/_form.html.erb", "app/views/admin/#{options[:auth_class].downcase.pluralize}/_form.html.erb"
         | 
| 349 352 |  | 
| 350 353 | 
             
                file = "app/assets/stylesheets/active_admin.css.scss"
         | 
| 351 354 | 
             
                append_file file do
         | 
| @@ -1,10 +1,11 @@ | |
| 1 | 
            -
            ActiveAdmin.register <%= options[:auth_class] | 
| 2 | 
            -
              menu :if => proc{ can?(:manage, <%= options[:auth_class] | 
| 3 | 
            -
              controller.authorize_resource
         | 
| 1 | 
            +
            ActiveAdmin.register <%= options[:auth_class] %> do
         | 
| 2 | 
            +
              menu :if => proc{ can?(:manage, <%= options[:auth_class] %>) }
         | 
| 4 3 |  | 
| 5 | 
            -
              config.sort_order = ' | 
| 4 | 
            +
              config.sort_order = 'email_asc'
         | 
| 6 5 |  | 
| 7 6 | 
             
              controller do
         | 
| 7 | 
            +
                load_resource :except => :index
         | 
| 8 | 
            +
                authorize_resource
         | 
| 8 9 | 
             
                def update
         | 
| 9 10 | 
             
                  unless params[:<%= options[:auth_class].downcase %>]['password'] && params[:<%= options[:auth_class].downcase %>]['password'].size > 0
         | 
| 10 11 | 
             
                    params[:<%= options[:auth_class].downcase %>].delete 'password'
         | 
| @@ -18,26 +19,36 @@ ActiveAdmin.register <%= options[:auth_class].capitalize %> do | |
| 18 19 |  | 
| 19 20 | 
             
              index do
         | 
| 20 21 | 
             
                id_column
         | 
| 21 | 
            -
                #column :name
         | 
| 22 22 | 
             
                column :email
         | 
| 23 | 
            -
                #column : | 
| 24 | 
            -
                 | 
| 23 | 
            +
                #column :group, :sortable => :group_id
         | 
| 24 | 
            +
                column :roles do |user|
         | 
| 25 | 
            +
                  user.roles.join ", "
         | 
| 26 | 
            +
                end
         | 
| 25 27 | 
             
                column :current_sign_in_at
         | 
| 26 28 | 
             
                column :current_sign_in_ip
         | 
| 27 | 
            -
                 | 
| 29 | 
            +
                column :created_at
         | 
| 28 30 | 
             
                default_actions
         | 
| 29 31 | 
             
              end
         | 
| 30 32 |  | 
| 31 | 
            -
              form  | 
| 33 | 
            +
              form do |f|
         | 
| 34 | 
            +
                input_roles = "<li>" <<
         | 
| 35 | 
            +
                    f.label(:roles) <<
         | 
| 36 | 
            +
                    <%= options[:auth_class] %>::ROLES.map{|role| check_box_tag("<%= options[:auth_class].downcase %>[roles][]", role, f.object.roles.include?(role)) << ' ' << role.humanize.html_safe }.join(" ") <<
         | 
| 37 | 
            +
                    hidden_field_tag("<%= options[:auth_class].downcase %>[roles][]") <<
         | 
| 38 | 
            +
                    "</li>"
         | 
| 39 | 
            +
                f.inputs "Account" do
         | 
| 40 | 
            +
                  f.input :email
         | 
| 41 | 
            +
                  f.input :password
         | 
| 42 | 
            +
                  f.input(:password_confirmation) <<
         | 
| 43 | 
            +
                      input_roles.html_safe
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
                f.buttons
         | 
| 46 | 
            +
              end
         | 
| 32 47 |  | 
| 33 48 | 
             
              show do
         | 
| 34 49 | 
             
                attributes_table do
         | 
| 35 | 
            -
                  #row :gruppo do |<%= options[:auth_class].downcase %>|
         | 
| 36 | 
            -
                  #  <%= options[:auth_class].downcase %>.gruppo ? <%= options[:auth_class].downcase %>.gruppo.try(:name) : "Unknown"
         | 
| 37 | 
            -
                  #end
         | 
| 38 | 
            -
                  #row :name
         | 
| 39 50 | 
             
                  row :email
         | 
| 40 | 
            -
                  #row : | 
| 51 | 
            +
                  #row :group
         | 
| 41 52 | 
             
                  row :current_sign_in_at
         | 
| 42 53 | 
             
                  row :last_sign_in_at
         | 
| 43 54 | 
             
                  row :sign_in_count
         | 
| @@ -48,14 +59,12 @@ ActiveAdmin.register <%= options[:auth_class].capitalize %> do | |
| 48 59 | 
             
                  row :created_at
         | 
| 49 60 | 
             
                  row :updated_at
         | 
| 50 61 | 
             
                end
         | 
| 51 | 
            -
             | 
| 52 62 | 
             
              end
         | 
| 53 63 |  | 
| 54 64 | 
             
              csv do
         | 
| 55 65 | 
             
                column :email
         | 
| 56 66 | 
             
                #column("Name") { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.name }
         | 
| 57 67 | 
             
                #column("Group") { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.group.try(:name) }
         | 
| 58 | 
            -
                #column :login_ldap
         | 
| 59 68 | 
             
                column(I18n.t('attributes.<%= options[:auth_class].downcase %>.roles')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.roles.join ", " }
         | 
| 60 69 | 
             
                column(I18n.t('attributes.created_at')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.created_at.strftime("%d/%m/%Y") }
         | 
| 61 70 | 
             
                column(I18n.t('attributes.<%= options[:auth_class].downcase %>.last_sign_in_at')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.last_sign_in_at.strftime("%d/%m/%Y") if <%= options[:auth_class].downcase %>.last_sign_in_at }
         | 
| @@ -0,0 +1,114 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
            module ActiveAdmin
         | 
| 3 | 
            +
              module Views
         | 
| 4 | 
            +
                #Integrate cancan in default_actions
         | 
| 5 | 
            +
                #\lib\active_admin\views\index_as_table.rb
         | 
| 6 | 
            +
                class IndexAsTable
         | 
| 7 | 
            +
                  class IndexTableFor
         | 
| 8 | 
            +
                    # Adds links to View, Edit and Delete
         | 
| 9 | 
            +
                    def default_actions(options = {})
         | 
| 10 | 
            +
                      options = {
         | 
| 11 | 
            +
                          :name => "",
         | 
| 12 | 
            +
                          :auth => nil
         | 
| 13 | 
            +
                      }.merge(options)
         | 
| 14 | 
            +
                      column options[:name] do |resource|
         | 
| 15 | 
            +
                        links = ''.html_safe
         | 
| 16 | 
            +
                        if controller.action_methods.include?('show') && (options[:auth] ? can?(:read, resource) : true)
         | 
| 17 | 
            +
                          links += link_to I18n.t('active_admin.view'), resource_path(resource), :class => "member_link view_link"
         | 
| 18 | 
            +
                        end
         | 
| 19 | 
            +
                        if controller.action_methods.include?('edit') && (options[:auth] ? can?(:update, resource) : true)
         | 
| 20 | 
            +
                          links += link_to I18n.t('active_admin.edit'), edit_resource_path(resource), :class => "member_link edit_link"
         | 
| 21 | 
            +
                        end
         | 
| 22 | 
            +
                        if controller.action_methods.include?('destroy') && (options[:auth] ? can?(:update, resource) : true)
         | 
| 23 | 
            +
                          links += link_to I18n.t('active_admin.delete'), resource_path(resource), :method => :delete, :confirm => I18n.t('active_admin.delete_confirmation'), :class => "member_link delete_link"
         | 
| 24 | 
            +
                        end
         | 
| 25 | 
            +
                        links
         | 
| 26 | 
            +
                      end
         | 
| 27 | 
            +
                    end
         | 
| 28 | 
            +
                  end
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              module ViewHelpers
         | 
| 33 | 
            +
                # lib/active_admin/view_helpers/auto_link_helper.rb
         | 
| 34 | 
            +
                def auto_link(resource, link_content = nil)
         | 
| 35 | 
            +
                  content = link_content || display_name(resource)
         | 
| 36 | 
            +
                  if can?(:read, resource) && registration = active_admin_resource_for(resource.class)
         | 
| 37 | 
            +
                    begin
         | 
| 38 | 
            +
                      content = link_to(content, send(registration.route_instance_path, resource))
         | 
| 39 | 
            +
                    rescue
         | 
| 40 | 
            +
                    end
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
                  content
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              class Resource
         | 
| 47 | 
            +
                module ActionItems
         | 
| 48 | 
            +
                  private
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                  # Adds the default action items to each resource
         | 
| 51 | 
            +
                  def add_default_action_items
         | 
| 52 | 
            +
                    # New Link on all actions except :new and :show
         | 
| 53 | 
            +
                    add_action_item :except => [:new, :show] do
         | 
| 54 | 
            +
                      if controller.action_methods.include?('new') && can?(:create, active_admin_config.resource_class)
         | 
| 55 | 
            +
                        link_to(I18n.t('active_admin.new_model', :model => active_admin_config.resource_name), new_resource_path)
         | 
| 56 | 
            +
                      end
         | 
| 57 | 
            +
                    end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                    # Edit link on show
         | 
| 60 | 
            +
                    add_action_item :only => :show do
         | 
| 61 | 
            +
                      if controller.action_methods.include?('edit') && can?(:edit, resource)
         | 
| 62 | 
            +
                        link_to(I18n.t('active_admin.edit_model', :model => active_admin_config.resource_name), edit_resource_path(resource))
         | 
| 63 | 
            +
                      end
         | 
| 64 | 
            +
                    end
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                    # Destroy link on show
         | 
| 67 | 
            +
                    add_action_item :only => :show do
         | 
| 68 | 
            +
                      if controller.action_methods.include?("destroy") && can?(:destroy, resource)
         | 
| 69 | 
            +
                        link_to(I18n.t('active_admin.delete_model', :model => active_admin_config.resource_name),
         | 
| 70 | 
            +
                          resource_path(resource),
         | 
| 71 | 
            +
                          :method => :delete, :confirm => I18n.t('active_admin.delete_confirmation'))
         | 
| 72 | 
            +
                      end
         | 
| 73 | 
            +
                    end
         | 
| 74 | 
            +
                  end
         | 
| 75 | 
            +
                end
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                # lib/active_admin/resource/menu.rb
         | 
| 78 | 
            +
                module Menu
         | 
| 79 | 
            +
                  # The :if block is evaluated by TabbedNavigation#display_item?
         | 
| 80 | 
            +
                  def default_menu_options
         | 
| 81 | 
            +
                    klass = resource_class # avoid variable capture
         | 
| 82 | 
            +
                    super.merge(:if => proc{ can? :read, klass })
         | 
| 83 | 
            +
                  end
         | 
| 84 | 
            +
                end
         | 
| 85 | 
            +
              end
         | 
| 86 | 
            +
             | 
| 87 | 
            +
              class ResourceController
         | 
| 88 | 
            +
                # lib/active_admin/resource_controller/collection.rb
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                # The following doesn't work (see https://github.com/ryanb/cancan/pull/683):
         | 
| 91 | 
            +
                #
         | 
| 92 | 
            +
                # load_and_authorize_resource
         | 
| 93 | 
            +
                # skip_load_resource :only => :index
         | 
| 94 | 
            +
                #
         | 
| 95 | 
            +
                # If you don't skip loading on #index you will get the exception:
         | 
| 96 | 
            +
                #
         | 
| 97 | 
            +
                # "Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection."
         | 
| 98 | 
            +
                #
         | 
| 99 | 
            +
                # Add to your activeadmin file:
         | 
| 100 | 
            +
                #
         | 
| 101 | 
            +
                # controller.load_resource :except => :index
         | 
| 102 | 
            +
                # controller.authorize_resource
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                # https://github.com/gregbell/active_admin/wiki/Enforce-CanCan-constraints
         | 
| 105 | 
            +
                # https://github.com/ryanb/cancan/blob/master/lib/cancan/controller_resource.rb#L80
         | 
| 106 | 
            +
                module Collection
         | 
| 107 | 
            +
                  module BaseCollection
         | 
| 108 | 
            +
                    def scoped_collection
         | 
| 109 | 
            +
                      end_of_association_chain.accessible_by(current_ability)
         | 
| 110 | 
            +
                    end
         | 
| 111 | 
            +
                  end
         | 
| 112 | 
            +
                end
         | 
| 113 | 
            +
              end
         | 
| 114 | 
            +
            end
         | 
| @@ -0,0 +1,30 @@ | |
| 1 | 
            +
            module ActiveAdmin
         | 
| 2 | 
            +
              module Views
         | 
| 3 | 
            +
                module Pages
         | 
| 4 | 
            +
                  #Custom footer
         | 
| 5 | 
            +
                  #\lib\active_admin\views\pages\base.rb
         | 
| 6 | 
            +
                  class Base < Arbre::HTML::Document
         | 
| 7 | 
            +
                    private
         | 
| 8 | 
            +
                    def build_footer
         | 
| 9 | 
            +
                      div :id => "footer" do
         | 
| 10 | 
            +
                        para "#{CONFIG[:application][:name]} #{Rails.env} #{CONFIG[:application][:version]} <%= Time.now.year %>.".html_safe
         | 
| 11 | 
            +
                      end
         | 
| 12 | 
            +
                    end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                #Avoid xml and json from download
         | 
| 18 | 
            +
                #\lib\active_admin\views\components\paginated_collection.rb
         | 
| 19 | 
            +
                #class PaginatedCollection
         | 
| 20 | 
            +
                #  def build_download_format_links(formats = [:csv])
         | 
| 21 | 
            +
                #    links = formats.collect do |format|
         | 
| 22 | 
            +
                #      link_to format.to_s.upcase, { :format => format}.merge(request.query_parameters.except(:commit, :format))
         | 
| 23 | 
            +
                #    end
         | 
| 24 | 
            +
                #    div :class => "download_links" do
         | 
| 25 | 
            +
            		 #     text_node [I18n.t('active_admin.download'), links].flatten.join(" ").html_safe
         | 
| 26 | 
            +
                #    end
         | 
| 27 | 
            +
                #  end
         | 
| 28 | 
            +
                #end
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
            end
         | 
| @@ -0,0 +1,57 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
             | 
| 3 | 
            +
            it:
         | 
| 4 | 
            +
              errors:
         | 
| 5 | 
            +
                messages:
         | 
| 6 | 
            +
                  expired: "è scaduto ed è necessario richiederne uno nuovo"
         | 
| 7 | 
            +
                  not_found: "non trovato"
         | 
| 8 | 
            +
                  already_confirmed: "è già stato confermato, riprova a collegarti"
         | 
| 9 | 
            +
                  not_locked: "non era bloccato"
         | 
| 10 | 
            +
                  not_saved:
         | 
| 11 | 
            +
                    one: "un errore ha impedito il salvataggio di %{resource}:"
         | 
| 12 | 
            +
                    other: "%{count} errori hanno impedito il salvataggio di %{resource}:"
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              devise:
         | 
| 15 | 
            +
                failure:
         | 
| 16 | 
            +
                  already_authenticated: "Sei già autenticato"
         | 
| 17 | 
            +
                  unauthenticated: "Devi accedere o registrarti per continuare."
         | 
| 18 | 
            +
                  unconfirmed: "Devi confermare il tuo account per continuare."
         | 
| 19 | 
            +
                  locked: "Il tuo account è bloccato."
         | 
| 20 | 
            +
                  invalid: "Indirizzo email o password non validi."
         | 
| 21 | 
            +
                  invalid_token: "Codice di autenticazione non valido."
         | 
| 22 | 
            +
                  timeout: "Sessione scaduta, accedere nuovamente per continuare."
         | 
| 23 | 
            +
                  inactive: "Il tuo account non è stato ancora attivato."
         | 
| 24 | 
            +
                sessions:
         | 
| 25 | 
            +
                  signed_in: "Accesso effettuato con successo."
         | 
| 26 | 
            +
                  signed_out: "Sei uscito correttamente."
         | 
| 27 | 
            +
                passwords:
         | 
| 28 | 
            +
                  send_instructions: "Riceverai un messaggio email con le istruzioni per reimpostare la tua password entro qualche minuto."
         | 
| 29 | 
            +
                  updated: "La tua password è stata cambiata. Ora sei collegato."
         | 
| 30 | 
            +
                  updated_not_active: "La tua password è stata cambiata."
         | 
| 31 | 
            +
                  send_paranoid_instructions: "Se il tuo indirizzo e-mail esiste nel nostro database, riceverai un link per il recupero della password."
         | 
| 32 | 
            +
                confirmations:
         | 
| 33 | 
            +
                  send_instructions: "Riceverai un messaggio email con le istruzioni per confermare il tuo account entro qualche minuto."
         | 
| 34 | 
            +
                  send_paranoid_instructions: "Se il tuo indirizzo e-mail esiste nel nostro database, fra pochi minuti riceverai un link con le istruzioni per confermare il tuo account."
         | 
| 35 | 
            +
                  confirmed: "Il tuo account è stato correttamente confermato. Ora sei collegato."
         | 
| 36 | 
            +
                registrations:
         | 
| 37 | 
            +
                  signed_up: "Iscrizione correttamente eseguita."
         | 
| 38 | 
            +
                  signed_up_but_unconfirmed: "Un messaggio con il link di conferma è stato inviato al tuo indirizzo email. Dovresti cliccare su quel link per attivare il tuo account."
         | 
| 39 | 
            +
                  signed_up_but_inactive: "Ti sei registrato con successo. Tuttavia, non è stato possibile effettuare il login perché il tuo account non è ancora stato attivato."
         | 
| 40 | 
            +
                  signed_up_but_locked: "Ti sei registrato con successo. Tuttavia, non è stato possibile effettuare il login perché il tuo account è bloccato."
         | 
| 41 | 
            +
                  updated: "Il tuo account è stato aggiornato."
         | 
| 42 | 
            +
                  update_needs_confirmation: "È stato aggiornato il tuo account con successo, ma abbiamo bisogno di verificare il tuo nuovo indirizzo email. Controlla la tua email e clicca sul link per confermare il nuovo indirizzo email."
         | 
| 43 | 
            +
                  destroyed: "Arrivederci! L'account è stato cancellato. Speriamo di rivederti presto."
         | 
| 44 | 
            +
                unlocks:
         | 
| 45 | 
            +
                  send_instructions: "Riceverai un messaggio email con le istruzioni per sbloccare il tuo account entro qualche minuto."
         | 
| 46 | 
            +
                  unlocked: "Il tuo account è stato correttamente sbloccato. Ora sei collegato."
         | 
| 47 | 
            +
                  send_paranoid_instructions: "Se il tuo indirizzo e-mail esiste nel nostro database, fra pochi minuti riceverai un link con le istruzioni per sbloccare il tuo account."
         | 
| 48 | 
            +
                omniauth_callbacks:
         | 
| 49 | 
            +
                  success: "Sei stato autorizzato dall'account di %{kind}."
         | 
| 50 | 
            +
                  failure: "Non siamo riusciti ad autoruzzarti da %{kind} perchè '%{reason}'."
         | 
| 51 | 
            +
                mailer:
         | 
| 52 | 
            +
                  confirmation_instructions:
         | 
| 53 | 
            +
                    subject: "Istruzioni per la conferma"
         | 
| 54 | 
            +
                  reset_password_instructions:
         | 
| 55 | 
            +
                    subject: "Istruzioni per reimpostare la password"
         | 
| 56 | 
            +
                  unlock_instructions:
         | 
| 57 | 
            +
                    subject: "Istruzioni per sbloccare l'account"
         | 
| @@ -20,7 +20,7 @@ module Rails | |
| 20 20 | 
             
                  #class_option :remote, :type => :boolean, :default => true, :desc => "Enable ajax. You can also do later set remote to true into index view."
         | 
| 21 21 | 
             
                  #class_option :under, :type => :string, :default => "", :banner => "brand/category", :desc => "To nest a resource under another(s)"
         | 
| 22 22 | 
             
                  #class_option :leospace, :type => :string, :default => "", :banner => ":admin", :desc => "To nest a resource under namespace(s)"
         | 
| 23 | 
            -
                  class_option :auth_class, :type => : | 
| 23 | 
            +
                  class_option :auth_class, :type => :string, :default => 'User', :desc => "Set the authentication class name"
         | 
| 24 24 | 
             
                  class_option :activeadmin, :type => :boolean, :default => true, :desc => "Add code to manage activeadmin gem"
         | 
| 25 25 |  | 
| 26 26 | 
             
                  #Override
         | 
| @@ -46,15 +46,11 @@ module Rails | |
| 46 46 | 
             
                        attributes.each do |attribute|
         | 
| 47 47 | 
             
                          content << "        #{attribute.name}: \"#{attribute.name.humanize}\"#{CRLF}"
         | 
| 48 48 | 
             
                        end
         | 
| 49 | 
            -
                        content << "        op_new: \"New #{singular_table_name}\"#{CRLF}"
         | 
| 50 | 
            -
                        content << "        op_edit: \"Editing #{singular_table_name}\"#{CRLF}"
         | 
| 51 | 
            -
                        content << "        op_edit_multiple: \"Editing #{plural_table_name}\"#{CRLF}"
         | 
| 52 | 
            -
                        content << "        op_copy: \"Creating new #{plural_table_name}\"#{CRLF}"
         | 
| 53 | 
            -
                        # | 
| 54 | 
            -
                        #  content << "        op_index: \"Listing #{plural_table_name} belongings to %{parent} %{name}\"#{CRLF}"
         | 
| 55 | 
            -
                        #else
         | 
| 56 | 
            -
                          content << "        op_index: \"Listing #{plural_table_name}\"#{CRLF}"
         | 
| 57 | 
            -
                        #end
         | 
| 49 | 
            +
                        #content << "        op_new: \"New #{singular_table_name}\"#{CRLF}"
         | 
| 50 | 
            +
                        #content << "        op_edit: \"Editing #{singular_table_name}\"#{CRLF}"
         | 
| 51 | 
            +
                        #content << "        op_edit_multiple: \"Editing #{plural_table_name}\"#{CRLF}"
         | 
| 52 | 
            +
                        #content << "        op_copy: \"Creating new #{plural_table_name}\"#{CRLF}"
         | 
| 53 | 
            +
                        #content << "        op_index: \"Listing #{plural_table_name}\"#{CRLF}"
         | 
| 58 54 | 
             
                        content
         | 
| 59 55 | 
             
                      end
         | 
| 60 56 |  | 
| @@ -91,9 +87,8 @@ module Rails | |
| 91 87 | 
             
                  end
         | 
| 92 88 |  | 
| 93 89 | 
             
                  def update_ability_model
         | 
| 94 | 
            -
                     | 
| 95 | 
            -
                     | 
| 96 | 
            -
                    inject_into_file file, :before => "  end\nend" do
         | 
| 90 | 
            +
                    return unless authorization?
         | 
| 91 | 
            +
                    inject_into_file authorization_file, :before => "  end\nend" do
         | 
| 97 92 | 
             
                      <<-FILE.gsub(/^      /, '')
         | 
| 98 93 | 
             
                      #can :read, #{class_name} if #{options[:auth_class].downcase}.new_record? #Guest
         | 
| 99 94 | 
             
                      can :read, #{class_name} if #{options[:auth_class].downcase}.role? :guest #Registered guest
         | 
| @@ -145,15 +140,10 @@ module Rails | |
| 145 140 | 
             
                      <<-FILE.gsub(/^          /, '')
         | 
| 146 141 |  | 
| 147 142 | 
             
                        menu :if => proc{ can?(:read, #{class_name}) }
         | 
| 148 | 
            -
                        controller.authorize_resource
         | 
| 149 143 |  | 
| 150 144 | 
             
                        controller do
         | 
| 151 | 
            -
                           | 
| 152 | 
            -
                           | 
| 153 | 
            -
                            actions_abilities = {'show' => :read, 'new' => :create, 'edit' => :update, 'destroy' => :destroy}
         | 
| 154 | 
            -
                            prohibited_methods = actions_abilities.keys.select{|m| !can? actions_abilities[m], #{class_name}}
         | 
| 155 | 
            -
                            super - prohibited_methods
         | 
| 156 | 
            -
                          end
         | 
| 145 | 
            +
                          load_resource :except => :index
         | 
| 146 | 
            +
                          authorize_resource
         | 
| 157 147 | 
             
                        end
         | 
| 158 148 | 
             
                      FILE
         | 
| 159 149 | 
             
                    end if authorization? && File.exists?(file)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: active_leonardo
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 25
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 0
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.0. | 
| 9 | 
            +
              - 3
         | 
| 10 | 
            +
              version: 0.0.3
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Marco Mastrodonato
         | 
| @@ -15,12 +15,28 @@ autorequire: | |
| 15 15 | 
             
            bindir: bin
         | 
| 16 16 | 
             
            cert_chain: []
         | 
| 17 17 |  | 
| 18 | 
            -
            date: 2012- | 
| 18 | 
            +
            date: 2012-08-10 00:00:00 Z
         | 
| 19 19 | 
             
            dependencies: 
         | 
| 20 20 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 21 | 
            -
              name:  | 
| 21 | 
            +
              name: rails
         | 
| 22 22 | 
             
              prerelease: false
         | 
| 23 23 | 
             
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 24 | 
            +
                none: false
         | 
| 25 | 
            +
                requirements: 
         | 
| 26 | 
            +
                - - ">="
         | 
| 27 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 28 | 
            +
                    hash: 3
         | 
| 29 | 
            +
                    segments: 
         | 
| 30 | 
            +
                    - 3
         | 
| 31 | 
            +
                    - 1
         | 
| 32 | 
            +
                    - 0
         | 
| 33 | 
            +
                    version: 3.1.0
         | 
| 34 | 
            +
              type: :runtime
         | 
| 35 | 
            +
              version_requirements: *id001
         | 
| 36 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 37 | 
            +
              name: activeadmin
         | 
| 38 | 
            +
              prerelease: false
         | 
| 39 | 
            +
              requirement: &id002 !ruby/object:Gem::Requirement 
         | 
| 24 40 | 
             
                none: false
         | 
| 25 41 | 
             
                requirements: 
         | 
| 26 42 | 
             
                - - ">="
         | 
| @@ -32,7 +48,23 @@ dependencies: | |
| 32 48 | 
             
                    - 0
         | 
| 33 49 | 
             
                    version: 0.4.0
         | 
| 34 50 | 
             
              type: :runtime
         | 
| 35 | 
            -
              version_requirements: * | 
| 51 | 
            +
              version_requirements: *id002
         | 
| 52 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 53 | 
            +
              name: cancan
         | 
| 54 | 
            +
              prerelease: false
         | 
| 55 | 
            +
              requirement: &id003 !ruby/object:Gem::Requirement 
         | 
| 56 | 
            +
                none: false
         | 
| 57 | 
            +
                requirements: 
         | 
| 58 | 
            +
                - - ">="
         | 
| 59 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 60 | 
            +
                    hash: 3
         | 
| 61 | 
            +
                    segments: 
         | 
| 62 | 
            +
                    - 1
         | 
| 63 | 
            +
                    - 5
         | 
| 64 | 
            +
                    - 0
         | 
| 65 | 
            +
                    version: 1.5.0
         | 
| 66 | 
            +
              type: :runtime
         | 
| 67 | 
            +
              version_requirements: *id003
         | 
| 36 68 | 
             
            description: This generator help you to create new Rails applications to combine with active admin gem. It generates application structure to easily get the internationalization and authorization.
         | 
| 37 69 | 
             
            email: 
         | 
| 38 70 | 
             
            - m.mastrodonato@gmail.com
         | 
| @@ -50,12 +82,13 @@ files: | |
| 50 82 | 
             
            - lib/generators/leolay/templates/app/admin/users.rb
         | 
| 51 83 | 
             
            - lib/generators/leolay/templates/app/assets/javascripts/custom.js
         | 
| 52 84 | 
             
            - lib/generators/leolay/templates/app/helpers/layout_helper.rb
         | 
| 53 | 
            -
            - lib/generators/leolay/templates/ | 
| 85 | 
            +
            - lib/generators/leolay/templates/config/initializers/activeadmin_cancan.rb
         | 
| 86 | 
            +
            - lib/generators/leolay/templates/config/initializers/activeadmin_leonardo.rb
         | 
| 87 | 
            +
            - lib/generators/leolay/templates/config/locales/devise.it.yml
         | 
| 54 88 | 
             
            - lib/generators/leolay/templates/config/locales/en.yml
         | 
| 55 89 | 
             
            - lib/generators/leolay/templates/config/locales/it.yml
         | 
| 56 90 | 
             
            - lib/generators/leolay/templates/config.rb
         | 
| 57 91 | 
             
            - lib/generators/leolay/templates/lib/development_mail_interceptor.rb
         | 
| 58 | 
            -
            - lib/generators/leolay/templates/lib/upd_activeadmin.rb
         | 
| 59 92 | 
             
            - lib/generators/leolay/templates/lib/upd_array.rb
         | 
| 60 93 | 
             
            - lib/generators/leolay/templates/styles/active/images/logo.png
         | 
| 61 94 | 
             
            - lib/generators/leolay/templates/styles/active/images/style/ico_v.png
         | 
| @@ -1,21 +0,0 @@ | |
| 1 | 
            -
            <%%= semantic_form_for [:admin, @<%= options[:auth_class].downcase %>] do |f| %>
         | 
| 2 | 
            -
                <%%= f.inputs do %>
         | 
| 3 | 
            -
                    <%%#= f.input :group %>
         | 
| 4 | 
            -
                    <%%= f.input :email, :input_html => { :maxlength => 100 } %>
         | 
| 5 | 
            -
                    <%%= f.input :password %>
         | 
| 6 | 
            -
                    <%%= f.input :password_confirmation %>
         | 
| 7 | 
            -
                    <li>
         | 
| 8 | 
            -
                      <%%= f.label :roles %>
         | 
| 9 | 
            -
                      <%% for role in <%= options[:auth_class].downcase.classify %>::ROLES %>
         | 
| 10 | 
            -
                        <%%= check_box_tag "<%= options[:auth_class].downcase %>[roles][]", role, @<%= options[:auth_class].downcase %>.roles.include?(role) %>
         | 
| 11 | 
            -
                        <%%= h role.humanize %>
         | 
| 12 | 
            -
                      <%% end %>
         | 
| 13 | 
            -
                      <%%= hidden_field_tag "<%= options[:auth_class].downcase %>[roles][]"%>
         | 
| 14 | 
            -
                    </li>
         | 
| 15 | 
            -
                <%% end %>
         | 
| 16 | 
            -
                <%%#= f.inputs "Optional informations" do %>
         | 
| 17 | 
            -
                    <%%#= f.input :name %>
         | 
| 18 | 
            -
                    <%%#= f.input :login_ldap %>
         | 
| 19 | 
            -
                <%%# end %>
         | 
| 20 | 
            -
                <%%= f.buttons :commit %>
         | 
| 21 | 
            -
            <%% end %>
         | 
| @@ -1,65 +0,0 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            module ActiveAdmin
         | 
| 3 | 
            -
              module Views
         | 
| 4 | 
            -
                module Pages
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                  #Custom footer
         | 
| 7 | 
            -
                  #\lib\active_admin\views\pages\base.rb
         | 
| 8 | 
            -
                  class Base < Arbre::HTML::Document
         | 
| 9 | 
            -
                    private
         | 
| 10 | 
            -
                    def build_footer
         | 
| 11 | 
            -
                      div :id => "footer" do
         | 
| 12 | 
            -
                        para "#{CONFIG[:application][:name]} #{Rails.env} #{CONFIG[:application][:version]} <%= Time.now.year %>.".html_safe
         | 
| 13 | 
            -
                      end
         | 
| 14 | 
            -
                    end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                  end
         | 
| 17 | 
            -
                end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                #Avoid xml and json from download
         | 
| 20 | 
            -
                #\lib\active_admin\views\components\paginated_collection.rb
         | 
| 21 | 
            -
                #class PaginatedCollection
         | 
| 22 | 
            -
                #  def build_download_format_links(formats = [:csv])
         | 
| 23 | 
            -
                #    links = formats.collect do |format|
         | 
| 24 | 
            -
                #      link_to format.to_s.upcase, { :format => format}.merge(request.query_parameters.except(:commit, :format))
         | 
| 25 | 
            -
                #    end
         | 
| 26 | 
            -
                #    div :class => "download_links" do
         | 
| 27 | 
            -
            		 #     text_node [I18n.t('active_admin.download'), links].flatten.join(" ").html_safe
         | 
| 28 | 
            -
                #    end
         | 
| 29 | 
            -
                #  end
         | 
| 30 | 
            -
                #end
         | 
| 31 | 
            -
             | 
| 32 | 
            -
              end
         | 
| 33 | 
            -
             | 
| 34 | 
            -
              #class Resource
         | 
| 35 | 
            -
              #  module ActionItems
         | 
| 36 | 
            -
              #    private
         | 
| 37 | 
            -
              #
         | 
| 38 | 
            -
              #    # Adds the default action items to each resource
         | 
| 39 | 
            -
              #    def add_default_action_items
         | 
| 40 | 
            -
              #      # New Link on all actions except :new and :show
         | 
| 41 | 
            -
              #      add_action_item :except => [:new, :show] do
         | 
| 42 | 
            -
              #        if controller.action_methods.include?('new') && can?(:create, eval(active_admin_config.resource_name.classify))
         | 
| 43 | 
            -
              #          link_to(I18n.t('active_admin.new_model', :model => active_admin_config.resource_name), new_resource_path)
         | 
| 44 | 
            -
              #        end
         | 
| 45 | 
            -
              #      end
         | 
| 46 | 
            -
              #
         | 
| 47 | 
            -
              #      # Edit link on show
         | 
| 48 | 
            -
              #      add_action_item :only => :show do
         | 
| 49 | 
            -
              #        if controller.action_methods.include?('edit') && can?(:edit, resource)
         | 
| 50 | 
            -
              #          link_to(I18n.t('active_admin.edit_model', :model => active_admin_config.resource_name), edit_resource_path(resource))
         | 
| 51 | 
            -
              #        end
         | 
| 52 | 
            -
              #      end
         | 
| 53 | 
            -
              #
         | 
| 54 | 
            -
              #      # Destroy link on show
         | 
| 55 | 
            -
              #      add_action_item :only => :show do
         | 
| 56 | 
            -
              #        if controller.action_methods.include?("destroy") && can?(:destroy, resource)
         | 
| 57 | 
            -
              #          link_to(I18n.t('active_admin.delete_model', :model => active_admin_config.resource_name),
         | 
| 58 | 
            -
              #            resource_path(resource),
         | 
| 59 | 
            -
              #            :method => :delete, :confirm => I18n.t('active_admin.delete_confirmation'))
         | 
| 60 | 
            -
              #        end
         | 
| 61 | 
            -
              #      end
         | 
| 62 | 
            -
              #    end
         | 
| 63 | 
            -
              #  end
         | 
| 64 | 
            -
              #end
         | 
| 65 | 
            -
            end
         |