admission 0.4.4 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/admission.gemspec +2 -0
- data/lib/admission/version.rb +1 -1
- metadata +1 -94
- data/examples/rails5_feudalism/.gitignore +0 -19
- data/examples/rails5_feudalism/.ruby-version +0 -1
- data/examples/rails5_feudalism/Gemfile +0 -52
- data/examples/rails5_feudalism/README.md +0 -17
- data/examples/rails5_feudalism/Rakefile +0 -6
- data/examples/rails5_feudalism/app/assets/config/manifest.js +0 -3
- data/examples/rails5_feudalism/app/assets/images/.keep +0 -0
- data/examples/rails5_feudalism/app/assets/javascripts/application.js +0 -15
- data/examples/rails5_feudalism/app/assets/stylesheets/application.css +0 -15
- data/examples/rails5_feudalism/app/assets/stylesheets/scaffolds.scss +0 -84
- data/examples/rails5_feudalism/app/controllers/application_controller.rb +0 -13
- data/examples/rails5_feudalism/app/controllers/concerns/.keep +0 -0
- data/examples/rails5_feudalism/app/controllers/users_controller.rb +0 -75
- data/examples/rails5_feudalism/app/helpers/application_helper.rb +0 -2
- data/examples/rails5_feudalism/app/jobs/application_job.rb +0 -2
- data/examples/rails5_feudalism/app/models/application_record.rb +0 -3
- data/examples/rails5_feudalism/app/models/concerns/.keep +0 -0
- data/examples/rails5_feudalism/app/models/person.rb +0 -11
- data/examples/rails5_feudalism/app/models/possession.rb +0 -7
- data/examples/rails5_feudalism/app/models/trait.rb +0 -7
- data/examples/rails5_feudalism/app/models/user.rb +0 -17
- data/examples/rails5_feudalism/app/models/user_status.rb +0 -140
- data/examples/rails5_feudalism/app/views/admission/forbidden.html.erb +0 -14
- data/examples/rails5_feudalism/app/views/layouts/application.html.erb +0 -15
- data/examples/rails5_feudalism/app/views/users/_form.html.erb +0 -19
- data/examples/rails5_feudalism/app/views/users/_privilege_row.html.erb +0 -24
- data/examples/rails5_feudalism/app/views/users/_privileges_list.html.erb +0 -51
- data/examples/rails5_feudalism/app/views/users/edit.html.erb +0 -6
- data/examples/rails5_feudalism/app/views/users/index.html.erb +0 -25
- data/examples/rails5_feudalism/app/views/users/new.html.erb +0 -5
- data/examples/rails5_feudalism/app/views/users/show.html.erb +0 -4
- data/examples/rails5_feudalism/bin/bundle +0 -3
- data/examples/rails5_feudalism/bin/rails +0 -9
- data/examples/rails5_feudalism/bin/rake +0 -9
- data/examples/rails5_feudalism/bin/setup +0 -38
- data/examples/rails5_feudalism/bin/spring +0 -17
- data/examples/rails5_feudalism/bin/update +0 -29
- data/examples/rails5_feudalism/bin/yarn +0 -11
- data/examples/rails5_feudalism/config.ru +0 -5
- data/examples/rails5_feudalism/config/application.rb +0 -28
- data/examples/rails5_feudalism/config/boot.rb +0 -3
- data/examples/rails5_feudalism/config/database.yml +0 -85
- data/examples/rails5_feudalism/config/environment.rb +0 -5
- data/examples/rails5_feudalism/config/environments/development.rb +0 -49
- data/examples/rails5_feudalism/config/environments/production.rb +0 -82
- data/examples/rails5_feudalism/config/environments/test.rb +0 -36
- data/examples/rails5_feudalism/config/initializers/application_controller_renderer.rb +0 -8
- data/examples/rails5_feudalism/config/initializers/assets.rb +0 -14
- data/examples/rails5_feudalism/config/initializers/backtrace_silencers.rb +0 -7
- data/examples/rails5_feudalism/config/initializers/cookies_serializer.rb +0 -5
- data/examples/rails5_feudalism/config/initializers/filter_parameter_logging.rb +0 -4
- data/examples/rails5_feudalism/config/initializers/inflections.rb +0 -16
- data/examples/rails5_feudalism/config/initializers/mime_types.rb +0 -4
- data/examples/rails5_feudalism/config/initializers/wrap_parameters.rb +0 -14
- data/examples/rails5_feudalism/config/locales/en.yml +0 -33
- data/examples/rails5_feudalism/config/puma.rb +0 -56
- data/examples/rails5_feudalism/config/routes.rb +0 -8
- data/examples/rails5_feudalism/config/secrets.yml +0 -32
- data/examples/rails5_feudalism/config/spring.rb +0 -6
- data/examples/rails5_feudalism/db/migrate/20171018085629_create_users.rb +0 -9
- data/examples/rails5_feudalism/db/migrate/20171019082044_create_people.rb +0 -9
- data/examples/rails5_feudalism/db/migrate/20171019082055_create_possessions.rb +0 -9
- data/examples/rails5_feudalism/db/migrate/20171019082059_create_traits.rb +0 -9
- data/examples/rails5_feudalism/db/schema.rb +0 -49
- data/examples/rails5_feudalism/db/seeds.rb +0 -7
- data/examples/rails5_feudalism/lib/assets/.keep +0 -0
- data/examples/rails5_feudalism/lib/tasks/.keep +0 -0
- data/examples/rails5_feudalism/log/.keep +0 -0
- data/examples/rails5_feudalism/package.json +0 -7
- data/examples/rails5_feudalism/public/404.html +0 -67
- data/examples/rails5_feudalism/public/422.html +0 -67
- data/examples/rails5_feudalism/public/500.html +0 -66
- data/examples/rails5_feudalism/public/apple-touch-icon-precomposed.png +0 -0
- data/examples/rails5_feudalism/public/apple-touch-icon.png +0 -0
- data/examples/rails5_feudalism/public/favicon.ico +0 -0
- data/examples/rails5_feudalism/public/robots.txt +0 -1
- data/examples/rails5_feudalism/test/application_system_test_case.rb +0 -5
- data/examples/rails5_feudalism/test/controllers/.keep +0 -0
- data/examples/rails5_feudalism/test/fixtures/.keep +0 -0
- data/examples/rails5_feudalism/test/fixtures/files/.keep +0 -0
- data/examples/rails5_feudalism/test/fixtures/people.yml +0 -36
- data/examples/rails5_feudalism/test/fixtures/possessions.yml +0 -0
- data/examples/rails5_feudalism/test/fixtures/traits.yml +0 -0
- data/examples/rails5_feudalism/test/fixtures/users.yml +0 -0
- data/examples/rails5_feudalism/test/helpers/.keep +0 -0
- data/examples/rails5_feudalism/test/models/.keep +0 -0
- data/examples/rails5_feudalism/test/models/user_status/rules_test.rb +0 -152
- data/examples/rails5_feudalism/test/models/user_status/user_status_test.rb +0 -50
- data/examples/rails5_feudalism/test/system/.keep +0 -0
- data/examples/rails5_feudalism/test/test_helper.rb +0 -9
- data/examples/rails5_feudalism/tmp/.keep +0 -0
- data/examples/rails5_feudalism/vendor/.keep +0 -0
- data/examples/rails5_feudalism/yarn.lock +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20107a8f1a93d5d9ec64abc2e1ee29265b037348
|
4
|
+
data.tar.gz: fdd7144543447dbdf63ddb2cba2dfdf7e8fcd08f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0700f14541352004ce62e8bbb5ed4c9a552365b3f3ff26cf48ab7d2794fd626f994594d9d7916fdf9f2c117c192fe7bfbab2e1df583b7e21a4af507328524832
|
7
|
+
data.tar.gz: e2093f0037baab6c794316b46789a0c40e5274437d2adf9fd1bb77939e837c4ce468302ce50f83379a2bbf71b71bc6a8301f321361aadd6be5a3ad80a0fec7e9
|
data/admission.gemspec
CHANGED
@@ -12,7 +12,9 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = 'update-me'
|
13
13
|
spec.email = 'zelazk.o@email.cz'
|
14
14
|
|
15
|
+
ignore_files_regex = %r~^examples~
|
15
16
|
library_files = (`git ls-files -z`).split "\x0"
|
17
|
+
library_files.reject!{|f| ignore_files_regex === f}
|
16
18
|
spec.files = library_files
|
17
19
|
|
18
20
|
end
|
data/lib/admission/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: admission
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- doooby
|
@@ -25,99 +25,6 @@ files:
|
|
25
25
|
- admission.gemspec
|
26
26
|
- bin/build
|
27
27
|
- bin/rspec
|
28
|
-
- examples/rails5_feudalism/.gitignore
|
29
|
-
- examples/rails5_feudalism/.ruby-version
|
30
|
-
- examples/rails5_feudalism/Gemfile
|
31
|
-
- examples/rails5_feudalism/README.md
|
32
|
-
- examples/rails5_feudalism/Rakefile
|
33
|
-
- examples/rails5_feudalism/app/assets/config/manifest.js
|
34
|
-
- examples/rails5_feudalism/app/assets/images/.keep
|
35
|
-
- examples/rails5_feudalism/app/assets/javascripts/application.js
|
36
|
-
- examples/rails5_feudalism/app/assets/stylesheets/application.css
|
37
|
-
- examples/rails5_feudalism/app/assets/stylesheets/scaffolds.scss
|
38
|
-
- examples/rails5_feudalism/app/controllers/application_controller.rb
|
39
|
-
- examples/rails5_feudalism/app/controllers/concerns/.keep
|
40
|
-
- examples/rails5_feudalism/app/controllers/users_controller.rb
|
41
|
-
- examples/rails5_feudalism/app/helpers/application_helper.rb
|
42
|
-
- examples/rails5_feudalism/app/jobs/application_job.rb
|
43
|
-
- examples/rails5_feudalism/app/models/application_record.rb
|
44
|
-
- examples/rails5_feudalism/app/models/concerns/.keep
|
45
|
-
- examples/rails5_feudalism/app/models/person.rb
|
46
|
-
- examples/rails5_feudalism/app/models/possession.rb
|
47
|
-
- examples/rails5_feudalism/app/models/trait.rb
|
48
|
-
- examples/rails5_feudalism/app/models/user.rb
|
49
|
-
- examples/rails5_feudalism/app/models/user_status.rb
|
50
|
-
- examples/rails5_feudalism/app/views/admission/forbidden.html.erb
|
51
|
-
- examples/rails5_feudalism/app/views/layouts/application.html.erb
|
52
|
-
- examples/rails5_feudalism/app/views/users/_form.html.erb
|
53
|
-
- examples/rails5_feudalism/app/views/users/_privilege_row.html.erb
|
54
|
-
- examples/rails5_feudalism/app/views/users/_privileges_list.html.erb
|
55
|
-
- examples/rails5_feudalism/app/views/users/edit.html.erb
|
56
|
-
- examples/rails5_feudalism/app/views/users/index.html.erb
|
57
|
-
- examples/rails5_feudalism/app/views/users/new.html.erb
|
58
|
-
- examples/rails5_feudalism/app/views/users/show.html.erb
|
59
|
-
- examples/rails5_feudalism/bin/bundle
|
60
|
-
- examples/rails5_feudalism/bin/rails
|
61
|
-
- examples/rails5_feudalism/bin/rake
|
62
|
-
- examples/rails5_feudalism/bin/setup
|
63
|
-
- examples/rails5_feudalism/bin/spring
|
64
|
-
- examples/rails5_feudalism/bin/update
|
65
|
-
- examples/rails5_feudalism/bin/yarn
|
66
|
-
- examples/rails5_feudalism/config.ru
|
67
|
-
- examples/rails5_feudalism/config/application.rb
|
68
|
-
- examples/rails5_feudalism/config/boot.rb
|
69
|
-
- examples/rails5_feudalism/config/database.yml
|
70
|
-
- examples/rails5_feudalism/config/environment.rb
|
71
|
-
- examples/rails5_feudalism/config/environments/development.rb
|
72
|
-
- examples/rails5_feudalism/config/environments/production.rb
|
73
|
-
- examples/rails5_feudalism/config/environments/test.rb
|
74
|
-
- examples/rails5_feudalism/config/initializers/application_controller_renderer.rb
|
75
|
-
- examples/rails5_feudalism/config/initializers/assets.rb
|
76
|
-
- examples/rails5_feudalism/config/initializers/backtrace_silencers.rb
|
77
|
-
- examples/rails5_feudalism/config/initializers/cookies_serializer.rb
|
78
|
-
- examples/rails5_feudalism/config/initializers/filter_parameter_logging.rb
|
79
|
-
- examples/rails5_feudalism/config/initializers/inflections.rb
|
80
|
-
- examples/rails5_feudalism/config/initializers/mime_types.rb
|
81
|
-
- examples/rails5_feudalism/config/initializers/wrap_parameters.rb
|
82
|
-
- examples/rails5_feudalism/config/locales/en.yml
|
83
|
-
- examples/rails5_feudalism/config/puma.rb
|
84
|
-
- examples/rails5_feudalism/config/routes.rb
|
85
|
-
- examples/rails5_feudalism/config/secrets.yml
|
86
|
-
- examples/rails5_feudalism/config/spring.rb
|
87
|
-
- examples/rails5_feudalism/db/migrate/20171018085629_create_users.rb
|
88
|
-
- examples/rails5_feudalism/db/migrate/20171019082044_create_people.rb
|
89
|
-
- examples/rails5_feudalism/db/migrate/20171019082055_create_possessions.rb
|
90
|
-
- examples/rails5_feudalism/db/migrate/20171019082059_create_traits.rb
|
91
|
-
- examples/rails5_feudalism/db/schema.rb
|
92
|
-
- examples/rails5_feudalism/db/seeds.rb
|
93
|
-
- examples/rails5_feudalism/lib/assets/.keep
|
94
|
-
- examples/rails5_feudalism/lib/tasks/.keep
|
95
|
-
- examples/rails5_feudalism/log/.keep
|
96
|
-
- examples/rails5_feudalism/package.json
|
97
|
-
- examples/rails5_feudalism/public/404.html
|
98
|
-
- examples/rails5_feudalism/public/422.html
|
99
|
-
- examples/rails5_feudalism/public/500.html
|
100
|
-
- examples/rails5_feudalism/public/apple-touch-icon-precomposed.png
|
101
|
-
- examples/rails5_feudalism/public/apple-touch-icon.png
|
102
|
-
- examples/rails5_feudalism/public/favicon.ico
|
103
|
-
- examples/rails5_feudalism/public/robots.txt
|
104
|
-
- examples/rails5_feudalism/test/application_system_test_case.rb
|
105
|
-
- examples/rails5_feudalism/test/controllers/.keep
|
106
|
-
- examples/rails5_feudalism/test/fixtures/.keep
|
107
|
-
- examples/rails5_feudalism/test/fixtures/files/.keep
|
108
|
-
- examples/rails5_feudalism/test/fixtures/people.yml
|
109
|
-
- examples/rails5_feudalism/test/fixtures/possessions.yml
|
110
|
-
- examples/rails5_feudalism/test/fixtures/traits.yml
|
111
|
-
- examples/rails5_feudalism/test/fixtures/users.yml
|
112
|
-
- examples/rails5_feudalism/test/helpers/.keep
|
113
|
-
- examples/rails5_feudalism/test/models/.keep
|
114
|
-
- examples/rails5_feudalism/test/models/user_status/rules_test.rb
|
115
|
-
- examples/rails5_feudalism/test/models/user_status/user_status_test.rb
|
116
|
-
- examples/rails5_feudalism/test/system/.keep
|
117
|
-
- examples/rails5_feudalism/test/test_helper.rb
|
118
|
-
- examples/rails5_feudalism/tmp/.keep
|
119
|
-
- examples/rails5_feudalism/vendor/.keep
|
120
|
-
- examples/rails5_feudalism/yarn.lock
|
121
28
|
- lib/admission.rb
|
122
29
|
- lib/admission/ability.rb
|
123
30
|
- lib/admission/admission.rb
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# See https://help.github.com/articles/ignoring-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 all logfiles and tempfiles.
|
11
|
-
/log/*
|
12
|
-
/tmp/*
|
13
|
-
!/log/.keep
|
14
|
-
!/tmp/.keep
|
15
|
-
|
16
|
-
/node_modules
|
17
|
-
/yarn-error.log
|
18
|
-
|
19
|
-
.byebug_history
|
@@ -1 +0,0 @@
|
|
1
|
-
2.3.3
|
@@ -1,52 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
git_source(:github) do |repo_name|
|
4
|
-
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
|
5
|
-
"https://github.com/#{repo_name}.git"
|
6
|
-
end
|
7
|
-
|
8
|
-
|
9
|
-
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
10
|
-
gem 'rails', '~> 5.1.4'
|
11
|
-
# Use postgresql as the database for Active Record
|
12
|
-
gem 'pg', '~> 0.18'
|
13
|
-
# Use Puma as the app server
|
14
|
-
gem 'puma', '~> 3.7'
|
15
|
-
# Use SCSS for stylesheets
|
16
|
-
gem 'sass-rails', '~> 5.0'
|
17
|
-
# Use Uglifier as compressor for JavaScript assets
|
18
|
-
gem 'uglifier', '>= 1.3.0'
|
19
|
-
# See https://github.com/rails/execjs#readme for more supported runtimes
|
20
|
-
# gem 'therubyracer', platforms: :ruby
|
21
|
-
|
22
|
-
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
23
|
-
gem 'jbuilder', '~> 2.5'
|
24
|
-
# Use ActiveModel has_secure_password
|
25
|
-
# gem 'bcrypt', '~> 3.1.7'
|
26
|
-
|
27
|
-
# Use Capistrano for deployment
|
28
|
-
# gem 'capistrano-rails', group: :development
|
29
|
-
|
30
|
-
group :development, :test do
|
31
|
-
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
32
|
-
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
|
33
|
-
# Adds support for Capybara system testing and selenium driver
|
34
|
-
gem 'capybara', '~> 2.13'
|
35
|
-
gem 'selenium-webdriver'
|
36
|
-
end
|
37
|
-
|
38
|
-
group :development do
|
39
|
-
# Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
|
40
|
-
gem 'web-console', '>= 3.3.0'
|
41
|
-
gem 'listen', '>= 3.0.5', '< 3.2'
|
42
|
-
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
43
|
-
gem 'spring'
|
44
|
-
gem 'spring-watcher-listen', '~> 2.0.0'
|
45
|
-
end
|
46
|
-
|
47
|
-
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
48
|
-
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
49
|
-
|
50
|
-
|
51
|
-
########################################################################################################################
|
52
|
-
gem 'admission', path: File.expand_path('../../..', __FILE__)
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# Admission example: Rails app mimicking the mess of feudalism rules
|
2
|
-
|
3
|
-
## Goal
|
4
|
-
Show how to integrate Admission::ResourceArbitration into a rails app, that uses a complex case of privileges system. Each user (person) can have multiple privileges from multiple areas (countries), resulting in situations where one can do something in one area, but not in the other; where a privilege disallow doing a thing only in a single particular area. European feudalism has these wild and complex rules of inheritance, which is perfect to demonstrate how Admission's privileges one-way inheritance system deals with not that truly one-way real-world privilege inheritance system (you could've became a king -a sovereign- over a man to whom you're a vassal, resulting of insolvable situation: who's the lord to whom?).
|
5
|
-
|
6
|
-
## Integration to Rails
|
7
|
-
Admission is not meant to be only-rails privilege system. I'd like to include some helpers into the library though. This example then, is actually just a sandbox for me to find out the smoothest integration (controllers helpers, ActiveRecord to save privileges and more).
|
8
|
-
|
9
|
-
## to-do list
|
10
|
-
- [x] user privileges persistence
|
11
|
-
- [x] privileges system (popes, other christian patriarchs, emperors, kings, lords, ...)
|
12
|
-
- [ ] controller use of `#request!` and `Admission::Denied` handling
|
13
|
-
- [ ] god mode: status modification and transient admission plug-off
|
14
|
-
- [ ] nested resources allowance
|
15
|
-
- [ ] controllers helper for resources
|
16
|
-
- [ ] view usage of `#can?`
|
17
|
-
- [ ] model methods and attributes allowance (params permitting?)
|
File without changes
|
@@ -1,15 +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, or any plugin's
|
5
|
-
// vendor/assets/javascripts directory 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. JavaScript code in this file should be added after the last require_* statement.
|
9
|
-
//
|
10
|
-
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
-
// about supported directives.
|
12
|
-
//
|
13
|
-
//= require rails-ujs
|
14
|
-
//= require jquery
|
15
|
-
//= require_tree .
|
@@ -1,15 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
-
* listed below.
|
4
|
-
*
|
5
|
-
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
|
6
|
-
* vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
-
*
|
8
|
-
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
-
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
|
10
|
-
* files in this directory. Styles in this file should be added after the last require_* statement.
|
11
|
-
* It is generally better to create a new file per style scope.
|
12
|
-
*
|
13
|
-
*= require_tree .
|
14
|
-
*= require_self
|
15
|
-
*/
|
@@ -1,84 +0,0 @@
|
|
1
|
-
body {
|
2
|
-
background-color: #fff;
|
3
|
-
color: #333;
|
4
|
-
margin: 33px;
|
5
|
-
font-family: verdana, arial, helvetica, sans-serif;
|
6
|
-
font-size: 13px;
|
7
|
-
line-height: 18px;
|
8
|
-
}
|
9
|
-
|
10
|
-
p, ol, ul, td {
|
11
|
-
font-family: verdana, arial, helvetica, sans-serif;
|
12
|
-
font-size: 13px;
|
13
|
-
line-height: 18px;
|
14
|
-
}
|
15
|
-
|
16
|
-
pre {
|
17
|
-
background-color: #eee;
|
18
|
-
padding: 10px;
|
19
|
-
font-size: 11px;
|
20
|
-
}
|
21
|
-
|
22
|
-
a {
|
23
|
-
color: #000;
|
24
|
-
|
25
|
-
&:visited {
|
26
|
-
color: #666;
|
27
|
-
}
|
28
|
-
|
29
|
-
&:hover {
|
30
|
-
color: #fff;
|
31
|
-
background-color: #000;
|
32
|
-
}
|
33
|
-
}
|
34
|
-
|
35
|
-
th {
|
36
|
-
padding-bottom: 5px;
|
37
|
-
}
|
38
|
-
|
39
|
-
td {
|
40
|
-
padding: 0 5px 7px;
|
41
|
-
}
|
42
|
-
|
43
|
-
div {
|
44
|
-
&.field, &.actions {
|
45
|
-
margin-bottom: 10px;
|
46
|
-
}
|
47
|
-
}
|
48
|
-
|
49
|
-
#notice {
|
50
|
-
color: green;
|
51
|
-
}
|
52
|
-
|
53
|
-
.field_with_errors {
|
54
|
-
padding: 2px;
|
55
|
-
background-color: red;
|
56
|
-
display: table;
|
57
|
-
}
|
58
|
-
|
59
|
-
#error_explanation {
|
60
|
-
width: 450px;
|
61
|
-
border: 2px solid red;
|
62
|
-
padding: 7px 7px 0;
|
63
|
-
margin-bottom: 20px;
|
64
|
-
background-color: #f0f0f0;
|
65
|
-
|
66
|
-
h2 {
|
67
|
-
text-align: left;
|
68
|
-
font-weight: bold;
|
69
|
-
padding: 5px 5px 5px 15px;
|
70
|
-
font-size: 12px;
|
71
|
-
margin: -7px -7px 0;
|
72
|
-
background-color: #c00;
|
73
|
-
color: #fff;
|
74
|
-
}
|
75
|
-
|
76
|
-
ul li {
|
77
|
-
font-size: 12px;
|
78
|
-
list-style: square;
|
79
|
-
}
|
80
|
-
}
|
81
|
-
|
82
|
-
label {
|
83
|
-
display: block;
|
84
|
-
}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
class ApplicationController < ActionController::Base
|
2
|
-
protect_from_forgery with: :exception
|
3
|
-
|
4
|
-
require 'admission/rails'
|
5
|
-
include Admission::Rails::ControllerAddon
|
6
|
-
Admission::Rails.log_access = true
|
7
|
-
|
8
|
-
def request_admission! action, scope
|
9
|
-
@requested_admission = {action: action, scope: scope}
|
10
|
-
puts "ADMISSION: #{action} over #{scope}"
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
File without changes
|
@@ -1,75 +0,0 @@
|
|
1
|
-
class UsersController < ApplicationController
|
2
|
-
|
3
|
-
before_action :set_user, only: %i[show edit update destroy]
|
4
|
-
before_action :prepare_privilege_params!, only: %i[create update]
|
5
|
-
|
6
|
-
def index
|
7
|
-
@users = User.all
|
8
|
-
end
|
9
|
-
|
10
|
-
def show
|
11
|
-
end
|
12
|
-
|
13
|
-
def new
|
14
|
-
@user = User.new
|
15
|
-
end
|
16
|
-
|
17
|
-
def edit
|
18
|
-
end
|
19
|
-
|
20
|
-
def create
|
21
|
-
@user = User.new(user_params)
|
22
|
-
|
23
|
-
if @user.save
|
24
|
-
redirect_to @user, notice: 'User was successfully created.'
|
25
|
-
else
|
26
|
-
render :new
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def update
|
31
|
-
if @user.update(user_params)
|
32
|
-
redirect_to @user, notice: 'User was successfully updated.'
|
33
|
-
else
|
34
|
-
render :edit
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def destroy
|
39
|
-
@user.destroy
|
40
|
-
redirect_to users_url, notice: 'User was successfully destroyed.'
|
41
|
-
end
|
42
|
-
|
43
|
-
private
|
44
|
-
# Use callbacks to share common setup or constraints between actions.
|
45
|
-
def set_user
|
46
|
-
@user = User.find(params[:id])
|
47
|
-
end
|
48
|
-
|
49
|
-
# Never trust parameters from the scary internet, only allow the white list through.
|
50
|
-
def user_params
|
51
|
-
params.fetch(:user, {}).permit privileges: {}
|
52
|
-
end
|
53
|
-
|
54
|
-
def prepare_privilege_params!
|
55
|
-
return unless params[:user]
|
56
|
-
|
57
|
-
privileges = params[:user][:privileges]
|
58
|
-
unless privileges
|
59
|
-
params[:user][:privileges] = nil
|
60
|
-
return
|
61
|
-
end
|
62
|
-
|
63
|
-
countries = (privileges[:country].presence || [])
|
64
|
-
names = privileges[:name].presence || []
|
65
|
-
|
66
|
-
list = countries.zip(names).map do |country, name|
|
67
|
-
name, level = name.split '-'
|
68
|
-
UserStatus.privilege_for_country name, level.presence, country
|
69
|
-
end
|
70
|
-
|
71
|
-
params[:user][:privileges] = UserStatus.dump_privileges list.compact
|
72
|
-
params[:user][:privileges].permit!
|
73
|
-
end
|
74
|
-
|
75
|
-
end
|