class Adeia::Database
Public Class Methods
new(controller, action, token, resource, user)
click to toggle source
# File lib/adeia/database.rb, line 5 def initialize(controller, action, token, resource, user) @controller = controller @action = action @token = token @resource = resource @user = user end
Public Instance Methods
action_rights()
click to toggle source
# File lib/adeia/database.rb, line 36 def action_rights @action_rights ||= Adeia::Permission.joins(:actions, :element).where(owner: owners, adeia_elements: {name: @controller}, adeia_actions: {name: @action}) @action_resource_ids ||= @action_rights.pluck(:resource_id).compact return { rights: @action_rights, resource_ids: @action_resource_ids } end
create_rights()
click to toggle source
# File lib/adeia/database.rb, line 19 def create_rights @create_rights ||= Adeia::Permission.joins(:element).where(owner: owners, create_right: true, adeia_elements: {name: @controller}) return { rights: @create_rights } end
destroy_rights()
click to toggle source
# File lib/adeia/database.rb, line 30 def destroy_rights @destroy_rights ||= Adeia::Permission.joins(:element).where(owner: owners, destroy_right: true, adeia_elements: {name: @controller}) @destroy_resource_ids ||= @destroy_rights.pluck(:resource_id).compact return { rights: @destroy_rights, resource_ids: @destroy_resource_ids } end
owners()
click to toggle source
# File lib/adeia/database.rb, line 61 def owners if @owners.nil? @owners = user_groups @owners = user_groups.push @user if @user end return @owners end
read_rights()
click to toggle source
# File lib/adeia/database.rb, line 13 def read_rights @read_rights ||= Adeia::Permission.joins(:element).where(owner: owners, read_right: true, adeia_elements: {name: @controller}) @read_resource_ids ||= @read_rights.pluck(:resource_id).compact return { rights: @read_rights, resource_ids: @read_resource_ids } end
token_rights(right_name)
click to toggle source
# File lib/adeia/database.rb, line 42 def token_rights(right_name) @permission_token ||= Adeia::Token.find_by(token: @token) if @permission_token && @permission_token.is_valid? @token_rights ||= Adeia::Permission.joins(:element).where(id: @permission_token.adeia_permission_id, adeia_elements: { name: @controller }, "#{right_name}_right": true) @token_resource_ids ||= @token_rights.pluck(:resource_id).compact return { rights: @token_rights, resource_ids: @token_resource_ids } else return { rights: Adeia::Permission.none } end end
update_rights()
click to toggle source
# File lib/adeia/database.rb, line 24 def update_rights @update_rights ||= Adeia::Permission.joins(:element).where(owner: owners, update_right: true, adeia_elements: {name: @controller}) @update_resource_ids ||= @update_rights.pluck(:resource_id).compact return { rights: @update_rights, resource_ids: @update_resource_ids } end
user_groups()
click to toggle source
# File lib/adeia/database.rb, line 53 def user_groups if @user_groups.nil? @user_groups = [] @user_groups = Adeia::Group.joins(:group_users).where(adeia_group_users: { user_id: @user.id }).to_a if @user end return @user_groups end