class Console1984::SessionsLogger::Database
A session logger that saves audit trails in the database.
Attributes
current_sensitive_access[R]
current_session[R]
Public Instance Methods
after_executing(statements)
click to toggle source
# File lib/console1984/sessions_logger/database.rb, line 36 def after_executing(statements) end
before_executing(statements)
click to toggle source
# File lib/console1984/sessions_logger/database.rb, line 29 def before_executing(statements) silence_logging do @before_commands_count = @current_session.commands.count record_statements statements end end
end_sensitive_access()
click to toggle source
# File lib/console1984/sessions_logger/database.rb, line 25 def end_sensitive_access @current_sensitive_access = nil end
finish_session()
click to toggle source
# File lib/console1984/sessions_logger/database.rb, line 14 def finish_session @current_session = nil @current_sensitive_access = nil end
start_sensitive_access(justification)
click to toggle source
# File lib/console1984/sessions_logger/database.rb, line 19 def start_sensitive_access(justification) silence_logging do @current_sensitive_access = current_session.sensitive_accesses.create! justification: justification end end
start_session(username, reason)
click to toggle source
# File lib/console1984/sessions_logger/database.rb, line 7 def start_session(username, reason) silence_logging do user = Console1984::User.find_or_create_by!(username: username) @current_session = user.sessions.create!(reason: reason) end end
suspicious_commands_attempted(statements)
click to toggle source
# File lib/console1984/sessions_logger/database.rb, line 39 def suspicious_commands_attempted(statements) silence_logging do sensitive_access = start_sensitive_access "Suspicious commands attempted" Console1984::Command.last.update! sensitive_access: sensitive_access end end
Private Instance Methods
record_statements(statements)
click to toggle source
# File lib/console1984/sessions_logger/database.rb, line 47 def record_statements(statements) @current_session.commands.create! statements: Array(statements).join("\n"), sensitive_access: current_sensitive_access end
silence_logging(&block)
click to toggle source
# File lib/console1984/sessions_logger/database.rb, line 51 def silence_logging(&block) if Console1984.debug block.call else Console1984::IncinerationJob.logger.silence do Console1984::Base.logger.silence(&block) end end end