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