Module: TheAudit::Base
Instance Method Summary collapse
- #init(controller, object = nil, data = {}) ⇒ Object
- #unescape(str) ⇒ Object
- #user_id_builder(controller) ⇒ Object
- #user_name ⇒ Object
- #user_path(context) ⇒ Object
Instance Method Details
#init(controller, object = nil, data = {}) ⇒ Object
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'app/models/concerns/base.rb', line 107 def init controller, object = nil, data = {} self.user_id = self.user_id_builder(controller) self.obj = object self.action_name = controller.action_name self.controller_name = controller.controller_name self.data = data.to_json unless data.blank? if r = controller.request self.ip = r.ip self.user_agent = r.user_agent self.bot = TheAudit.is_bot?(r.user_agent) self.remote_ip = r.remote_ip self.remote_addr = r.remote_addr self.remote_host = r.remote_host self.fullpath = self.unescape(r.fullpath) || '' self.referer = self.unescape(r.referer) || :direct_visit end self end |
#unescape(str) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'app/models/concerns/base.rb', line 91 def unescape str return nil if str.blank? res_str = CGI::unescape str # try to catch: # invalid byte sequence in UTF-8 # for search requests form old IE6-8 with cp-1251 begin res_str =~ // rescue ArgumentError res_str = CGI.unescape(str).force_encoding('windows-1251').encode end res_str end |
#user_id_builder(controller) ⇒ Object
87 88 89 |
# File 'app/models/concerns/base.rb', line 87 def user_id_builder controller controller.try(:current_user).try(:id) end |
#user_name ⇒ Object
79 80 81 |
# File 'app/models/concerns/base.rb', line 79 def user_name user.try(:email) || user.try(:login) || user.try(:username) end |
#user_path(context) ⇒ Object
83 84 85 |
# File 'app/models/concerns/base.rb', line 83 def user_path context "/users/#{ user.to_param }" end |