request_refinery 0.0.1
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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +34 -0
- data/app/assets/javascripts/request_refinery/application.js +13 -0
- data/app/assets/javascripts/request_refinery/controller_filters.js +2 -0
- data/app/assets/javascripts/request_refinery/customers.js +2 -0
- data/app/assets/javascripts/request_refinery/permissions.js +2 -0
- data/app/assets/javascripts/request_refinery/roles.js +2 -0
- data/app/assets/stylesheets/request_refinery/application.css +15 -0
- data/app/assets/stylesheets/request_refinery/controller_filters.css +4 -0
- data/app/assets/stylesheets/request_refinery/customers.css +4 -0
- data/app/assets/stylesheets/request_refinery/permissions.css +4 -0
- data/app/assets/stylesheets/request_refinery/roles.css +4 -0
- data/app/assets/stylesheets/scaffold.css +56 -0
- data/app/controllers/request_refinery/application_controller.rb +11 -0
- data/app/controllers/request_refinery/controller_filters_controller.rb +62 -0
- data/app/controllers/request_refinery/customers_controller.rb +62 -0
- data/app/controllers/request_refinery/permissions_controller.rb +62 -0
- data/app/controllers/request_refinery/roles_controller.rb +62 -0
- data/app/helpers/request_refinery/application_helper.rb +4 -0
- data/app/helpers/request_refinery/controller_filters_helper.rb +4 -0
- data/app/helpers/request_refinery/customers_helper.rb +4 -0
- data/app/helpers/request_refinery/permissions_helper.rb +4 -0
- data/app/helpers/request_refinery/roles_helper.rb +4 -0
- data/app/models/request_refinery/controller_filter.rb +5 -0
- data/app/models/request_refinery/customer.rb +5 -0
- data/app/models/request_refinery/permission.rb +11 -0
- data/app/models/request_refinery/role.rb +9 -0
- data/app/models/request_refinery/user.rb +51 -0
- data/app/views/layouts/request_refinery/application.html.erb +15 -0
- data/app/views/request_refinery/controller_filters/_form.html.erb +29 -0
- data/app/views/request_refinery/controller_filters/edit.html.erb +6 -0
- data/app/views/request_refinery/controller_filters/index.html.erb +29 -0
- data/app/views/request_refinery/controller_filters/new.html.erb +5 -0
- data/app/views/request_refinery/controller_filters/show.html.erb +19 -0
- data/app/views/request_refinery/customers/_form.html.erb +33 -0
- data/app/views/request_refinery/customers/edit.html.erb +6 -0
- data/app/views/request_refinery/customers/index.html.erb +31 -0
- data/app/views/request_refinery/customers/new.html.erb +5 -0
- data/app/views/request_refinery/customers/show.html.erb +24 -0
- data/app/views/request_refinery/permissions/_form.html.erb +21 -0
- data/app/views/request_refinery/permissions/edit.html.erb +6 -0
- data/app/views/request_refinery/permissions/index.html.erb +28 -0
- data/app/views/request_refinery/permissions/new.html.erb +5 -0
- data/app/views/request_refinery/permissions/show.html.erb +9 -0
- data/app/views/request_refinery/roles/_form.html.erb +29 -0
- data/app/views/request_refinery/roles/edit.html.erb +6 -0
- data/app/views/request_refinery/roles/index.html.erb +29 -0
- data/app/views/request_refinery/roles/new.html.erb +5 -0
- data/app/views/request_refinery/roles/show.html.erb +19 -0
- data/config/initializers/application_controller.rb +9 -0
- data/config/initializers/devise.rb +261 -0
- data/config/locales/devise.en.yml +60 -0
- data/config/routes.rb +13 -0
- data/db/migrate/20141003181010_devise_create_request_refinery_users.rb +76 -0
- data/db/migrate/20141003190734_create_request_refinery_controller_filters.rb +18 -0
- data/db/migrate/20141003190741_create_request_refinery_permissions.rb +31 -0
- data/db/migrate/20141003194717_create_request_refinery_customers.rb +12 -0
- data/db/seeds.rb +0 -0
- data/lib/generators/request_refinery/install_generator.rb +79 -0
- data/lib/request_refinery/engine.rb +15 -0
- data/lib/request_refinery/version.rb +3 -0
- data/lib/request_refinery.rb +70 -0
- data/lib/tasks/request_refinery_tasks.rake +4 -0
- metadata +172 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
class DeviseCreateRequestRefineryUsers < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
create_table(:request_refinery_users) do |t|
|
|
4
|
+
## Database authenticatable
|
|
5
|
+
t.string :email, null: false, default: ""
|
|
6
|
+
t.string :encrypted_password, null: false, default: ""
|
|
7
|
+
|
|
8
|
+
## Recoverable
|
|
9
|
+
t.string :reset_password_token
|
|
10
|
+
t.datetime :reset_password_sent_at
|
|
11
|
+
|
|
12
|
+
## Rememberable
|
|
13
|
+
t.datetime :remember_created_at
|
|
14
|
+
|
|
15
|
+
## Trackable
|
|
16
|
+
t.integer :sign_in_count, default: 0, null: false
|
|
17
|
+
t.datetime :current_sign_in_at
|
|
18
|
+
t.datetime :last_sign_in_at
|
|
19
|
+
t.string :current_sign_in_ip
|
|
20
|
+
t.string :last_sign_in_ip
|
|
21
|
+
|
|
22
|
+
## Confirmable
|
|
23
|
+
# t.string :confirmation_token
|
|
24
|
+
# t.datetime :confirmed_at
|
|
25
|
+
# t.datetime :confirmation_sent_at
|
|
26
|
+
# t.string :unconfirmed_email # Only if using reconfirmable
|
|
27
|
+
|
|
28
|
+
## Lockable
|
|
29
|
+
# t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
|
|
30
|
+
# t.string :unlock_token # Only if unlock strategy is :email or :both
|
|
31
|
+
# t.datetime :locked_at
|
|
32
|
+
|
|
33
|
+
t.string :first_name
|
|
34
|
+
t.string :last_name
|
|
35
|
+
t.string :username, null: false, default: ""
|
|
36
|
+
|
|
37
|
+
t.timestamps
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
add_index :request_refinery_users, :email, unique: true
|
|
41
|
+
add_index :request_refinery_users, :username, unique: true
|
|
42
|
+
add_index :request_refinery_users, :reset_password_token, unique: true
|
|
43
|
+
# add_index :request_refinery_users, :confirmation_token, unique: true
|
|
44
|
+
# add_index :request_refinery_users, :unlock_token, unique: true
|
|
45
|
+
|
|
46
|
+
create_table :request_refinery_permissions_users, id:false do |t|
|
|
47
|
+
t.belongs_to :permission
|
|
48
|
+
t.belongs_to :user
|
|
49
|
+
|
|
50
|
+
t.timestamps
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
create_table :request_refinery_roles_users, id:false do |t|
|
|
54
|
+
t.belongs_to :role
|
|
55
|
+
t.belongs_to :user
|
|
56
|
+
|
|
57
|
+
t.timestamps
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
create_table :request_refinery_customers_users, id:false do |t|
|
|
61
|
+
t.belongs_to :customer
|
|
62
|
+
t.belongs_to :user
|
|
63
|
+
|
|
64
|
+
t.timestamps
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
create_table :request_refinery_inverse_users_restrictions, id:false do |t|
|
|
68
|
+
t.belongs_to :permission
|
|
69
|
+
t.belongs_to :user
|
|
70
|
+
|
|
71
|
+
t.timestamps
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
class CreateRequestRefineryControllerFilters < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
create_table :request_refinery_controller_filters do |t|
|
|
4
|
+
t.string :http_method
|
|
5
|
+
t.string :controller
|
|
6
|
+
t.string :action_name
|
|
7
|
+
|
|
8
|
+
t.timestamps
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
create_table :request_refinery_controller_filters_permissions do |t|
|
|
12
|
+
t.belongs_to :controller_filter
|
|
13
|
+
t.belongs_to :permission
|
|
14
|
+
|
|
15
|
+
t.timestamps
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
class CreateRequestRefineryPermissions < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
create_table :request_refinery_roles do |t|
|
|
4
|
+
t.string :group
|
|
5
|
+
|
|
6
|
+
t.timestamps
|
|
7
|
+
end
|
|
8
|
+
add_index :request_refinery_roles, :group, unique: true
|
|
9
|
+
|
|
10
|
+
create_table :request_refinery_permissions do |t|
|
|
11
|
+
t.string :name
|
|
12
|
+
|
|
13
|
+
t.timestamps
|
|
14
|
+
end
|
|
15
|
+
add_index :request_refinery_permissions, :name, unique: true
|
|
16
|
+
|
|
17
|
+
create_table :request_refinery_permissions_roles, id:false do |t|
|
|
18
|
+
t.belongs_to :role
|
|
19
|
+
t.belongs_to :permission
|
|
20
|
+
|
|
21
|
+
t.timestamps
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
create_table :request_refinery_restrictions_inverse_roles, id:false do |t|
|
|
25
|
+
t.belongs_to :role
|
|
26
|
+
t.belongs_to :permission
|
|
27
|
+
|
|
28
|
+
t.timestamps
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class CreateRequestRefineryCustomers < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
create_table :request_refinery_customers do |t|
|
|
4
|
+
t.string :cust_id
|
|
5
|
+
t.string :prefix
|
|
6
|
+
t.string :folder_name
|
|
7
|
+
t.string :error_email_recipients
|
|
8
|
+
|
|
9
|
+
t.timestamps
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
data/db/seeds.rb
ADDED
|
File without changes
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
require 'rails/generators/base'
|
|
2
|
+
|
|
3
|
+
module RequestRefinery
|
|
4
|
+
module Generators
|
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
|
6
|
+
# include Rails::Generators::Actions::CreateMigration
|
|
7
|
+
# Mount the engine in routes.rb of the host app
|
|
8
|
+
# route "mount RequestRefinery::Engine, at:'/'"
|
|
9
|
+
|
|
10
|
+
############################################################
|
|
11
|
+
# Seed data ################################################
|
|
12
|
+
############################################################
|
|
13
|
+
|
|
14
|
+
# Create an initial set of Permissions
|
|
15
|
+
puts "Creating default permission set\n\tview\n\tedit\n\tcreate\n\tdelete\n\tall"
|
|
16
|
+
perms = []
|
|
17
|
+
perms << view = Permission.new(name:"view")
|
|
18
|
+
perms << edit = Permission.new(name:"edit")
|
|
19
|
+
perms << create = Permission.new(name:"create")
|
|
20
|
+
perms << delete = Permission.new(name:"delete")
|
|
21
|
+
perms << all = Permission.new(name:"all")
|
|
22
|
+
perms.each{|x| x.save}
|
|
23
|
+
|
|
24
|
+
# Create an initial admin role
|
|
25
|
+
puts "Creating admin role with permission 'all'"
|
|
26
|
+
admin = Role.new(group: "admin")
|
|
27
|
+
admin.permissions = [all]
|
|
28
|
+
admin.save
|
|
29
|
+
|
|
30
|
+
# Create an initial admin user
|
|
31
|
+
puts "Creating user 'temporary admin' with 'admin' role"
|
|
32
|
+
email = "admin@admin.fake"
|
|
33
|
+
password = "password"
|
|
34
|
+
puts "\tUsername: #{email}\n\tPassword: #{password}"
|
|
35
|
+
admin_user = User.new(email:email,password:password,first_name:"temporary",last_name:"admin")
|
|
36
|
+
admin_user.roles << admin
|
|
37
|
+
admin_user.save
|
|
38
|
+
|
|
39
|
+
# Create default set of controller filters
|
|
40
|
+
puts "Creating default http_method permissions
|
|
41
|
+
\n\tGET permissions: view
|
|
42
|
+
\n\tPOST permissions: create
|
|
43
|
+
\n\tPUT permissions: edit
|
|
44
|
+
\n\tPATCH permissions: edit
|
|
45
|
+
\n\tDELETE permissions: delete"
|
|
46
|
+
ControllerFilter.new(http_method:"get",permissions:[view]).save
|
|
47
|
+
ControllerFilter.new(http_method:"post",permissions:[create]).save
|
|
48
|
+
ControllerFilter.new(http_method:"put",permissions:[edit]).save
|
|
49
|
+
ControllerFilter.new(http_method:"patch",permissions:[edit]).save
|
|
50
|
+
ControllerFilter.new(http_method:"delete",permissions:[delete]).save
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
# source_root File.expand_path("../../templates", __FILE__)
|
|
58
|
+
|
|
59
|
+
# desc "Creates a Devise initializer and copy locale files to your application."
|
|
60
|
+
# # class_option :orm
|
|
61
|
+
|
|
62
|
+
# def copy_initializer
|
|
63
|
+
# template "devise.rb", "config/initializers/devise.rb"
|
|
64
|
+
# end
|
|
65
|
+
|
|
66
|
+
# def copy_locale
|
|
67
|
+
# copy_file "../../../config/locales/en.yml", "config/locales/devise.en.yml"
|
|
68
|
+
# end
|
|
69
|
+
|
|
70
|
+
# def show_readme
|
|
71
|
+
# readme "README" if behavior == :invoke
|
|
72
|
+
# end
|
|
73
|
+
|
|
74
|
+
# def rails_4?
|
|
75
|
+
# Rails::VERSION::MAJOR == 4
|
|
76
|
+
# end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module RequestRefinery
|
|
2
|
+
class Engine < ::Rails::Engine
|
|
3
|
+
isolate_namespace RequestRefinery
|
|
4
|
+
|
|
5
|
+
# to avoid the railties migration step
|
|
6
|
+
initializer :append_migrations do |app|
|
|
7
|
+
unless app.root.to_s.match root.to_s
|
|
8
|
+
config.paths["db/migrate"].expanded.each do |expanded_path|
|
|
9
|
+
app.config.paths["db/migrate"] << expanded_path
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
require 'devise'
|
|
2
|
+
require "request_refinery/engine"
|
|
3
|
+
|
|
4
|
+
module RequestRefinery
|
|
5
|
+
module ControllerMethods
|
|
6
|
+
|
|
7
|
+
# returns a boolean indicating whether the user has the permission/permissions in omniParam
|
|
8
|
+
# the intended use is to pass it a symbol or an array of symbols, but there are various other options below:
|
|
9
|
+
# omniParam can be a string representing Permission.name, a symbol representing the same, or the actual Permission object
|
|
10
|
+
# omniParam can also be an array containg any combination of the aforementioned single parameters
|
|
11
|
+
def authorized_to? omniParam, user:current_user, permissions:nil
|
|
12
|
+
perms = permissions
|
|
13
|
+
perms = user.permission_syms if perms === nil or (!perms.is_a? Array or !perms[0].is_a? Symbol)
|
|
14
|
+
|
|
15
|
+
return true if perms.include? :all
|
|
16
|
+
|
|
17
|
+
if omniParam.is_a? Symbol
|
|
18
|
+
return perms.include? omniParam
|
|
19
|
+
elsif omniParam.is_a? String
|
|
20
|
+
return perms.include? omniParam.to_sym
|
|
21
|
+
elsif omniParam.is_a? RequestRefinery::Permission
|
|
22
|
+
return perms.include? omniParam.name.to_sym
|
|
23
|
+
elsif omniParam.is_a? Array
|
|
24
|
+
return omniParam.all?{|x| authorized_to? x,user:user, permissions:perms}
|
|
25
|
+
elsif omniParam.is_a? RequestRefinery::Permission::ActiveRecord_Associations_CollectionProxy
|
|
26
|
+
return authorized_to? omniParam.to_a, user:user, permissions:perms
|
|
27
|
+
elsif omniParam.is_a? Role # not going to handle Role because that would weaken the connection between access to a resource and a specific permission
|
|
28
|
+
elsif omniParam.is_a? Hash # does not make sense
|
|
29
|
+
elsif omniParam.is_a? User # does not make sense
|
|
30
|
+
else
|
|
31
|
+
return false
|
|
32
|
+
end
|
|
33
|
+
return false
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def enforce_request_permissions user:current_user
|
|
37
|
+
# Allow all DeviseController methods
|
|
38
|
+
return if self.class.superclass.to_s == DeviseController.to_s
|
|
39
|
+
|
|
40
|
+
# collect the method, controller, and action
|
|
41
|
+
# look for a matching controller filter
|
|
42
|
+
filter = RequestRefinery::ControllerFilter.where(http_method:request.method.downcase,controller:self.class.to_s,action_name:@_action_name).first
|
|
43
|
+
|
|
44
|
+
# look for a http_method specific controller-wide filter (ie - the action_name will be blank) if there is not one for the method, and use that filter for the request instead
|
|
45
|
+
filter = RequestRefinery::ControllerFilter.where(http_method:request.method.downcase,controller:self.class.to_s,action_name:nil).first if filter.blank?
|
|
46
|
+
|
|
47
|
+
# look for a controller-wide filter (ie - the action_name and http_method will be blank) if there is not one for the method, and use that filter for the request instead
|
|
48
|
+
filter = RequestRefinery::ControllerFilter.where(http_method:nil,controller:self.class.to_s,action_name:nil).first if filter.blank?
|
|
49
|
+
|
|
50
|
+
# look for an http_method-wide filter (only the http_method will be filled in) if there is not one for the controller (not recommended since this loosens the security)
|
|
51
|
+
filter = RequestRefinery::ControllerFilter.where(http_method:request.method.downcase,controller:nil,action_name:nil).first if filter.blank?
|
|
52
|
+
|
|
53
|
+
# handle unauthorized request with unauthorized_request method if filter.blank?
|
|
54
|
+
return unauthorized_request if filter.blank?
|
|
55
|
+
|
|
56
|
+
# get the required permissions and user permissions
|
|
57
|
+
# handle unauthorized request with unauthorized_request method unless authorized_to? filter.permissions
|
|
58
|
+
unauthorized_request(filter:filter) unless authorized_to? filter.permissions
|
|
59
|
+
|
|
60
|
+
puts "\n\nConfirmed that #{user.email} is authorized to #{filter.http_method.upcase}::>#{filter.controller}.#{filter.action_name}\n\n" if authorized_to? filter.permissions
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# can render any page, but a redirect will result in a redirect loop
|
|
64
|
+
def unauthorized_request user:current_user,filter:nil
|
|
65
|
+
puts "\n\nNo filter matches the given http method, controller, or controller method, rerouting..." if filter.blank?
|
|
66
|
+
puts "\n\nUser #{user.email} is not authorized to #{filter.http_method.upcase}::>#{filter.controller || 'all'}.#{filter.action_name || 'all'}, rerouting...\n\n" unless filter.blank?
|
|
67
|
+
render json: "Unauthorized Request"
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: request_refinery
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Nathan Hanna
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2014-10-07 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: rails
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 4.1.6
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 4.1.6
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: devise
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: railties
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: sqlite3
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
description: |-
|
|
70
|
+
Creates the following tables:
|
|
71
|
+
Users
|
|
72
|
+
Roles
|
|
73
|
+
Permissions
|
|
74
|
+
ControllerFilters
|
|
75
|
+
Implements a devise authentication strategy already configured.
|
|
76
|
+
Makes available an 'authorized_to? method in application controller that returns true if the users permissions match the given permissions/list of permissions.
|
|
77
|
+
Implements whitelisting of all requests. Every http request needs to have an associated ControllerFilter. If the filter exists, then the current_user's permissions must satisfy the permissions required by the filter.
|
|
78
|
+
email:
|
|
79
|
+
- jnathanhdev@gmail.com
|
|
80
|
+
executables: []
|
|
81
|
+
extensions: []
|
|
82
|
+
extra_rdoc_files: []
|
|
83
|
+
files:
|
|
84
|
+
- MIT-LICENSE
|
|
85
|
+
- README.rdoc
|
|
86
|
+
- Rakefile
|
|
87
|
+
- app/assets/javascripts/request_refinery/application.js
|
|
88
|
+
- app/assets/javascripts/request_refinery/controller_filters.js
|
|
89
|
+
- app/assets/javascripts/request_refinery/customers.js
|
|
90
|
+
- app/assets/javascripts/request_refinery/permissions.js
|
|
91
|
+
- app/assets/javascripts/request_refinery/roles.js
|
|
92
|
+
- app/assets/stylesheets/request_refinery/application.css
|
|
93
|
+
- app/assets/stylesheets/request_refinery/controller_filters.css
|
|
94
|
+
- app/assets/stylesheets/request_refinery/customers.css
|
|
95
|
+
- app/assets/stylesheets/request_refinery/permissions.css
|
|
96
|
+
- app/assets/stylesheets/request_refinery/roles.css
|
|
97
|
+
- app/assets/stylesheets/scaffold.css
|
|
98
|
+
- app/controllers/request_refinery/application_controller.rb
|
|
99
|
+
- app/controllers/request_refinery/controller_filters_controller.rb
|
|
100
|
+
- app/controllers/request_refinery/customers_controller.rb
|
|
101
|
+
- app/controllers/request_refinery/permissions_controller.rb
|
|
102
|
+
- app/controllers/request_refinery/roles_controller.rb
|
|
103
|
+
- app/helpers/request_refinery/application_helper.rb
|
|
104
|
+
- app/helpers/request_refinery/controller_filters_helper.rb
|
|
105
|
+
- app/helpers/request_refinery/customers_helper.rb
|
|
106
|
+
- app/helpers/request_refinery/permissions_helper.rb
|
|
107
|
+
- app/helpers/request_refinery/roles_helper.rb
|
|
108
|
+
- app/models/request_refinery/controller_filter.rb
|
|
109
|
+
- app/models/request_refinery/customer.rb
|
|
110
|
+
- app/models/request_refinery/permission.rb
|
|
111
|
+
- app/models/request_refinery/role.rb
|
|
112
|
+
- app/models/request_refinery/user.rb
|
|
113
|
+
- app/views/layouts/request_refinery/application.html.erb
|
|
114
|
+
- app/views/request_refinery/controller_filters/_form.html.erb
|
|
115
|
+
- app/views/request_refinery/controller_filters/edit.html.erb
|
|
116
|
+
- app/views/request_refinery/controller_filters/index.html.erb
|
|
117
|
+
- app/views/request_refinery/controller_filters/new.html.erb
|
|
118
|
+
- app/views/request_refinery/controller_filters/show.html.erb
|
|
119
|
+
- app/views/request_refinery/customers/_form.html.erb
|
|
120
|
+
- app/views/request_refinery/customers/edit.html.erb
|
|
121
|
+
- app/views/request_refinery/customers/index.html.erb
|
|
122
|
+
- app/views/request_refinery/customers/new.html.erb
|
|
123
|
+
- app/views/request_refinery/customers/show.html.erb
|
|
124
|
+
- app/views/request_refinery/permissions/_form.html.erb
|
|
125
|
+
- app/views/request_refinery/permissions/edit.html.erb
|
|
126
|
+
- app/views/request_refinery/permissions/index.html.erb
|
|
127
|
+
- app/views/request_refinery/permissions/new.html.erb
|
|
128
|
+
- app/views/request_refinery/permissions/show.html.erb
|
|
129
|
+
- app/views/request_refinery/roles/_form.html.erb
|
|
130
|
+
- app/views/request_refinery/roles/edit.html.erb
|
|
131
|
+
- app/views/request_refinery/roles/index.html.erb
|
|
132
|
+
- app/views/request_refinery/roles/new.html.erb
|
|
133
|
+
- app/views/request_refinery/roles/show.html.erb
|
|
134
|
+
- config/initializers/application_controller.rb
|
|
135
|
+
- config/initializers/devise.rb
|
|
136
|
+
- config/locales/devise.en.yml
|
|
137
|
+
- config/routes.rb
|
|
138
|
+
- db/migrate/20141003181010_devise_create_request_refinery_users.rb
|
|
139
|
+
- db/migrate/20141003190734_create_request_refinery_controller_filters.rb
|
|
140
|
+
- db/migrate/20141003190741_create_request_refinery_permissions.rb
|
|
141
|
+
- db/migrate/20141003194717_create_request_refinery_customers.rb
|
|
142
|
+
- db/seeds.rb
|
|
143
|
+
- lib/generators/request_refinery/install_generator.rb
|
|
144
|
+
- lib/request_refinery.rb
|
|
145
|
+
- lib/request_refinery/engine.rb
|
|
146
|
+
- lib/request_refinery/version.rb
|
|
147
|
+
- lib/tasks/request_refinery_tasks.rake
|
|
148
|
+
homepage: https://github.com/jnathanh/request_refinery
|
|
149
|
+
licenses:
|
|
150
|
+
- MIT
|
|
151
|
+
metadata: {}
|
|
152
|
+
post_install_message:
|
|
153
|
+
rdoc_options: []
|
|
154
|
+
require_paths:
|
|
155
|
+
- lib
|
|
156
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
157
|
+
requirements:
|
|
158
|
+
- - ">="
|
|
159
|
+
- !ruby/object:Gem::Version
|
|
160
|
+
version: '0'
|
|
161
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
|
+
requirements:
|
|
163
|
+
- - ">="
|
|
164
|
+
- !ruby/object:Gem::Version
|
|
165
|
+
version: '0'
|
|
166
|
+
requirements: []
|
|
167
|
+
rubyforge_project:
|
|
168
|
+
rubygems_version: 2.2.2
|
|
169
|
+
signing_key:
|
|
170
|
+
specification_version: 4
|
|
171
|
+
summary: Implements a permissions system for Rails api endpoints and devise users
|
|
172
|
+
test_files: []
|