module Comunit::Base::PrivilegeMethods

Public Instance Methods

current_region() click to toggle source
# File lib/comunit/base/privilege_methods.rb, line 11
def current_region
  @current_region ||= set_current_region
end
current_user_has_privilege?(privilege_name, region_ids = []) click to toggle source

@param [Symbol] privilege_name @param [Array] region_ids

# File lib/comunit/base/privilege_methods.rb, line 17
def current_user_has_privilege?(privilege_name, region_ids = [])
  ::UserPrivilege.user_has_privilege?(current_user, privilege_name, region_ids)
end
current_user_in_group?(group_name) click to toggle source

@param [Symbol] group_name

# File lib/comunit/base/privilege_methods.rb, line 22
def current_user_in_group?(group_name)
  ::UserPrivilege.user_in_group?(current_user, group_name)
end

Protected Instance Methods

require_privilege(privilege_name) click to toggle source

@param [Symbol] privilege_name

# File lib/comunit/base/privilege_methods.rb, line 29
def require_privilege(privilege_name)
  return if current_user_has_privilege?(privilege_name, current_region.subbranch_ids)
  handle_http_401("Current user has no privilege #{privilege_name}")
end
require_privilege_group(group_name) click to toggle source

@param [Symbol] group_name

# File lib/comunit/base/privilege_methods.rb, line 35
def require_privilege_group(group_name)
  return if current_user_in_group?(group_name)
  handle_http_401("Current user is not in group #{group_name}")
end
set_current_region() click to toggle source
# File lib/comunit/base/privilege_methods.rb, line 40
def set_current_region
  region_slug = param_from_request(:region_slug)
  if region_slug.blank?
    region_slug = request.subdomains.first
  end
  if region_slug.blank?
    @current_region = CentralRegion.new
  else
    @current_region = Region.find_by(long_slug: region_slug) || CentralRegion.new
  end
end