Class: Adeia::Authorization

Inherits:
Database show all
Defined in:
lib/adeia/authorization.rb

Instance Method Summary collapse

Methods inherited from Database

#action_rights, #create_rights, #destroy_rights, #initialize, #owners, #read_rights, #token_rights, #update_rights, #user_groups

Constructor Details

This class inherits a constructor from Adeia::Database

Instance Method Details

#authorize!Object

Raises:



8
9
10
11
12
13
14
# File 'lib/adeia/authorization.rb', line 8

def authorize!
  token_rights = token_rights(right_name)
  raise LoginRequired if token_rights[:rights].empty? && @user.nil?
  action_rights = @user.nil? ? {} : send("#{right_name}_rights")
  merge_permissions(token_rights, action_rights)
  raise AccessDenied unless @rights.any? && authorize?
end

#can?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/adeia/authorization.rb', line 30

def can?
  rights? && authorize?
end

#check_permissions!Object



16
17
18
19
20
21
22
# File 'lib/adeia/authorization.rb', line 16

def check_permissions!
  if !@user
    raise LoginRequired
  elsif load_permissions && @rights.empty?
    raise AccessDenied
  end
end

#rights?Boolean

Returns:

  • (Boolean)


24
25
26
27
28
# File 'lib/adeia/authorization.rb', line 24

def rights?
  action_rights = @user.nil? ? {} : send("#{right_name}_rights")
  merge_permissions(token_rights(right_name), action_rights)
  @rights.any?
end