the_role 2.5.4 → 3.0.0
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.
- 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
|