Sha256: ced32fd540e59aaf78bb44e93009878698f3dac71756ff80466a59734be2cf88

Contents?: true

Size: 1.15 KB

Versions: 2

Compression:

Stored size: 1.15 KB

Contents

# derzeit genutzte Rollen:
# * ADMIN
# * EDITOR
# * APPROVER
# * USER


#
# 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('/').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

#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)
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tuersteher-0.2.2 samples/access_rules.rb
tuersteher-0.2.1 samples/access_rules.rb