Class: Adeia::Database
- Inherits:
-
Object
- Object
- Adeia::Database
- Defined in:
- lib/adeia/database.rb
Direct Known Subclasses
Instance Method Summary collapse
- #action_rights ⇒ Object
- #create_rights ⇒ Object
- #destroy_rights ⇒ Object
-
#initialize(controller, action, token, resource, user) ⇒ Database
constructor
A new instance of Database.
- #owners ⇒ Object
- #read_rights ⇒ Object
- #token_rights(right_name) ⇒ Object
- #update_rights ⇒ Object
- #user_groups ⇒ Object
Constructor Details
#initialize(controller, action, token, resource, user) ⇒ Database
Returns a new instance of Database.
5 6 7 8 9 10 11 |
# 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 |
Instance Method Details
#action_rights ⇒ Object
36 37 38 39 40 |
# 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 ⇒ Object
19 20 21 22 |
# 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 ⇒ Object
30 31 32 33 34 |
# 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 ⇒ Object
57 58 59 |
# File 'lib/adeia/database.rb', line 57 def owners @owners ||= user_groups.push @user end |
#read_rights ⇒ Object
13 14 15 16 17 |
# 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) ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# 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_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 ⇒ Object
24 25 26 27 28 |
# 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 |