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.
- data/lib/tuersteher.rb +21 -3
- data/tuersteher.gemspec +2 -2
- 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
|
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, :
|
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.
|
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-
|
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:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
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-
|
18
|
+
date: 2010-08-22 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|