tuersteher 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/tuersteher.rb +21 -3
  2. data/tuersteher.gemspec +2 -2
  3. metadata +4 -4
data/lib/tuersteher.rb CHANGED
@@ -159,6 +159,7 @@ module Tuersteher
159
159
  rule!=nil && !rule.deny
160
160
  end
161
161
 
162
+
162
163
  # Pruefen Zugriff auf ein Model-Object
163
164
  #
164
165
  # user User, für den der Zugriff geprüft werden soll (muss Methode has_role? haben)
@@ -183,6 +184,14 @@ module Tuersteher
183
184
  end
184
185
  access
185
186
  end
187
+
188
+ # Bereinigen (entfernen) aller Objecte aus der angebenen Collection,
189
+ # wo der angegebene User nicht das angegebene Recht hat
190
+ #
191
+ # liefert ein neues Array mit den Objecten, wo der spez. Zugriff arlaubt ist
192
+ def self.purge_collection user, collection, permission
193
+ collection.select{|model| model_access?(user, model, permission)}
194
+ end
186
195
  end
187
196
 
188
197
 
@@ -229,10 +238,19 @@ module Tuersteher
229
238
  AccessRules.model_access? current_user, model, permission
230
239
  end
231
240
 
241
+ # Bereinigen (entfernen) aller Objecte aus der angebenen Collection,
242
+ # wo der akt. User nicht das angegebene Recht hat
243
+ #
244
+ # liefert ein neues Array mit den Objecten, wo der spez. Zugriff arlaubt ist
245
+ def self.purge_collection collection, permission
246
+ AccessRules.purge_collection(current_user, collection, permission)
247
+ end
248
+
249
+
232
250
  def self.included(base)
233
251
  base.class_eval do
234
- # Methoden path_access? und model_access? auch als Helper fuer die Views bereitstellen
235
- helper_method :path_access?, :model_access?
252
+ # Diese Methoden auch als Helper fuer die Views bereitstellen
253
+ helper_method :path_access?, :model_access?, :purge_collection
236
254
  end
237
255
  end
238
256
 
@@ -329,7 +347,7 @@ module Tuersteher
329
347
 
330
348
 
331
349
  class ModelAccessRule
332
- attr_reader :clazz, :access_type, :role, :block
350
+ attr_reader :clazz, :access_type, :roles, :block
333
351
  attr_accessor :deny
334
352
 
335
353
  # erzeugt neue Object-Zugriffsregel
data/tuersteher.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{tuersteher}
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bernd Ledig"]
12
- s.date = %q{2010-08-15}
12
+ s.date = %q{2010-08-22}
13
13
  s.description = %q{Security-Layer for Rails-Application acts like a firewall.}
14
14
  s.email = %q{bernd@ledig.info}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tuersteher
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.1.3
9
+ - 4
10
+ version: 0.1.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bernd Ledig
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-15 00:00:00 +02:00
18
+ date: 2010-08-22 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies: []
21
21