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

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.



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)

Parameters:

  • target (Symbol)

    The handler target the privilege is for.

  • privilege (Symbol)

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



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

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