samples/access_rules.rb in tuersteher-0.2.2 vs samples/access_rules.rb in tuersteher-0.3.0
- old
+ new
@@ -6,34 +6,38 @@
#
# Pfad-Zugriffsregeln
# Aufbau:
-# Path : URL-Pfad, wird als regex ausgewertet
-# Methode : :all, :get, :put, :post, :delete oder :edit
-# roles :Liste der berechtigten Rollen (es können mehrere Rollen durch Komma getrennt angegeben werden)
-#
+# path(<path>).grant[.method(<methode>)][.not][.role(<role>)][.extension(<ext_method>[, <expected_value>)]
+# or
+# path(<path>).deny[.method(<methode>)][.not][.role(<role>)][.extension(<ext_method>[, <expected_value>)]
+# with
+# <method>: HTTP-Method name as Symbol (:get, :put, :post, :delete) or :all
path('/').grant.method(:get)
path(:all).grant.role(:ADMIN)
path('/user/lock').deny.role(:USER).role(:APPROVER)
path('/special').grant.extension(:special?, :area1)
#
# Model-Object-Zugriffsregeln
# Aufbau:
-# Model-Klasse : Klasse des Models
-# Zugriffsart : frei definierbares Symbol, empfohlen :update, :create, :destroy
-# Roles : Aufzählung der Rollen
-# Block : optionaler Block, diesem wird die Model-Instance und der User als Parameter bereitgestellt
+# model(<ModelClass>).grant.permission(<permission>)[.role(<role>)][.extension(<method>[, <expected_value>])]
+# or
+# model(<ModelClass>).deny.permission(<permission>)[.not][.role(<role>)][.extension(<method>[, <expected_value>])]
+# or
+# model(<ModelClass> do
+# grant..permission(<permission>)[.role(<role>)][.extension(<method>[, <expected_value>])]
+# deny.permission(<permission>)[.role(<role>)][.extension(<method>[, <expected_value>])]
+# ...
+# end
-#grant_model String, :view, :all
-#grant_model String, :view, :ADMIN, :EDITOR
-#grant_model String, :update, :EDITOR do |model, user| model == user.name end
model(Dashboard).grant.permission(:view)
model(Todo) do
grant.permission(:view)
grant.permission(:full_view).role(:ADMIN)
grant.permission(:update).role(:EDITOR).extension(:owned_by?) # calls Todo.owned_by?(current_user)
+ grant-permission(:delete).not.role(:ADMIN)
end