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

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

Returns:

  • (Boolean)


292
293
294
# File 'lib/tuersteher.rb', line 292

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


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, permission
  AccessRules.purge_collection(current_user, collection, permission)
end