Module: Tuersteher::ControllerExtensions
- Defined in:
- lib/tuersteher.rb
Overview
Module zum Include in Controllers Dieser muss die folgenden Methoden bereitstellen:
current_user : akt. Login-User
access_denied : Methode aus dem authenticated_system, welche ein redirect zum login auslöst
Der Loginuser muss fuer die hier benoetigte Funktionalitaet die Methode:
has_role?(role) # role the Name of the Role as Symbol
besitzen.
Beispiel der Einbindung in den ApplicationController
include Tuersteher::ControllerExtensions
before_filter :check_access # methode is from Tuersteher::ControllerExtensions
Constant Summary collapse
- @@url_path_method =
nil
Class Method Summary collapse
Instance Method Summary collapse
-
#model_access?(model, permission) ⇒ Boolean
Pruefen Zugriff auf ein Model-Object.
-
#path_access?(path, method = :get) ⇒ Boolean
Pruefen Zugriff fuer eine Web-action.
-
#purge_collection(collection, permission) ⇒ Object
Bereinigen (entfernen) aller Objecte aus der angebenen Collection, wo der akt.
Class Method Details
.included(base) ⇒ Object
305 306 307 308 309 310 |
# File 'lib/tuersteher.rb', line 305 def self.included(base) base.class_eval do # Diese Methoden auch als Helper fuer die Views bereitstellen helper_method :path_access?, :model_access?, :purge_collection end end |
Instance Method Details
#model_access?(model, permission) ⇒ Boolean
Pruefen Zugriff auf ein Model-Object
model das Model-Object permission das geforderte Zugriffsrecht (:create, :update, :destroy, :get)
liefert true/false
292 293 294 |
# File 'lib/tuersteher.rb', line 292 def model_access? model, AccessRules.model_access? current_user, model, end |
#path_access?(path, method = :get) ⇒ Boolean
Pruefen Zugriff fuer eine Web-action
path Pfad der Webresource (String) method http-Methode (:get, :put, :delete, :post), default ist :get
282 283 284 |
# File 'lib/tuersteher.rb', line 282 def path_access?(path, method = :get) AccessRules.path_access? current_user, path, method end |
#purge_collection(collection, permission) ⇒ Object
Bereinigen (entfernen) aller Objecte aus der angebenen Collection, wo der akt. User nicht das angegebene Recht hat
liefert ein neues Array mit den Objecten, wo der spez. Zugriff arlaubt ist
300 301 302 |
# File 'lib/tuersteher.rb', line 300 def purge_collection collection, AccessRules.purge_collection(current_user, collection, ) end |