abstracted 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,83 @@
1
+ class AbstractResourcePolicy
2
+
3
+ class Scope
4
+ attr_reader :current_user, :scope
5
+
6
+ def initialize(user, scope)
7
+ @current_user = user
8
+ @scope = scope
9
+ end
10
+
11
+ def resolve
12
+ scope.all
13
+ end
14
+ end
15
+
16
+ attr_reader :current_user, :model
17
+
18
+ def initialize(current_user, model)
19
+ @current_user = current_user
20
+ @model = model
21
+ end
22
+
23
+ def index?
24
+ # @current_user.admin?
25
+ true
26
+ end
27
+
28
+ def new?
29
+ # @current_user.admin?
30
+ true
31
+ end
32
+
33
+ def edit?
34
+ # @current_user.admin?
35
+ true
36
+ end
37
+
38
+ def show?
39
+ # @current_user.admin? or @current_user == @user
40
+ true
41
+ end
42
+
43
+ def create?
44
+ # @current_user.admin?
45
+ true
46
+ end
47
+
48
+ def update?
49
+ # @current_user.admin?
50
+ true
51
+ end
52
+
53
+ def destroy?
54
+ # return false if @current_user == @user
55
+ # @current_user.admin?
56
+ true
57
+ end
58
+
59
+ def attach?
60
+ true
61
+ end
62
+
63
+ def detach?
64
+ true
65
+ end
66
+
67
+ def prefer?
68
+ true
69
+ end
70
+
71
+ def defer?
72
+ true
73
+ end
74
+
75
+ def activate?
76
+ true
77
+ end
78
+
79
+ def deactivate?
80
+ true
81
+ end
82
+
83
+ end
@@ -87,12 +87,56 @@ end
87
87
 
88
88
 
89
89
  class UsersController < AbstractResourcesController
90
+ def current_user
91
+ # User.create! id: 1010101, login: 'test'
92
+ end
93
+ def authenticate_user!
94
+ true
95
+ end
96
+ def print
97
+ authorize resource
98
+ render text: 'done', layout: false
99
+ end
100
+ def edit
101
+ authorize resource
102
+ render text: 'done', layout: false
103
+ end
104
+ def show
105
+ authorize resource
106
+ render text: 'done', layout: false
107
+ end
108
+ def index
109
+ authorize resource
110
+ render text: 'done', layout: false
111
+ end
90
112
  def resource_params
91
113
  params.require(:user).permit(:id, :login, posts_attributes: [:id, :title, :_destroy])
92
114
  end
93
115
  end
94
116
 
95
117
  class PostsController < AbstractResourcesController
118
+ def current_user
119
+ # User.create! id: 1010101, login: 'test'
120
+ end
121
+ def print
122
+ authorize resource
123
+ render text: 'done', layout: false
124
+ end
125
+ def edit
126
+ authorize resource
127
+ render text: 'done', layout: false
128
+ end
129
+ def show
130
+ authorize resource
131
+ render text: 'done', layout: false
132
+ end
133
+ def authenticate_user!
134
+ true
135
+ end
136
+ def index
137
+ authorize resource
138
+ render text: 'done', layout: false
139
+ end
96
140
  def resource_params
97
141
  params.require(:post).permit(:id, :title, :user_id)
98
142
  end
@@ -100,15 +144,62 @@ end
100
144
 
101
145
  class User < AbstractResource
102
146
  has_many :posts
147
+ def current_user
148
+ end
103
149
  end
104
150
 
105
151
  class Post < AbstractResource
106
152
  belongs_to :user
107
153
  end
108
154
 
155
+ class UserPolicy < AbstractResourcePolicy
156
+ def print?
157
+ true
158
+ end
159
+ end
160
+
161
+ class PostPolicy < AbstractResourcePolicy
162
+ def print?
163
+ true
164
+ end
165
+ end
166
+
109
167
  Rails.application.routes.draw do
110
168
  resources :posts
111
169
  resources :users do
112
- resources :posts
170
+ member do
171
+ get :print
172
+ end
173
+ collection do
174
+ get :print
175
+ end
176
+ resources :posts do
177
+ member do
178
+ get :print
179
+ end
180
+ collection do
181
+ get :print
182
+ end
183
+ end
184
+ end
185
+
186
+ scope '/admin' do
187
+ resources :users do
188
+ member do
189
+ get :print
190
+ end
191
+ collection do
192
+ get :print
193
+ end
194
+ resources :posts do
195
+ member do
196
+ get :print
197
+ end
198
+ collection do
199
+ get :print
200
+ end
201
+ end
202
+ end
113
203
  end
204
+
114
205
  end
@@ -2,6 +2,8 @@
2
2
  require 'factory_girl_rails'
3
3
  require 'pry'
4
4
  require 'pry-nav'
5
+ require "pundit/rspec"
6
+ require 'pundit'
5
7
 
6
8
  Rails.backtrace_cleaner.remove_silencers!
7
9
  # Load support files
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abstracted
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Walther H Diechmann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-21 00:00:00.000000000 Z
11
+ date: 2016-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -272,16 +272,17 @@ files:
272
272
  - app/assets/javascripts/abstracted/.keep
