Class: Kankri::PrivilegeSet

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

Overview

Wrapper around a set of privileges a user has

The PrivilegeSet is the return value of an Authenticator, and represents the level of privilege the

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]})


17
18
19
# File 'lib/kankri/privilege_set.rb', line 17

def initialize(privileges)
  @privileges = symbolise_privileges(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


47
48
49
# File 'lib/kankri/privilege_set.rb', line 47

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

#require(target, privilege) ⇒ void

This method returns an undefined value.

Requires a certain privilege on a certain target

Examples:

Check your privilege.

privs.require(:channel, :put)


30
31
32
# File 'lib/kankri/privilege_set.rb', line 30

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