Class: Console1984::SessionsLogger::Database

Inherits:
Object
  • Object
show all
Defined in:
lib/console1984/sessions_logger/database.rb

Overview

A session logger that saves audit trails in the database.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#current_sensitive_accessObject (readonly)

Returns the value of attribute current_sensitive_access.



3
4
5
# File 'lib/console1984/sessions_logger/database.rb', line 3

def current_sensitive_access
  @current_sensitive_access
end

#current_sessionObject (readonly)

Returns the value of attribute current_session.



3
4
5
# File 'lib/console1984/sessions_logger/database.rb', line 3

def current_session
  @current_session
end

Instance Method Details

#after_executing(statements) ⇒ Object



34
35
# File 'lib/console1984/sessions_logger/database.rb', line 34

def after_executing(statements)
end

#before_executing(statements) ⇒ Object



27
28
29
30
31
32
# File 'lib/console1984/sessions_logger/database.rb', line 27

def before_executing(statements)
  silence_logging do
    @before_commands_count = @current_session.commands.count
    record_statements statements
  end
end

#end_sensitive_accessObject



23
24
25
# File 'lib/console1984/sessions_logger/database.rb', line 23

def end_sensitive_access
  @current_sensitive_access = nil
end

#finish_sessionObject



12
13
14
15
# File 'lib/console1984/sessions_logger/database.rb', line 12

def finish_session
  @current_session = nil
  @current_sensitive_access = nil
end

#start_sensitive_access(justification) ⇒ Object



17
18
19
20
21
# File 'lib/console1984/sessions_logger/database.rb', line 17

def start_sensitive_access(justification)
  silence_logging do
    @current_sensitive_access = current_session.sensitive_accesses.create! justification: justification
  end
end

#start_session(username, reason) ⇒ Object



5
6
7
8
9
10
# File 'lib/console1984/sessions_logger/database.rb', line 5

def start_session(username, reason)
  silence_logging do
    user = Console1984::User.create_or_find_by!(username: username)
    @current_session = user.sessions.create! reason: reason
  end
end

#suspicious_commands_attempted(statements) ⇒ Object



37
38
39
40
41
42
# File 'lib/console1984/sessions_logger/database.rb', line 37

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