273
273
  - app/assets/javascripts/abstracted/app.fab_delete.coffee
274
274
  - app/assets/javascripts/abstracted/app.materialize.coffee
275
+ - app/assets/javascripts/abstracted/app.page_scrolling.coffee
275
276
  - app/assets/javascripts/abstracted/app.resource_form.coffee
276
277
  - app/assets/javascripts/abstracted/app.resources_list.coffee
277
278
  - app/assets/javascripts/abstracted/app.shared.coffee
278
279
  - app/assets/javascripts/abstracted/app.sweetalert.coffee
279
280
  - app/assets/javascripts/abstracted/keypress.coffee
280
281
  - app/assets/javascripts/init.js.coffee
281
- - app/assets/javascripts/pagescrolling.js.coffee
282
282
  - app/assets/javascripts/triggers.coffee
283
283
  - app/assets/stylesheets/abstract_resources.css
284
284
  - app/assets/stylesheets/abstracted/.keep
285
+ - app/assets/stylesheets/balloon.min.css
285
286
  - app/assets/stylesheets/scaffold.css
286
287
  - app/assets/stylesheets/selectize.css.scss
287
288
  - app/controllers/.keep
@@ -380,6 +381,7 @@ files:
380
381
  - spec/factories/users.rb
381
382
  - spec/features/posts/manage_posts_spec.rb
382
383
  - spec/models/abstract_resource_spec.rb
384
+ - spec/policies/abstract_resources_policy.rb
383
385
  - spec/rails_helper.rb
384
386
  - spec/spec_helper.rb
385
387
  - test/integration/abstract_resource_test.rb
@@ -635,6 +637,7 @@ test_files:
635
637
  - spec/factories/users.rb
636
638
  - spec/features/posts/manage_posts_spec.rb
637
639
  - spec/models/abstract_resource_spec.rb
640
+ - spec/policies/abstract_resources_policy.rb
638
641
  - spec/rails_helper.rb
639
642
  - spec/spec_helper.rb
640
643
  - test/integration/abstract_resource_test.rb
@@ -1,93 +0,0 @@
1
- loadingPage = false
2
- currentPage = 0
3
- totalPages = 0
4
- navPaginator = ''
5
- lastPage = 0
6
- nextPage = 0
7
- pageUrl = ''
8
- contxt = null
9
- scrollTimeout = false
10
-
11
- @evalPageNumber = (elem) ->
12
- if elem
13
- try
14
- pn = elem[0].href
15
- .split('?')[1]
16
- .split('&')
17
- .filter (el,i,array) ->
18
- if el.match /^page/
19
- return el
20
- .join('')
21
- .split('=')[1]
22
- parseInt(pn)
23
- catch error
24
- pn = 0
25
-
26
- #
27
- # setVariables prepares for a great scrolling experience
28
- #
29
- @setVariables = (elem) ->
30
- navPaginator = $('nav.pagination')
31
- try
32
- pageUrl = navPaginator.find('a[rel=next]')[0].href.replace( '?', '.js?scrolling=true&')
33
- lastPage = evalPageNumber navPaginator.find('span.last a')
34
- nextPage = evalPageNumber navPaginator.find('a[rel=next]')
35
- contxt = $(elem)
36
- if nextPage > 1
37
- nextPage = 1
38
- true
39
-
40
- catch error
41
- console.log error
42
- return false
43
-
44
- #
45
- # closeToBottom checks to see if you're close to the bottom of the screen
46
- #
47
- @closeToBottom = () ->
48
- return false if navPaginator.size() == 0
49
- return ($(window).scrollTop() - parseInt($(document).height()) + parseInt($(window).height())) > -200
50
-
51
- @findNextPageToLoad = () ->
52
- nextPage += 1
53
- if nextPage > lastPage
54
- clearTimeout( scrollTimeout )
55
- return false
56
- if !pageUrl.split("?")[0].split(".js")[0].match window.location.href.split("?")[0]
57
- clearTimeout( scrollTimeout )
58
- return false
59
- pageUrl
60
- .replace /page=\d*&/, 'page=' + nextPage + '&'
61
-
62
-
63
- @loadNextPage = () ->
64
- if !loadingPage
65
- url = findNextPageToLoad()
66
- if url
67
- loadingPage = true
68
- jqxhr = $.ajax
69
- url: url
70
- type: 'GET'
71
- dataType: 'html'
72
- .done (data) ->
73
- contxt.find('tbody').append(data)
74
- loadingPage=false
75
- .fail (data) ->
76
- loadingPage = false
77
- console.log 'err'
78
- #
79
- # scroll a list - behind the scenes calling in extra pages of content
80
- #
81
- @scrollTable = (elem) ->
82
- return unless setVariables(elem)
83
- if nextPage > 0
84
- scrollHandler = () ->
85
- clearTimeout( scrollTimeout )
86
- if closeToBottom()
87
- $.when loadNextPage()
88
- .then scrollTimeout = setTimeout( scrollHandler, 250)
89
- .then navPaginator.hide()
90
- else
91
- setTimeout( scrollHandler, 250)
92
-
93
- scrollTimeout = setTimeout( scrollHandler, 250)