Class: Kankri::PrivilegeSet

Inherits:
Object
  • Object
show all
Defined in:
lib/kankri/privilege_set.rb

Overview

Wrapper around a set of privileges a client has

Instance Method Summary collapse

Constructor Details

#initialize(privileges) ⇒ PrivilegeSet

Initialises a privilege set.

Examples:

Create a privilege set with no privileges.

PrivilegeSet.new({})

Create a privilege set with some privileges.

PrivilegeSet.new({channel_set: [:get, :put]})


13
14
15
16
# File 'lib/kankri/privilege_set.rb', line 13

def initialize(privileges)
  @privileges = privileges
  symbolise_privileges
end

Instance Method Details

#has?(privilege, target) ⇒ Boolean

Checks to see if a certain privilege exists on a given target

Examples:

Check your privilege.

privs.has?(:channel, :put)
#=> false

Parameters:

  • target (Symbol)

    The handler target the privilege is for.

  • privilege (Symbol)

    The privilege (one of :get, :put, :post or :delete).

Returns:

  • (Boolean)

    true if the privileges are sufficient; false otherwise.



36
37
38
# File 'lib/kankri/privilege_set.rb', line 36

def has?(privilege, target)
  PrivilegeChecker.new(target, privilege, @privileges).check?
end

#require(target, privilege) ⇒ Object

Requires a certain privilege on a certain target



19
20
21
# File 'lib/kankri/privilege_set.rb', line 19

def require(target, privilege)
  fail(InsufficientPrivilegeError) unless has?(target, privilege)
end