the_role 2.5.4 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +178 -526
- data/gem_version.rb +3 -0
- data/lib/the_role/version.rb +1 -3
- data/lib/the_role.rb +3 -41
- data/the_role.gemspec +5 -5
- metadata +20 -231
- data/.ruby-gemset.example +0 -1
- data/.ruby-version.example +0 -1
- data/.rvmrc.example +0 -1
- data/.travis.yml +0 -5
- data/Bye_bye_CanCan_I_got_the_Role.png +0 -0
- data/app/controllers/admin/role_sections_controller.rb +0 -90
- data/app/controllers/admin/roles_controller.rb +0 -74
- data/app/controllers/concerns/controller.rb +0 -23
- data/app/models/_templates_/role.rb +0 -3
- data/app/models/concerns/base.rb +0 -37
- data/app/models/concerns/role.rb +0 -156
- data/app/models/concerns/user.rb +0 -57
- data/config/locales/en.yml +0 -44
- data/config/locales/es.yml +0 -42
- data/config/locales/nl.yml +0 -44
- data/config/locales/pl.yml +0 -43
- data/config/locales/pt_BR.yml +0 -43
- data/config/locales/ru.yml +0 -43
- data/config/locales/zh_CN.yml +0 -42
- data/config/routes.rb +0 -23
- data/db/migrate/20111025025129_create_roles.rb +0 -23
- data/docs/2.1.1.png +0 -0
- data/lib/generators/the_role/USAGE +0 -32
- data/lib/generators/the_role/templates/the_role.rb +0 -11
- data/lib/generators/the_role/the_role_generator.rb +0 -64
- data/lib/tasks/roles.rake +0 -137
- data/lib/the_role/activerecord.rb +0 -11
- data/lib/the_role/config.rb +0 -30
- data/lib/the_role/hash.rb +0 -58
- data/lib/the_role/the_class_exists.rb +0 -8
- data/pic.png +0 -0
- data/spec/dummy_app/.gitignore +0 -18
- data/spec/dummy_app/.rspec +0 -1
- data/spec/dummy_app/Gemfile +0 -43
- data/spec/dummy_app/README.md +0 -39
- data/spec/dummy_app/Rakefile +0 -6
- data/spec/dummy_app/app/assets/images/.keep +0 -0
- data/spec/dummy_app/app/assets/javascripts/application.js +0 -17
- data/spec/dummy_app/app/assets/stylesheets/app/style.css.scss +0 -23
- data/spec/dummy_app/app/assets/stylesheets/application.css +0 -3
- data/spec/dummy_app/app/controllers/application_controller.rb +0 -38
- data/spec/dummy_app/app/controllers/concerns/.keep +0 -0
- data/spec/dummy_app/app/controllers/pages_controller.rb +0 -75
- data/spec/dummy_app/app/controllers/users_controller.rb +0 -32
- data/spec/dummy_app/app/controllers/welcome_controller.rb +0 -13
- data/spec/dummy_app/app/helpers/application_helper.rb +0 -2
- data/spec/dummy_app/app/mailers/.keep +0 -0
- data/spec/dummy_app/app/models/.keep +0 -0
- data/spec/dummy_app/app/models/concerns/.keep +0 -0
- data/spec/dummy_app/app/models/page.rb +0 -24
- data/spec/dummy_app/app/models/role.rb +0 -4
- data/spec/dummy_app/app/models/user.rb +0 -21
- data/spec/dummy_app/app/views/layouts/_current_user_info.html.haml +0 -17
- data/spec/dummy_app/app/views/layouts/application.html.haml +0 -68
- data/spec/dummy_app/app/views/pages/_form.html.haml +0 -19
- data/spec/dummy_app/app/views/pages/edit.html.haml +0 -7
- data/spec/dummy_app/app/views/pages/index.html.haml +0 -27
- data/spec/dummy_app/app/views/pages/manage.html.haml +0 -23
- data/spec/dummy_app/app/views/pages/my.html.haml +0 -10
- data/spec/dummy_app/app/views/pages/new.html.haml +0 -5
- data/spec/dummy_app/app/views/pages/show.html.haml +0 -15
- data/spec/dummy_app/app/views/users/edit.html.haml +0 -34
- data/spec/dummy_app/app/views/welcome/index.html.haml +0 -38
- data/spec/dummy_app/app/views/welcome/profile.html.haml +0 -2
- data/spec/dummy_app/bin/bundle +0 -3
- data/spec/dummy_app/bin/rails +0 -4
- data/spec/dummy_app/bin/rake +0 -4
- data/spec/dummy_app/config/application.rb +0 -25
- data/spec/dummy_app/config/boot.rb +0 -4
- data/spec/dummy_app/config/database.yml +0 -17
- data/spec/dummy_app/config/environment.rb +0 -5
- data/spec/dummy_app/config/environments/development.rb +0 -29
- data/spec/dummy_app/config/environments/production.rb +0 -80
- data/spec/dummy_app/config/environments/test.rb +0 -36
- data/spec/dummy_app/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/dummy_app/config/initializers/devise.rb +0 -227
- data/spec/dummy_app/config/initializers/filter_parameter_logging.rb +0 -4
- data/spec/dummy_app/config/initializers/inflections.rb +0 -16
- data/spec/dummy_app/config/initializers/mime_types.rb +0 -5
- data/spec/dummy_app/config/initializers/secret_token.rb +0 -12
- data/spec/dummy_app/config/initializers/session_store.rb +0 -3
- data/spec/dummy_app/config/initializers/the_role.rb +0 -6
- data/spec/dummy_app/config/initializers/wrap_parameters.rb +0 -14
- data/spec/dummy_app/config/locales/devise.en.yml +0 -57
- data/spec/dummy_app/config/locales/en.yml +0 -7
- data/spec/dummy_app/config/locales/ru.yml +0 -4
- data/spec/dummy_app/config/routes.rb +0 -26
- data/spec/dummy_app/config.ru +0 -4
- data/spec/dummy_app/db/migrate/20120212061952_devise_create_users.rb +0 -63
- data/spec/dummy_app/db/migrate/20120212063249_create_roles.rb +0 -18
- data/spec/dummy_app/db/migrate/20120314061307_create_pages.rb +0 -14
- data/spec/dummy_app/db/schema.rb +0 -59
- data/spec/dummy_app/db/seeds.rb +0 -85
- data/spec/dummy_app/lib/assets/.keep +0 -0
- data/spec/dummy_app/lib/tasks/.keep +0 -0
- data/spec/dummy_app/lib/tasks/assets.rake +0 -15
- data/spec/dummy_app/lib/tasks/db_bootstrap.rake +0 -16
- data/spec/dummy_app/log/.keep +0 -0
- data/spec/dummy_app/public/404.html +0 -58
- data/spec/dummy_app/public/422.html +0 -58
- data/spec/dummy_app/public/500.html +0 -57
- data/spec/dummy_app/public/favicon.ico +0 -0
- data/spec/dummy_app/public/robots.txt +0 -5
- data/spec/dummy_app/spec/controllers/admin_roles_controller_spec.rb +0 -52
- data/spec/dummy_app/spec/controllers/pages_controller_spec.rb +0 -141
- data/spec/dummy_app/spec/controllers/welcome_controller_spec.rb +0 -66
- data/spec/dummy_app/spec/factories/page.rb +0 -6
- data/spec/dummy_app/spec/factories/role.rb +0 -55
- data/spec/dummy_app/spec/factories/user.rb +0 -11
- data/spec/dummy_app/spec/models/hash_spec.rb +0 -272
- data/spec/dummy_app/spec/models/param_process_spec.rb +0 -39
- data/spec/dummy_app/spec/models/role_spec.rb +0 -218
- data/spec/dummy_app/spec/models/user_spec.rb +0 -164
- data/spec/dummy_app/spec/routing/admin_roles_routing_spec.rb +0 -41
- data/spec/dummy_app/spec/routing/pages_routing_spec.rb +0 -35
- data/spec/dummy_app/spec/spec_helper.rb +0 -68
- data/spec/dummy_app/vendor/assets/javascripts/.keep +0 -0
- data/spec/dummy_app/vendor/assets/stylesheets/.keep +0 -0
- data/the_role.yml.teamocil.example +0 -11
data/lib/tasks/roles.rake
DELETED
@@ -1,137 +0,0 @@
|
|
1
|
-
namespace :db do
|
2
|
-
namespace :roles do
|
3
|
-
# rake db:roles:admin
|
4
|
-
desc 'create Admin Role'
|
5
|
-
task :admin => :environment do
|
6
|
-
puts `clear`
|
7
|
-
puts '~'*40
|
8
|
-
puts 'TheRole'
|
9
|
-
puts '~'*40
|
10
|
-
|
11
|
-
TheRole.create_admin!
|
12
|
-
|
13
|
-
puts "Now you can makes any user as Admin:"
|
14
|
-
puts "> rails c"
|
15
|
-
puts "> User.first.update( role: Role.with_name(:admin) )"
|
16
|
-
puts '~'*40
|
17
|
-
end
|
18
|
-
|
19
|
-
# rake db:roles:test
|
20
|
-
desc 'create roles'
|
21
|
-
task :test => :environment do
|
22
|
-
# ADMIN
|
23
|
-
Rake::Task["db:roles:admin"].invoke
|
24
|
-
puts 'Administrator'
|
25
|
-
|
26
|
-
# MODERATOR
|
27
|
-
role = {
|
28
|
-
:users => {
|
29
|
-
:edit => true,
|
30
|
-
:show => true,
|
31
|
-
:update => true
|
32
|
-
},
|
33
|
-
:moderator => {
|
34
|
-
:pages => true
|
35
|
-
},
|
36
|
-
:markup => {
|
37
|
-
:html => true
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
Role.create!(
|
42
|
-
:name => :moderator,
|
43
|
-
:title => 'Moderator of pages',
|
44
|
-
:description => "Moderator #1",
|
45
|
-
:the_role => role.to_json
|
46
|
-
)
|
47
|
-
|
48
|
-
puts 'Moderator of pages'
|
49
|
-
|
50
|
-
# USER
|
51
|
-
role = {
|
52
|
-
:users => {
|
53
|
-
:edit => true,
|
54
|
-
:show => true,
|
55
|
-
:update => true
|
56
|
-
},
|
57
|
-
:profiles => {
|
58
|
-
:edit => true,
|
59
|
-
:update => true
|
60
|
-
},
|
61
|
-
:articles => {
|
62
|
-
:new => true,
|
63
|
-
:create => true,
|
64
|
-
:edit => true,
|
65
|
-
:update => true,
|
66
|
-
:destroy => true,
|
67
|
-
:tags => false
|
68
|
-
},
|
69
|
-
:pages => {
|
70
|
-
:new => true,
|
71
|
-
:create => true,
|
72
|
-
:edit => true,
|
73
|
-
:update => true,
|
74
|
-
:destroy => true,
|
75
|
-
:tags => true
|
76
|
-
},
|
77
|
-
:markup => {
|
78
|
-
:html => false
|
79
|
-
}
|
80
|
-
}
|
81
|
-
|
82
|
-
Role.create!(
|
83
|
-
:name => :user,
|
84
|
-
:title => 'User',
|
85
|
-
:description => "Role for User",
|
86
|
-
:the_role => role.to_json
|
87
|
-
)
|
88
|
-
|
89
|
-
puts 'User'
|
90
|
-
|
91
|
-
# DEMO
|
92
|
-
role = {
|
93
|
-
:users => {
|
94
|
-
:edit => true,
|
95
|
-
:show => true,
|
96
|
-
:update => true
|
97
|
-
},
|
98
|
-
:profiles => {
|
99
|
-
:edit => true,
|
100
|
-
:update => false
|
101
|
-
},
|
102
|
-
:articles => {
|
103
|
-
:new => true,
|
104
|
-
:show => true,
|
105
|
-
:create => false,
|
106
|
-
:edit => true,
|
107
|
-
:update => false,
|
108
|
-
:destroy => false,
|
109
|
-
:tags => false
|
110
|
-
},
|
111
|
-
:pages => {
|
112
|
-
:new => true,
|
113
|
-
:show => true,
|
114
|
-
:create => false,
|
115
|
-
:edit => true,
|
116
|
-
:update => false,
|
117
|
-
:destroy => false,
|
118
|
-
:tags => false
|
119
|
-
},
|
120
|
-
:markup => {
|
121
|
-
:html => false
|
122
|
-
}
|
123
|
-
}
|
124
|
-
|
125
|
-
Role.create!(
|
126
|
-
:name => :demo,
|
127
|
-
:title => 'Demo',
|
128
|
-
:description => "Demo user",
|
129
|
-
:the_role => role.to_json
|
130
|
-
)
|
131
|
-
|
132
|
-
puts 'Demo'
|
133
|
-
|
134
|
-
puts 'Roles created'
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
data/lib/the_role/config.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
module TheRole
|
2
|
-
def self.configure(&block)
|
3
|
-
yield @config ||= TheRole::Configuration.new
|
4
|
-
end
|
5
|
-
|
6
|
-
def self.config
|
7
|
-
@config
|
8
|
-
end
|
9
|
-
|
10
|
-
# Configuration class
|
11
|
-
class Configuration
|
12
|
-
include ActiveSupport::Configurable
|
13
|
-
config_accessor :layout,
|
14
|
-
:destroy_strategy,
|
15
|
-
:default_user_role,
|
16
|
-
:access_denied_method,
|
17
|
-
:login_required_method,
|
18
|
-
:first_user_should_be_admin
|
19
|
-
end
|
20
|
-
|
21
|
-
configure do |config|
|
22
|
-
config.layout = :application
|
23
|
-
|
24
|
-
config.default_user_role = nil
|
25
|
-
config.first_user_should_be_admin = false
|
26
|
-
config.access_denied_method = :access_denied
|
27
|
-
config.login_required_method = :authenticate_user!
|
28
|
-
config.destroy_strategy = :restrict_with_exception # can be nil
|
29
|
-
end
|
30
|
-
end
|
data/lib/the_role/hash.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
# load 'the_role/hash.rb' - UPDATE, BUT NOT RELOAD [for console testing]
|
2
|
-
class Hash
|
3
|
-
# deep_transform_keys
|
4
|
-
# deep_stringify_keys
|
5
|
-
# underscorify_keys
|
6
|
-
# deep_reset
|
7
|
-
unless {}.respond_to?(:deep_transform_keys)
|
8
|
-
def deep_transform_keys(&block)
|
9
|
-
result = {}
|
10
|
-
each do |key, value|
|
11
|
-
result[yield(key)] = value.is_a?(Hash) ? value.deep_transform_keys(&block) : value
|
12
|
-
end
|
13
|
-
result
|
14
|
-
end
|
15
|
-
|
16
|
-
def deep_transform_keys!(&block)
|
17
|
-
keys.each do |key|
|
18
|
-
value = delete(key)
|
19
|
-
self[yield(key)] = value.is_a?(Hash) ? value.deep_transform_keys!(&block) : value
|
20
|
-
end
|
21
|
-
self
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
unless {}.respond_to?(:deep_stringify_keys)
|
26
|
-
def deep_stringify_keys
|
27
|
-
deep_transform_keys{ |key| key.to_s }
|
28
|
-
end
|
29
|
-
|
30
|
-
def deep_stringify_keys!
|
31
|
-
deep_transform_keys!{ |key| key.to_s }
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
unless {}.respond_to?(:underscorify_keys)
|
36
|
-
def underscorify_keys
|
37
|
-
deep_transform_keys{ |key| key.to_slug_param(sep: '_') }
|
38
|
-
end
|
39
|
-
|
40
|
-
def underscorify_keys!
|
41
|
-
replace underscorify_keys
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
unless {}.respond_to?(:deep_reset)
|
46
|
-
def deep_reset(default = nil)
|
47
|
-
hash = dup
|
48
|
-
hash.each do |key, value|
|
49
|
-
hash[key] = hash[key].is_a?(Hash) ? hash[key].deep_reset(default) : default
|
50
|
-
end
|
51
|
-
hash
|
52
|
-
end
|
53
|
-
|
54
|
-
def deep_reset!(default = nil)
|
55
|
-
replace deep_reset(default)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
data/pic.png
DELETED
Binary file
|
data/spec/dummy_app/.gitignore
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
2
|
-
#
|
3
|
-
# If you find yourself ignoring temporary files generated by your text editor
|
4
|
-
# or operating system, you probably want to add a global ignore instead:
|
5
|
-
# git config --global core.excludesfile '~/.gitignore_global'
|
6
|
-
|
7
|
-
# Ignore bundler config.
|
8
|
-
/.bundle
|
9
|
-
|
10
|
-
# Ignore the default SQLite database.
|
11
|
-
/db/*.db
|
12
|
-
/db/*.sqlite3
|
13
|
-
/db/*.sqlite3-journal
|
14
|
-
|
15
|
-
# Ignore all logfiles and tempfiles.
|
16
|
-
.rvmrc
|
17
|
-
/log/*.log
|
18
|
-
/tmp
|
data/spec/dummy_app/.rspec
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--color
|
data/spec/dummy_app/Gemfile
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
gem 'rails'
|
4
|
-
|
5
|
-
gem 'devise'
|
6
|
-
gem 'sqlite3'
|
7
|
-
gem 'state_machine', '~> 1.2.0'
|
8
|
-
|
9
|
-
gem 'sprockets-rails', github: 'rails/sprockets-rails'
|
10
|
-
gem 'coffee-rails', github: 'rails/coffee-rails'
|
11
|
-
gem 'sass-rails', github: 'rails/sass-rails'
|
12
|
-
|
13
|
-
gem 'bootstrap-sass', github: 'thomas-mcdonald/bootstrap-sass'
|
14
|
-
|
15
|
-
gem 'faker'
|
16
|
-
gem 'uglifier'
|
17
|
-
|
18
|
-
gem 'jquery-rails'
|
19
|
-
gem 'jbuilder', '~> 1.0.1'
|
20
|
-
|
21
|
-
# gem 'the_string_to_slug', path: "../../../the_string_to_slug"
|
22
|
-
|
23
|
-
gem 'the_role',
|
24
|
-
path: '../../'
|
25
|
-
# "~> 2.5.3"
|
26
|
-
|
27
|
-
gem 'the_role_bootstrap3_ui',
|
28
|
-
# path: "path: '../../../../../the_role_bootstrap3_ui"
|
29
|
-
github: 'the-teacher/the_role_bootstrap3_ui',
|
30
|
-
branch: 'master'
|
31
|
-
|
32
|
-
group :development do
|
33
|
-
gem 'pry-rails'
|
34
|
-
end
|
35
|
-
|
36
|
-
group :test do
|
37
|
-
gem 'factory_girl_rails', '~> 4.0'
|
38
|
-
gem 'database_cleaner', git: 'https://github.com/bmabey/database_cleaner.git', tag: 'v1.0.0'
|
39
|
-
|
40
|
-
gem 'rspec', '2.14.1'
|
41
|
-
gem 'rspec-core', '2.14.4'
|
42
|
-
gem 'rspec-rails', '2.14.0'
|
43
|
-
end
|
data/spec/dummy_app/README.md
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
## TheRole test App
|
2
|
-
|
3
|
-
App for development and testing TheRole gem
|
4
|
-
|
5
|
-
### How to get?
|
6
|
-
|
7
|
-
```
|
8
|
-
git clone git@github.com:the-teacher/the_role.git
|
9
|
-
|
10
|
-
cd the_role/spec/dummy_app/
|
11
|
-
|
12
|
-
bundle
|
13
|
-
```
|
14
|
-
|
15
|
-
### Start it!
|
16
|
-
|
17
|
-
```
|
18
|
-
rake db:bootstrap_and_seed
|
19
|
-
|
20
|
-
rails s
|
21
|
-
```
|
22
|
-
|
23
|
-
### Test it!
|
24
|
-
|
25
|
-
```
|
26
|
-
rake db:bootstrap RAILS_ENV=test
|
27
|
-
rspec --format documentation
|
28
|
-
|
29
|
-
rspec spec/models/ --format documentation
|
30
|
-
```
|
31
|
-
|
32
|
-
### Production mode
|
33
|
-
|
34
|
-
```
|
35
|
-
rake assets:build RAILS_ENV=production
|
36
|
-
rake db:test_launch RAILS_ENV=production
|
37
|
-
|
38
|
-
rails s -e production
|
39
|
-
```
|
data/spec/dummy_app/Rakefile
DELETED
File without changes
|
@@ -1,17 +0,0 @@
|
|
1
|
-
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
-
// listed below.
|
3
|
-
//
|
4
|
-
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
-
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
-
//
|
7
|
-
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
-
// compiled file.
|
9
|
-
//
|
10
|
-
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
11
|
-
// GO AFTER THE REQUIRES BELOW.
|
12
|
-
//
|
13
|
-
//= require jquery
|
14
|
-
//= require jquery_ujs
|
15
|
-
|
16
|
-
//= require bootstrap
|
17
|
-
//= require the_role_editinplace
|
@@ -1,23 +0,0 @@
|
|
1
|
-
.header{
|
2
|
-
margin: 10px 0;
|
3
|
-
background-color: #DCEAF4;
|
4
|
-
padding: 5px 10px 10px 10px;
|
5
|
-
border-radius: 5px;
|
6
|
-
}
|
7
|
-
|
8
|
-
.manage_panel, .main_content{
|
9
|
-
background-color: #DCEAF4;
|
10
|
-
padding: 5px 10px 10px 10px;
|
11
|
-
border-radius: 5px;
|
12
|
-
}
|
13
|
-
|
14
|
-
.main_content{
|
15
|
-
h1{
|
16
|
-
padding-bottom: 10px;
|
17
|
-
border-bottom: 1px solid gray;
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
21
|
-
.edit_role{
|
22
|
-
input{ margin: 0; }
|
23
|
-
}
|
@@ -1,38 +0,0 @@
|
|
1
|
-
class ApplicationController < ActionController::Base
|
2
|
-
include TheRole::Controller
|
3
|
-
|
4
|
-
# Prevent CSRF attacks by raising an exception.
|
5
|
-
# For APIs, you may want to use :null_session instead.
|
6
|
-
protect_from_forgery with: :exception
|
7
|
-
|
8
|
-
protect_from_forgery
|
9
|
-
before_filter :set_locale
|
10
|
-
|
11
|
-
def access_denied
|
12
|
-
flash[:error] = t('the_role.access_denied')
|
13
|
-
redirect_to(:back)
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def set_locale
|
19
|
-
locale = 'en'
|
20
|
-
langs = %w{ en ru es pl zh_CN }
|
21
|
-
|
22
|
-
if params[:locale]
|
23
|
-
lang = params[:locale]
|
24
|
-
if langs.include? lang
|
25
|
-
locale = lang
|
26
|
-
cookies[:locale] = lang
|
27
|
-
end
|
28
|
-
else
|
29
|
-
if cookies[:locale]
|
30
|
-
lang = cookies[:locale]
|
31
|
-
locale = lang if langs.include? lang
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
I18n.locale = locale
|
36
|
-
redirect_to(:back) if params[:locale]
|
37
|
-
end
|
38
|
-
end
|
File without changes
|
@@ -1,75 +0,0 @@
|
|
1
|
-
class PagesController < ApplicationController
|
2
|
-
# Devise2 and TheRole before_actions
|
3
|
-
before_action :login_required, except: [:index, :show]
|
4
|
-
before_action :role_required, except: [:index, :show]
|
5
|
-
|
6
|
-
before_action :set_page, only: [:edit, :update, :destroy]
|
7
|
-
before_action :owner_required, only: [:edit, :update, :destroy]
|
8
|
-
|
9
|
-
# Public
|
10
|
-
|
11
|
-
def index
|
12
|
-
@pages = Page.with_state(:published).all
|
13
|
-
end
|
14
|
-
|
15
|
-
def show
|
16
|
-
@page = Page.with_state(:published).find params[:id]
|
17
|
-
end
|
18
|
-
|
19
|
-
# Login && role
|
20
|
-
|
21
|
-
def new
|
22
|
-
@page = Page.new
|
23
|
-
end
|
24
|
-
|
25
|
-
def create
|
26
|
-
@page = Page.new page_params
|
27
|
-
|
28
|
-
if @page.save
|
29
|
-
redirect_to @page, notice: 'Page was successfully created.'
|
30
|
-
else
|
31
|
-
render action: 'new'
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def my
|
36
|
-
@pages = current_user.pages
|
37
|
-
end
|
38
|
-
|
39
|
-
# login && role && ownership
|
40
|
-
|
41
|
-
def edit; end
|
42
|
-
|
43
|
-
def update
|
44
|
-
if @page.update_attributes page_params
|
45
|
-
redirect_to @page, notice: 'Page was successfully updated.'
|
46
|
-
else
|
47
|
-
render action: :edit
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def destroy
|
52
|
-
@page.destroy
|
53
|
-
redirect_to pages_url
|
54
|
-
end
|
55
|
-
|
56
|
-
# Admin or Pages Moderator Role require
|
57
|
-
|
58
|
-
def manage
|
59
|
-
@pages = Page.all
|
60
|
-
end
|
61
|
-
|
62
|
-
private
|
63
|
-
|
64
|
-
def set_page
|
65
|
-
@page = Page.find params[:id]
|
66
|
-
|
67
|
-
# TheRole: You should define OWNER CHECK OBJECT
|
68
|
-
# When editable object was found
|
69
|
-
@owner_check_object = @page
|
70
|
-
end
|
71
|
-
|
72
|
-
def page_params
|
73
|
-
params.require(:page).permit(:user_id, :title, :content, :state)
|
74
|
-
end
|
75
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
class UsersController < ApplicationController
|
2
|
-
before_filter :login_required
|
3
|
-
before_filter :role_required
|
4
|
-
|
5
|
-
before_filter :find_user, :only => [:edit, :update]
|
6
|
-
before_filter :owner_required, :only => [:edit, :update]
|
7
|
-
|
8
|
-
def edit; end
|
9
|
-
|
10
|
-
def update
|
11
|
-
@user.update_attributes params[:user]
|
12
|
-
flash[:notice] = 'User was successfully updated.'
|
13
|
-
redirect_to edit_user_path @user
|
14
|
-
end
|
15
|
-
|
16
|
-
def change_role
|
17
|
-
@user = User.find params[:user_id]
|
18
|
-
@role = Role.find params[:role_id]
|
19
|
-
@user.update_attribute(:role, @role)
|
20
|
-
redirect_to edit_user_path @user
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def find_user
|
26
|
-
@user = User.find params[:id]
|
27
|
-
|
28
|
-
# TheRole: You should define OWNER CHECK OBJECT
|
29
|
-
# When editable object was found
|
30
|
-
@owner_check_object = @user
|
31
|
-
end
|
32
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
class WelcomeController < ApplicationController
|
2
|
-
before_filter :authenticate_user!, :except => [:index, :autologin]
|
3
|
-
|
4
|
-
def index; end
|
5
|
-
def profile; end
|
6
|
-
|
7
|
-
def autologin
|
8
|
-
user = User.find_by_email params[:email]
|
9
|
-
sign_in user if user
|
10
|
-
redirect_to request.referrer || root_path
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,24 +0,0 @@
|
|
1
|
-
class Page < ActiveRecord::Base
|
2
|
-
# RELATIONS
|
3
|
-
belongs_to :user
|
4
|
-
|
5
|
-
# VALIDATIONS
|
6
|
-
validates :user, presence: true
|
7
|
-
validates :title, presence: true, uniqueness: true
|
8
|
-
validates :content, presence: true
|
9
|
-
|
10
|
-
state_machine :state, :initial => :draft do
|
11
|
-
# events
|
12
|
-
event :to_draft do
|
13
|
-
transition all => :draft
|
14
|
-
end
|
15
|
-
|
16
|
-
event :to_published do
|
17
|
-
transition all => :published
|
18
|
-
end
|
19
|
-
|
20
|
-
event :to_deleted do
|
21
|
-
transition all => :deleted
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
class User < ActiveRecord::Base
|
2
|
-
# Include default devise modules. Others available are:
|
3
|
-
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
|
4
|
-
devise :database_authenticatable, :registerable,
|
5
|
-
:recoverable, :rememberable, :trackable, :validatable
|
6
|
-
|
7
|
-
include TheRole::User
|
8
|
-
# has_role
|
9
|
-
|
10
|
-
# Setup accessible (or protected) attributes for your model
|
11
|
-
# attr_accessible :email, :password, :password_confirmation, :remember_me
|
12
|
-
# User accessible fields
|
13
|
-
# attr_accessible :name, :company, :address
|
14
|
-
|
15
|
-
# When we uncomment this string - test should give fail
|
16
|
-
# just for example, do not uncomment it
|
17
|
-
# attr_accessible :some_protected_field
|
18
|
-
|
19
|
-
# RELATIONS
|
20
|
-
has_many :pages
|
21
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
%h2 Current user
|
2
|
-
|
3
|
-
%p
|
4
|
-
- if user_signed_in?
|
5
|
-
%p
|
6
|
-
%b{ style: "color:green" }= current_user.name
|
7
|
-
%p
|
8
|
-
%i role: #{current_user.role.name}
|
9
|
-
\|
|
10
|
-
= link_to "Sign out", destroy_user_session_path, :method => :delete
|
11
|
-
- else
|
12
|
-
%p
|
13
|
-
%i Guest
|
14
|
-
%p
|
15
|
-
= link_to "Sign in", new_user_session_path
|
16
|
-
\|
|
17
|
-
= link_to "Sign up", new_user_registration_path
|