tuersteher 0.1.3 → 0.1.4

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.
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