Class: AccessForge::Policy

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

Instance Method Summary collapse

Constructor Details

#initialize(user, controller) ⇒ Policy

Returns a new instance of Policy.



5
6
7
8
9
10
# File 'lib/access_forge/policy.rb', line 5

def initialize(user, controller)
  @user = user
  @controller = controller
  @params = @controller.request.params
  @headers = @controller.request.headers
end

Instance Method Details

#authorized?(rules, options = {}) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
# File 'lib/access_forge/policy.rb', line 12

def authorized?(rules, options = {})
  rules.each do |rule|
    return true if rule.authorized?(@user, @controller, options)
  end
  false
end

#can_read?Boolean

Returns:

  • (Boolean)


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

def can_read?
  authorized?([PolicyRules::ClosedPolicyRule])
end

#can_write?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/access_forge/policy.rb', line 55

def can_write?
  authorized?([PolicyRules::ClosedPolicyRule])
end

#create?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/access_forge/policy.rb', line 31

def create?
  can_write?
end

#delete?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/access_forge/policy.rb', line 43

def delete?
  destroy?
end

#destroy?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/access_forge/policy.rb', line 47

def destroy?
  can_write?
end

#edit?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/access_forge/policy.rb', line 35

def edit?
  update?
end

#index?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/access_forge/policy.rb', line 19

def index?
  can_read?
end

#new?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/access_forge/policy.rb', line 27

def new?
  create?
end

#show?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/access_forge/policy.rb', line 23

def show?
  can_read?
end

#update?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/access_forge/policy.rb', line 39

def update?
  can_write?
end