Class: Rasti::App::Policy

Inherits:
Object
  • Object
show all
Defined in:
lib/rasti/app/policy.rb

Defined Under Namespace

Classes: UnauthorizedError

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(environment, session) ⇒ Policy

Returns a new instance of Policy.



38
39
40
41
# File 'lib/rasti/app/policy.rb', line 38

def initialize(environment, session)
  @environment = environment
  @session = session
end

Class Method Details

.authorizationsObject



22
23
24
# File 'lib/rasti/app/policy.rb', line 22

def authorizations
  @authorizations ||= {}
end

Instance Method Details

#authorize!(permission, form) ⇒ Object

Raises:



51
52
53
# File 'lib/rasti/app/policy.rb', line 51

def authorize!(permission, form)
  raise UnauthorizedError.new(session.user.name, permission) unless authorized? permission, form
end

#authorized?(permission, form) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
46
47
48
49
# File 'lib/rasti/app/policy.rb', line 43

def authorized?(permission, form)
  if self.class.authorizations.key? permission
    instance_exec form, &self.class.authorizations[permission]
  else
    session.user.authorized? permission
  end
end