Added mac logs, improved mac editing/viewing
This commit is contained in:
parent
04764af983
commit
f3498ddcac
3
app/assets/javascripts/mac_logs.js.coffee
Normal file
3
app/assets/javascripts/mac_logs.js.coffee
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Place all the behaviors and hooks related to the matching controller here.
|
||||||
|
# All this logic will automatically be available in application.js.
|
||||||
|
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
|
3
app/assets/stylesheets/mac_logs.css.scss
Normal file
3
app/assets/stylesheets/mac_logs.css.scss
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
// Place all the styles related to the MacLogs controller here.
|
||||||
|
// They will automatically be included in application.css.
|
||||||
|
// You can use Sass (SCSS) here: http://sass-lang.com/
|
7
app/controllers/mac_logs_controller.rb
Normal file
7
app/controllers/mac_logs_controller.rb
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
class MacLogsController < ApplicationController
|
||||||
|
|
||||||
|
def index
|
||||||
|
@mac_logs = MacLog.desc.limit(1000)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -8,7 +8,8 @@ def index
|
||||||
@active_macs = Mac.where(:active => true, :hidden => false)
|
@active_macs = Mac.where(:active => true, :hidden => false)
|
||||||
@active_macs += Mac.where(:active => true, :hidden => nil)
|
@active_macs += Mac.where(:active => true, :hidden => nil)
|
||||||
@hidden_macs = Mac.where(:active => true, :hidden => true)
|
@hidden_macs = Mac.where(:active => true, :hidden => true)
|
||||||
@inactive_macs = Mac.where(:active => false)
|
|
||||||
|
@all_macs = Mac.find(:all, :order => "LOWER(mac)")
|
||||||
end
|
end
|
||||||
|
|
||||||
# GET /macs/1
|
# GET /macs/1
|
||||||
|
@ -45,8 +46,7 @@ end
|
||||||
def create
|
def create
|
||||||
@mac = Mac.new(params[:mac])
|
@mac = Mac.new(params[:mac])
|
||||||
@mac.user_id = params[:user_id]
|
@mac.user_id = params[:user_id]
|
||||||
|
@users = User.all.sort_by(&:name)
|
||||||
Rails.logger.info @macs.inspect
|
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @mac.save
|
if @mac.save
|
||||||
|
@ -64,11 +64,11 @@ end
|
||||||
def update
|
def update
|
||||||
#Log who updated this
|
#Log who updated this
|
||||||
@mac = Mac.find(params[:id])
|
@mac = Mac.find(params[:id])
|
||||||
|
@users = User.all.sort_by(&:name)
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @mac.update_attributes(params[:mac])
|
if @mac.update_attributes(params[:mac])
|
||||||
Rails.logger.info @mac.inspect
|
format.html { redirect_to macs_path, :notice => 'Mac was successfully updated.' }
|
||||||
format.html { redirect_to macs_path, :notice => 'User certification was successfully updated.' }
|
|
||||||
format.json { head :no_content }
|
format.json { head :no_content }
|
||||||
else
|
else
|
||||||
format.html { render :action => "edit" }
|
format.html { render :action => "edit" }
|
||||||
|
@ -153,8 +153,7 @@ Rails.logger.info "starting scan..."
|
||||||
|
|
||||||
# Scan the existing macs and update each record as necessary
|
# Scan the existing macs and update each record as necessary
|
||||||
Mac.find(:all).each { |entry|
|
Mac.find(:all).each { |entry|
|
||||||
Rails.logger.info "Existing MAC: "+entry.inspect
|
mac = entry.mac.downcase
|
||||||
mac = entry.mac
|
|
||||||
ip = entry.ip
|
ip = entry.ip
|
||||||
if macs.has_key?(mac)
|
if macs.has_key?(mac)
|
||||||
if ! entry.active || ! entry.since
|
if ! entry.active || ! entry.since
|
||||||
|
@ -185,7 +184,7 @@ Rails.logger.info "starting scan..."
|
||||||
macs.each { |mac, ip|
|
macs.each { |mac, ip|
|
||||||
Rails.logger.info "Activating new entry #{mac} at #{ip}" if options[:verbose]
|
Rails.logger.info "Activating new entry #{mac} at #{ip}" if options[:verbose]
|
||||||
Mac.new(:mac => mac, :ip => ip, :active => 1, :since => Time.now, :refreshed => Time.now).save
|
Mac.new(:mac => mac, :ip => ip, :active => 1, :since => Time.now, :refreshed => Time.now).save
|
||||||
MacLog.new(:mac => mac, :ip => ip, :action => "activate").save
|
Rails.logger.info MacLog.new(:mac => mac, :ip => ip, :action => "activate").save
|
||||||
}
|
}
|
||||||
|
|
||||||
@log = MacLog.all
|
@log = MacLog.all
|
||||||
|
@ -193,4 +192,19 @@ Rails.logger.info "starting scan..."
|
||||||
end #def scan
|
end #def scan
|
||||||
|
|
||||||
|
|
||||||
|
def import
|
||||||
|
|
||||||
|
require 'csv'
|
||||||
|
|
||||||
|
csv_text = File.read('mac_log.csv')
|
||||||
|
csv = CSV.parse(csv_text)
|
||||||
|
|
||||||
|
@output = []
|
||||||
|
|
||||||
|
csv.each do |row|
|
||||||
|
@output += [row[1], Mac.create({:mac => row[0], :note => row[1], :hidden => row[2]}) ]
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
2
app/helpers/mac_logs_helper.rb
Normal file
2
app/helpers/mac_logs_helper.rb
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
module MacLogsHelper
|
||||||
|
end
|
|
@ -1,4 +1,6 @@
|
||||||
class Mac < ActiveRecord::Base
|
class Mac < ActiveRecord::Base
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
attr_accessible :active, :ip, :mac, :refreshed, :since, :hidden, :note, :user_id
|
attr_accessible :active, :ip, :mac, :refreshed, :since, :hidden, :note, :user_id
|
||||||
|
|
||||||
|
validates_uniqueness_of :mac, :case_sensitive => false
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
class MacLog < ActiveRecord::Base
|
class MacLog < ActiveRecord::Base
|
||||||
attr_accessible :action, :ip, :mac
|
attr_accessible :action, :ip, :mac
|
||||||
|
|
||||||
|
scope :desc, order("mac_logs.created_at DESC")
|
||||||
end
|
end
|
||||||
|
|
10
app/views/mac_logs/index.html.erb
Normal file
10
app/views/mac_logs/index.html.erb
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<table>
|
||||||
|
<% @mac_logs.each do |mac_log| %>
|
||||||
|
<tr>
|
||||||
|
<td><%= mac_log.mac %></td>
|
||||||
|
<td><%= mac_log.ip %></td>
|
||||||
|
<td><%= mac_log.action %></td>
|
||||||
|
<td><%= mac_log.created_at %></td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</table>
|
1
app/views/macs/import.html.erb
Normal file
1
app/views/macs/import.html.erb
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<%= @output %>
|
|
@ -1,29 +1,42 @@
|
||||||
<h2>What machines are on our network?</h2>
|
<h2>What machines are on our network?</h2>
|
||||||
|
<%= link_to "New Mac", new_mac_path %>
|
||||||
|
|
||||||
|
<ul>
|
||||||
<% @active_macs.each do |mac| %>
|
<% @active_macs.each do |mac| %>
|
||||||
|
<li>
|
||||||
<%= mac.user.name unless mac.user.blank? %>
|
<%= mac.user.name unless mac.user.blank? %>
|
||||||
<%= mac.mac if mac.user.blank? %> <!--
|
<%= mac.mac if mac.user.blank? && mac.note.blank? %>
|
||||||
<%= mac.since %>,
|
<%= mac.note if mac.user.blank? %> -
|
||||||
<%= mac.refreshed %>,
|
<%= ((Time.now - mac.since) / 1.hour).round(1).to_s+" hours" %> |
|
||||||
<%= mac.active %>--> |
|
|
||||||
<%= link_to 'Edit', edit_mac_path(mac) %> <br/>
|
<%= link_to 'Edit', edit_mac_path(mac) %> <br/>
|
||||||
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<hr>
|
</ul>
|
||||||
|
|
||||||
|
<ul style="display: none;">
|
||||||
<% @hidden_macs.each do |mac| %>
|
<% @hidden_macs.each do |mac| %>
|
||||||
|
<li>
|
||||||
|
<%= mac.user.name unless mac.user.blank? %>
|
||||||
|
<%= mac.mac if mac.user.blank? && mac.note.blank? %>
|
||||||
|
<%= mac.note if mac.user.blank? %> -
|
||||||
|
<%= ((Time.now - mac.since) / 1.hour).round(1).to_s+" hours" %> |
|
||||||
|
<%= link_to 'Edit', edit_mac_path(mac) %> <br/>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<% @all_macs.each do |mac| %>
|
||||||
|
<%= '<span class="hidden">' if mac.hidden? %>
|
||||||
|
<%= mac.mac.downcase %>
|
||||||
|
(<%= mac.note %>)
|
||||||
<%= mac.user.name unless mac.user.blank? %>
|
<%= mac.user.name unless mac.user.blank? %>
|
||||||
<%= mac.mac if mac.user.blank? %>
|
|
||||||
(<%= mac.note %>) <!--
|
|
||||||
<%= mac.since %>,
|
<%= mac.since %>,
|
||||||
<%= mac.refreshed %>,
|
<%= mac.refreshed %>,
|
||||||
<%= mac.active %>--> |
|
<%= mac.active %> |
|
||||||
<%= link_to 'Edit', edit_mac_path(mac) %> <br/>
|
|
||||||
<% end %>
|
|
||||||
<hr>
|
|
||||||
<% @inactive_macs.each do |mac| %>
|
|
||||||
<%= mac.user.name unless mac.user.blank? %>
|
|
||||||
<%= mac.mac if mac.user.blank? %>
|
|
||||||
(<%= mac.note %>) <!--
|
|
||||||
<%= mac.since %>,
|
|
||||||
<%= mac.refreshed %>,
|
|
||||||
<%= mac.active %>--> |
|
|
||||||
<%= link_to 'Edit', edit_mac_path(mac) %> <br/>
|
<%= link_to 'Edit', edit_mac_path(mac) %> <br/>
|
||||||
|
<%= '</span>' if mac.hidden? %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,4 +22,4 @@ production:
|
||||||
adapter: sqlite3
|
adapter: sqlite3
|
||||||
database: db/production.sqlite3
|
database: db/production.sqlite3
|
||||||
pool: 5
|
pool: 5
|
||||||
timeout: 5000
|
timeout: 300000
|
||||||
|
|
|
@ -28,8 +28,11 @@ Dooraccess::Application.routes.draw do
|
||||||
match 'door_logs/auto_download' => 'door_logs#auto_download', :as => :auto_download
|
match 'door_logs/auto_download' => 'door_logs#auto_download', :as => :auto_download
|
||||||
|
|
||||||
match 'macs/scan' => 'macs#scan'
|
match 'macs/scan' => 'macs#scan'
|
||||||
|
match 'macs/import' => 'macs#import'
|
||||||
resources :macs
|
resources :macs
|
||||||
|
|
||||||
|
resources :mac_logs
|
||||||
|
|
||||||
root :to => "home#index"
|
root :to => "home#index"
|
||||||
|
|
||||||
# The priority is based upon order of creation:
|
# The priority is based upon order of creation:
|
||||||
|
|
7
test/functional/mac_logs_controller_test.rb
Normal file
7
test/functional/mac_logs_controller_test.rb
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class MacLogsControllerTest < ActionController::TestCase
|
||||||
|
# test "the truth" do
|
||||||
|
# assert true
|
||||||
|
# end
|
||||||
|
end
|
4
test/unit/helpers/mac_logs_helper_test.rb
Normal file
4
test/unit/helpers/mac_logs_helper_test.rb
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class MacLogsHelperTest < ActionView::TestCase
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user