Module: Tuersteher::ControllerExtensions

Defined in:
lib/tuersteher.rb

Overview

Module zum Include in Controllers Dieser muss die folgenden Methoden bereitstellen:

login_contex : akt. Login-Contex
access_denied :  Methode aus dem authenticated_system, welche ein redirect zum login auslöst

Der Loginlogin_contex 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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



303
304
305
306
307
308
# File 'lib/tuersteher.rb', line 303

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

Returns:

  • (Boolean)


290
291
292
# File 'lib/tuersteher.rb', line 290

def model_access? model, permission
  AccessRules.model_access? , model, permission
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

Returns:

  • (Boolean)


280
281
282
# File 'lib/tuersteher.rb', line 280

def path_access?(path, method = :get)
  AccessRules.path_access? , path, method
end

#purge_collection(collection, permission) ⇒ Object

Bereinigen (entfernen) aller Objecte aus der angebenen Collection, wo der akt. login_contex nicht das angegebene Recht hat

liefert ein neues Array mit den Objecten, wo der spez. Zugriff arlaubt ist



298
299
300
# File 'lib/tuersteher.rb', line 298

def purge_collection collection, permission
  AccessRules.purge_collection(, collection, permission)
end