voltex 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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: ''