voltex 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b667e3175a6e0df18ab07406fdade6626a077664
4
- data.tar.gz: 42c84a396d9a1cbe91e8603ced0f67257ef86aa4
3
+ metadata.gz: 84b8ef19ab32541c4393db0c5f56f7245e62259e
4
+ data.tar.gz: e2333a8d0af162e5cdcd33be804caf41c288f4a5
5
5
  SHA512:
6
- metadata.gz: f6512979371b63cc2a6976fcbc0071f76e7e7943cf288975476cbbdf0d5db9e63991237c945a2efd046a0939f609286c473e2d51c95019d9252c341be15096d0
7
- data.tar.gz: 801504b7221ca12d4c319255325840aaa57ded5759fa70927c5e7c7e2f111595ab9c0ed943237a0d0e12b6d280d2a5375a76056502ee3f53345fe28bf20fa4b0
6
+ metadata.gz: 98a53283c64e91020ee3d9d260ffb68d74c2f25430d9770fbd50a07c9334ae23aae0dccb01529a9a37492869662887d70678469d770f861d7a9abf3e5cfeaa26
7
+ data.tar.gz: 99cde4d36097501a2ca2f329b7fdfd7b126a717faf0932cfca6ea58bc8620c898fe4724d101fc1c24fe203861cd04ea010421af55db6541c81c53a6affa3bf37
@@ -1,4 +1,4 @@
1
1
  module Voltex
2
- class ApplicationController < ActionController::Base
2
+ class ApplicationController < ::ApplicationController
3
3
  end
4
4
  end
@@ -11,7 +11,7 @@ module Voltex
11
11
  # PUT /voltex/roles/1
12
12
  def update
13
13
  if @resource.update(resource_params)
14
- redirect_to @resource, notice: t('.notice', default: update_message)
14
+ redirect_to [main_app, @resource], notice: t('.notice', default: update_message)
15
15
  else
16
16
  render :edit
17
17
  end
@@ -1,4 +1,9 @@
1
1
  module Voltex
2
2
  module ApplicationHelper
3
+ def method_missing(method, *args, &block)
4
+ main_app.send(method, *args, &block)
5
+ rescue NoMethodError
6
+ super
7
+ end
3
8
  end
4
9
  end
@@ -1,6 +1,6 @@
1
1
  <h2>Defining Role Permissions</h2>
2
2
 
3
- <%= form_for @resource, as: Voltex.role_name, url: role_path(@resource) do |f| %>
3
+ <%= form_for @resource, as: Voltex.role_name, url: voltex.role_path(@resource) do |f| %>
4
4
  <% Voltex.permission_model.select(:resource).group(:resource).each do |permission| %>
5
5
  <h5><%= permission.resource.pluralize %></h5>
6
6
  <%= f.collection_check_boxes("#{Voltex.permission_name}_ids",
data/lib/voltex.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  require 'rails'
2
+ require 'request_store'
3
+ require 'voltex/scope'
2
4
  require 'voltex/engine'
3
5
  require 'voltex/setup'
4
6
 
@@ -2,7 +2,7 @@ module Voltex
2
2
  module CanCan
3
3
  module Ability
4
4
  def define_voltex_abilities(user)
5
- user.send(Voltex.permissions_name).each do |permission|
5
+ Voltex.current_permissions.each do |permission|
6
6
  can permission.action.to_sym, permission.resource.constantize
7
7
  end
8
8
  end
data/lib/voltex/engine.rb CHANGED
@@ -1,5 +1,9 @@
1
1
  module Voltex
2
2
  class Engine < ::Rails::Engine
3
3
  isolate_namespace Voltex
4
+
5
+ ActiveSupport.on_load(:action_controller) do
6
+ include Voltex::Scope
7
+ end
4
8
  end
5
9
  end
data/lib/voltex/pundit.rb CHANGED
@@ -1,9 +1,10 @@
1
1
  module Voltex
2
2
  module Pundit
3
3
  def permission?(resource, action)
4
- user.send(Voltex.permissions_name).where(
5
- resource: resource.to_s,
6
- action: action).exists?
4
+ !!Voltex.current_permissions.detect do |permission|
5
+ permission.resource == resource.to_s &&
6
+ permission.action == action.to_s
7
+ end
7
8
  end
8
9
  end
9
10
  end
@@ -0,0 +1,20 @@
1
+ module Voltex
2
+ module Scope
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ before_action :set_current_permissions
7
+ end
8
+
9
+ protected
10
+
11
+ def set_current_permissions
12
+ return unless defined?(current_user)
13
+ Voltex.current_permissions = current_permissions
14
+ end
15
+
16
+ def current_permissions
17
+ current_user.send(Voltex.permissions_name).to_a
18
+ end
19
+ end
20
+ end
data/lib/voltex/setup.rb CHANGED
@@ -18,6 +18,15 @@ module Voltex
18
18
  mattr_accessor :include
19
19
  @@include = []
20
20
 
21
+
22
+ def current_permissions=(permissions)
23
+ RequestStore.store[:current_permissions] = permissions
24
+ end
25
+
26
+ def current_permissions
27
+ RequestStore.store[:current_permissions] || []
28
+ end
29
+
21
30
  def permissions_role_class
22
31
  [permission_class, role_class].map(&:pluralize).sort.join.singularize
23
32
  end
@@ -1,3 +1,3 @@
1
1
  module Voltex
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: voltex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erick Fabian
@@ -9,22 +9,36 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-04 00:00:00.000000000 Z
12
+ date: 2015-06-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: request_store
16
30
  requirement: !ruby/object:Gem::Requirement
17
31
  requirements:
18
32
  - - "~>"
19
33
  - !ruby/object:Gem::Version
20
- version: 4.2.1
34
+ version: 1.1.0
21
35
  type: :runtime
22
36
  prerelease: false
23
37
  version_requirements: !ruby/object:Gem::Requirement
24
38
  requirements:
25
39
  - - "~>"
26
40
  - !ruby/object:Gem::Version
27
- version: 4.2.1
41
+ version: 1.1.0
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: sqlite3
30
44
  requirement: !ruby/object:Gem::Requirement
@@ -131,6 +145,7 @@ files:
131
145
  - lib/voltex/cancan/ability.rb
132
146
  - lib/voltex/engine.rb
133
147
  - lib/voltex/pundit.rb
148
+ - lib/voltex/scope.rb
134
149
  - lib/voltex/setup.rb
135
150
  - lib/voltex/version.rb
136
151
  homepage: ''