Class: BiovisionComponent
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- BiovisionComponent
- Includes:
- FlatPriority, RequiredUniqueSlug
- Defined in:
- app/models/biovision_component.rb
Overview
Biovision component
Attributes:
created_at [DateTime]
parameters [JSON]
priority [Integer]
settings [JSON]
slug [String]
updated_at [DateTime]
Constant Summary collapse
- SLUG_LIMIT =
250
- SLUG_PATTERN =
/\A[a-z][-a-z0-9_]+[a-z0-9]\z/i.freeze
- SLUG_PATTERN_HTML =
'^[a-zA-Z][-a-zA-Z0-9_]+[a-zA-Z0-9]$'
- VALUE_LIMIT =
65_535
Class Method Summary collapse
-
.[](slug) ⇒ Object
Find component by slug.
Instance Method Summary collapse
- #[]=(slug, value) ⇒ Object
- #add_administrator(user) ⇒ Object
- #add_privilege(user, privilege_slug) ⇒ Object
- #get(slug, default_value = '') ⇒ Object
- #name ⇒ Object
- #privileges ⇒ Object
-
#receive(slug) ⇒ Object
deprecated
Deprecated.
use #get
-
#receive!(slug, default_value = '') ⇒ Object
deprecated
Deprecated.
use #get
- #remove_administrator(user) ⇒ Object
- #remove_privilege(user, privilege_slug) ⇒ Object
- #visible_to?(user) ⇒ Boolean
Methods included from FlatPriority
Class Method Details
.[](slug) ⇒ Object
Find component by slug
28 29 30 |
# File 'app/models/biovision_component.rb', line 28 def self.[](slug) find_by(slug: slug) end |
Instance Method Details
#[]=(slug, value) ⇒ Object
53 54 55 56 |
# File 'app/models/biovision_component.rb', line 53 def []=(slug, value) parameters[slug.to_s] = value save! end |
#add_administrator(user) ⇒ Object
75 76 77 78 79 80 81 |
# File 'app/models/biovision_component.rb', line 75 def add_administrator(user) link = biovision_component_users.find_by(user: user) return if link.nil? link.update(administrator: true) end |
#add_privilege(user, privilege_slug) ⇒ Object
94 95 96 97 98 99 100 |
# File 'app/models/biovision_component.rb', line 94 def add_privilege(user, privilege_slug) return if user.nil? link = biovision_component_users.find_or_create_by(user: user) link.data[privilege_slug.to_s] = true link.save end |
#get(slug, default_value = '') ⇒ Object
34 35 36 |
# File 'app/models/biovision_component.rb', line 34 def get(slug, default_value = '') parameters.fetch(slug.to_s) { default_value } end |
#name ⇒ Object
66 67 68 |
# File 'app/models/biovision_component.rb', line 66 def name I18n.t("biovision.components.#{slug}.name", default: slug) end |
#privileges ⇒ Object
70 71 72 |
# File 'app/models/biovision_component.rb', line 70 def privileges biovision_component_users.recent end |
#receive(slug) ⇒ Object
Deprecated.
use #get
40 41 42 |
# File 'app/models/biovision_component.rb', line 40 def receive(slug) parameters[slug.to_s] end |
#receive!(slug, default_value = '') ⇒ Object
Deprecated.
use #get
47 48 49 |
# File 'app/models/biovision_component.rb', line 47 def receive!(slug, default_value = '') get(slug, default_value) end |
#remove_administrator(user) ⇒ Object
84 85 86 87 88 89 90 |
# File 'app/models/biovision_component.rb', line 84 def remove_administrator(user) link = biovision_component_users.find_by(user: user) return if link.nil? link.update(administrator: false) end |
#remove_privilege(user, privilege_slug) ⇒ Object
104 105 106 107 108 109 110 111 |
# File 'app/models/biovision_component.rb', line 104 def remove_privilege(user, privilege_slug) link = biovision_component_users.find_by(user: user) return if link.nil? link.data[privilege_slug.to_s] = false link.save end |
#visible_to?(user) ⇒ Boolean
59 60 61 62 63 64 |
# File 'app/models/biovision_component.rb', line 59 def visible_to?(user) return false if user.nil? return true if user.super_user? biovision_component_users.where(user: user).exists? end |