Add Rails admin
This commit is contained in:
1
Gemfile
1
Gemfile
@ -36,6 +36,7 @@ gem 'faraday'
|
|||||||
gem 'proforma', git: 'https://github.com/openHPI/proforma.git', tag: 'v0.5'
|
gem 'proforma', git: 'https://github.com/openHPI/proforma.git', tag: 'v0.5'
|
||||||
gem 'whenever', require: false
|
gem 'whenever', require: false
|
||||||
gem 'rails-timeago'
|
gem 'rails-timeago'
|
||||||
|
gem 'rails_admin', '~> 2.0'
|
||||||
|
|
||||||
# Error Tracing
|
# Error Tracing
|
||||||
gem 'concurrent-ruby'
|
gem 'concurrent-ruby'
|
||||||
|
43
Gemfile.lock
43
Gemfile.lock
@ -50,6 +50,10 @@ GEM
|
|||||||
globalid (>= 0.3.6)
|
globalid (>= 0.3.6)
|
||||||
activemodel (5.2.4.4)
|
activemodel (5.2.4.4)
|
||||||
activesupport (= 5.2.4.4)
|
activesupport (= 5.2.4.4)
|
||||||
|
activemodel-serializers-xml (1.0.2)
|
||||||
|
activemodel (> 5.x)
|
||||||
|
activesupport (> 5.x)
|
||||||
|
builder (~> 3.1)
|
||||||
activerecord (5.2.4.4)
|
activerecord (5.2.4.4)
|
||||||
activemodel (= 5.2.4.4)
|
activemodel (= 5.2.4.4)
|
||||||
activesupport (= 5.2.4.4)
|
activesupport (= 5.2.4.4)
|
||||||
@ -139,6 +143,9 @@ GEM
|
|||||||
forgery (0.8.1)
|
forgery (0.8.1)
|
||||||
globalid (0.4.2)
|
globalid (0.4.2)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
|
haml (5.2.0)
|
||||||
|
temple (>= 0.8.0)
|
||||||
|
tilt
|
||||||
hashdiff (1.0.1)
|
hashdiff (1.0.1)
|
||||||
headless (2.3.1)
|
headless (2.3.1)
|
||||||
highline (2.0.3)
|
highline (2.0.3)
|
||||||
@ -157,8 +164,26 @@ GEM
|
|||||||
oauth (>= 0.4.5, < 0.6)
|
oauth (>= 0.4.5, < 0.6)
|
||||||
jbuilder (2.10.1)
|
jbuilder (2.10.1)
|
||||||
activesupport (>= 5.0.0)
|
activesupport (>= 5.0.0)
|
||||||
|
jquery-rails (4.4.0)
|
||||||
|
rails-dom-testing (>= 1, < 3)
|
||||||
|
railties (>= 4.2.0)
|
||||||
|
thor (>= 0.14, < 2.0)
|
||||||
|
jquery-ui-rails (6.0.1)
|
||||||
|
railties (>= 3.2.16)
|
||||||
json (2.3.1)
|
json (2.3.1)
|
||||||
jwt (2.2.2)
|
jwt (2.2.2)
|
||||||
|
kaminari (1.2.1)
|
||||||
|
activesupport (>= 4.1.0)
|
||||||
|
kaminari-actionview (= 1.2.1)
|
||||||
|
kaminari-activerecord (= 1.2.1)
|
||||||
|
kaminari-core (= 1.2.1)
|
||||||
|
kaminari-actionview (1.2.1)
|
||||||
|
actionview
|
||||||
|
kaminari-core (= 1.2.1)
|
||||||
|
kaminari-activerecord (1.2.1)
|
||||||
|
activerecord
|
||||||
|
kaminari-core (= 1.2.1)
|
||||||
|
kaminari-core (1.2.1)
|
||||||
kramdown (2.3.0)
|
kramdown (2.3.0)
|
||||||
rexml
|
rexml
|
||||||
listen (3.3.1)
|
listen (3.3.1)
|
||||||
@ -192,6 +217,7 @@ GEM
|
|||||||
multi_json (1.15.0)
|
multi_json (1.15.0)
|
||||||
multi_xml (0.6.0)
|
multi_xml (0.6.0)
|
||||||
multipart-post (2.1.1)
|
multipart-post (2.1.1)
|
||||||
|
nested_form (0.3.2)
|
||||||
netrc (0.11.0)
|
netrc (0.11.0)
|
||||||
newrelic_rpm (6.14.0)
|
newrelic_rpm (6.14.0)
|
||||||
nio4r (2.5.4)
|
nio4r (2.5.4)
|
||||||
@ -231,6 +257,9 @@ GEM
|
|||||||
rack (2.2.3)
|
rack (2.2.3)
|
||||||
rack-mini-profiler (2.2.0)
|
rack-mini-profiler (2.2.0)
|
||||||
rack (>= 1.2.0)
|
rack (>= 1.2.0)
|
||||||
|
rack-pjax (1.1.0)
|
||||||
|
nokogiri (~> 1.5)
|
||||||
|
rack (>= 1.1)
|
||||||
rack-proxy (0.6.5)
|
rack-proxy (0.6.5)
|
||||||
rack
|
rack
|
||||||
rack-test (1.1.0)
|
rack-test (1.1.0)
|
||||||
@ -263,6 +292,18 @@ GEM
|
|||||||
rails-timeago (2.19.0)
|
rails-timeago (2.19.0)
|
||||||
actionpack (>= 3.1)
|
actionpack (>= 3.1)
|
||||||
activesupport (>= 3.1)
|
activesupport (>= 3.1)
|
||||||
|
rails_admin (2.0.2)
|
||||||
|
activemodel-serializers-xml (>= 1.0)
|
||||||
|
builder (~> 3.1)
|
||||||
|
haml (>= 4.0, < 6)
|
||||||
|
jquery-rails (>= 3.0, < 5)
|
||||||
|
jquery-ui-rails (>= 5.0, < 7)
|
||||||
|
kaminari (>= 0.14, < 2.0)
|
||||||
|
nested_form (~> 0.3)
|
||||||
|
rack-pjax (>= 0.7)
|
||||||
|
rails (>= 5.0, < 7)
|
||||||
|
remotipart (~> 1.3)
|
||||||
|
sassc-rails (>= 1.3, < 3)
|
||||||
railties (5.2.4.4)
|
railties (5.2.4.4)
|
||||||
actionpack (= 5.2.4.4)
|
actionpack (= 5.2.4.4)
|
||||||
activesupport (= 5.2.4.4)
|
activesupport (= 5.2.4.4)
|
||||||
@ -280,6 +321,7 @@ GEM
|
|||||||
rb-inotify (0.10.1)
|
rb-inotify (0.10.1)
|
||||||
ffi (~> 1.0)
|
ffi (~> 1.0)
|
||||||
regexp_parser (1.8.2)
|
regexp_parser (1.8.2)
|
||||||
|
remotipart (1.4.4)
|
||||||
rest-client (2.1.0)
|
rest-client (2.1.0)
|
||||||
http-accept (>= 1.7.0, < 2.0)
|
http-accept (>= 1.7.0, < 2.0)
|
||||||
http-cookie (>= 1.0.2, < 2.0)
|
http-cookie (>= 1.0.2, < 2.0)
|
||||||
@ -460,6 +502,7 @@ DEPENDENCIES
|
|||||||
rails-controller-testing
|
rails-controller-testing
|
||||||
rails-i18n
|
rails-i18n
|
||||||
rails-timeago
|
rails-timeago
|
||||||
|
rails_admin (~> 2.0)
|
||||||
ransack
|
ransack
|
||||||
rest-client
|
rest-client
|
||||||
rspec-autotest
|
rspec-autotest
|
||||||
|
@ -76,4 +76,7 @@ class ApplicationPolicy
|
|||||||
end
|
end
|
||||||
private :require_user!
|
private :require_user!
|
||||||
end
|
end
|
||||||
|
[:dashboard?, :index?, :new?, :export?, :bulk_delete?, :show?, :edit?, :delete?, :show_in_app?,].each do |action|
|
||||||
|
define_method(action) { admin? }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
ul.dropdown-menu.p-0.mt-1 role='menu'
|
ul.dropdown-menu.p-0.mt-1 role='menu'
|
||||||
- if current_user.admin?
|
- if current_user.admin?
|
||||||
li = link_to(t('breadcrumbs.dashboard.show'), admin_dashboard_path, class: 'dropdown-item', 'data-turbolinks' => "false") if policy([:admin, :dashboard]).show?
|
li = link_to(t('breadcrumbs.dashboard.show'), admin_dashboard_path, class: 'dropdown-item', 'data-turbolinks' => "false") if policy([:admin, :dashboard]).show?
|
||||||
|
li = link_to(t('breadcrumbs.rails_admin.show'), rails_admin.dashboard_path, class: 'dropdown-item', 'data-turbolinks' => "false") if policy([:admin, :dashboard]).show?
|
||||||
li = link_to(t('breadcrumbs.statistics.show'), statistics_path, class: 'dropdown-item') if policy(:statistics).show?
|
li = link_to(t('breadcrumbs.statistics.show'), statistics_path, class: 'dropdown-item') if policy(:statistics).show?
|
||||||
li.dropdown-divider role='separator'
|
li.dropdown-divider role='separator'
|
||||||
= render('navigation_submenu', title: t('activerecord.models.exercise.other'),
|
= render('navigation_submenu', title: t('activerecord.models.exercise.other'),
|
||||||
|
66
config/initializers/rails_admin.rb
Normal file
66
config/initializers/rails_admin.rb
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
RailsAdmin.config do |config|
|
||||||
|
|
||||||
|
### Popular gems integration
|
||||||
|
|
||||||
|
## == Devise ==
|
||||||
|
# config.authenticate_with do
|
||||||
|
# warden.authenticate! scope: :user
|
||||||
|
# end
|
||||||
|
# config.current_user_method(&:current_user)
|
||||||
|
|
||||||
|
## == CancanCan ==
|
||||||
|
# config.authorize_with :cancancan
|
||||||
|
|
||||||
|
## == Pundit ==
|
||||||
|
# config.authorize_with :pundit
|
||||||
|
config.authorize_with do
|
||||||
|
redirect_to main_app.root_path unless current_user.admin?
|
||||||
|
# unless current_user.admin?
|
||||||
|
# flash[:alert] = 'Access denied.'
|
||||||
|
# redirect_to main_app.root_path
|
||||||
|
# end
|
||||||
|
end
|
||||||
|
|
||||||
|
## == PaperTrail ==
|
||||||
|
# config.audit_with :paper_trail, 'User', 'PaperTrail::Version' # PaperTrail >= 3.0.0
|
||||||
|
|
||||||
|
### More at https://github.com/sferik/rails_admin/wiki/Base-configuration
|
||||||
|
|
||||||
|
## == Gravatar integration ==
|
||||||
|
## To disable Gravatar integration in Navigation Bar set to false
|
||||||
|
# config.show_gravatar = true
|
||||||
|
|
||||||
|
config.actions do
|
||||||
|
dashboard # mandatory
|
||||||
|
index # mandatory
|
||||||
|
new
|
||||||
|
export
|
||||||
|
bulk_delete
|
||||||
|
show
|
||||||
|
edit
|
||||||
|
delete
|
||||||
|
show_in_app
|
||||||
|
|
||||||
|
## With an audit adapter, you can add:
|
||||||
|
# history_index
|
||||||
|
# history_show
|
||||||
|
end
|
||||||
|
|
||||||
|
# stolen from https://github.com/kaminari/kaminari/issues/162#issuecomment-52083985
|
||||||
|
if defined?(WillPaginate)
|
||||||
|
module WillPaginate
|
||||||
|
module ActiveRecord
|
||||||
|
module RelationMethods
|
||||||
|
def per(value = nil) per_page(value) end
|
||||||
|
def total_count() count end
|
||||||
|
def first_page?() self == first end
|
||||||
|
def last_page?() self == last end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
module CollectionMethods
|
||||||
|
alias_method :num_pages, :total_pages
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -261,6 +261,8 @@ en:
|
|||||||
graphs: "Graphs"
|
graphs: "Graphs"
|
||||||
user_activity_history: User Activity History
|
user_activity_history: User Activity History
|
||||||
rfc_activity_history: RfC Activity History
|
rfc_activity_history: RfC Activity History
|
||||||
|
rails_admin:
|
||||||
|
show: "Rails admin"
|
||||||
consumers:
|
consumers:
|
||||||
show:
|
show:
|
||||||
link: Consumer
|
link: Consumer
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
FILENAME_REGEXP = /[\w\.]+/ unless Kernel.const_defined?(:FILENAME_REGEXP)
|
FILENAME_REGEXP = /[\w\.]+/ unless Kernel.const_defined?(:FILENAME_REGEXP)
|
||||||
|
|
||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
|
mount RailsAdmin::Engine => '/rails_admin', as: 'rails_admin'
|
||||||
resources :error_template_attributes
|
resources :error_template_attributes
|
||||||
resources :error_templates do
|
resources :error_templates do
|
||||||
member do
|
member do
|
||||||
|
Reference in New Issue
Block a user