рджреВрд╕рд░реЗ рджрд┐рди, рдореИрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде, рдПрдХ yaml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рдерд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд╣реБрдВрдЪ рдЕрдзрд┐рдХрд╛рд░ рдереЗред рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдБрдЪ рд╣реЛред
рдРрд╕реА рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
--- api_url: value: example.com/api role: 4 api_login: value: user role: 4 api_password: value: 12355 role: 4
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрди рдЪрд░ рд╣реИрдВ рдЬреЛ рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдХреБрдВрдЬреА рдЪрд░ рдХрд╛ рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрд╢ рд╣реИ рдФрд░ рдЗрд╕ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдиреНрдпреВрдирддрдо рднреВрдорд┐рдХрд╛ рд╣реИред
рдЕрдм рд╣рдо рдПрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
require 'yaml' class Setting CONFIG_FILE = 'settings.yml' class << self def get(key) load_settings[key.to_s]['value'] end def update(params, role) settings = load_settings params.each do |key, value| key = key.to_s settings[key]['value'] = value.to_s if has_access?(role, key) end save_settings(settings) end def has_access?(role, key) return unless setting = load_settings[key] role >= setting['role'] end def load_settings @config ||= YAML.load(File.read(file_path)) end private def save_settings(settings) File.write(file_path, settings.to_yaml) end def file_path "config/
рдкреНрд░рдореБрдЦ рдбреЗрдЯрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
Setting.get('api_login') Setting.get('api_password') тАж
рдбреЗрдЯрд╛ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХреНрд▓рд╛рд╕ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рднреА рдЪреЗрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЖрдк рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдПрдХ рд╣реИрд╢ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдбреЗрдЯ рдЙрд╕ рдбреЗрдЯрд╛ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
Setting.update(params[:settings], current_user.role)
рд╣рдо рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╣реИрд╢ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░ред
рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ рдХреЛ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
Rails.root.join('config', CONFIG_FILE)