Skip to content

Commit

Permalink
Allowed to create a trigger for all server at the same time. Removed …
Browse files Browse the repository at this point in the history
…data replication.
  • Loading branch information
fbocolowski committed Apr 13, 2019
1 parent 6ceca3a commit f3f09d4
Show file tree
Hide file tree
Showing 10 changed files with 76 additions and 22 deletions.
21 changes: 21 additions & 0 deletions app/controllers/password_reset_controller.rb
@@ -0,0 +1,21 @@
class PasswordResetController < ApplicationController
before_action :security_public

def show
end

def create
user = User.where(username: params[:username]).first rescue nil
if !user.nil? && user.servers.where(token: params[:token]).present?
if params[:new_password] == params[:confirm_password]
user.update(password: params[:new_password])
start_session(user.id) and return
else
@alert = t(:passwords_do_not_match)
end
else
@alert = t(:username_token_not_found)
end
render 'show'
end
end
9 changes: 8 additions & 1 deletion app/controllers/triggers_controller.rb
Expand Up @@ -13,7 +13,14 @@ def new

def create
@trigger = @server.triggers.new(trigger_params)
if @trigger.save
if @trigger.validate
if params[:create_for_all]
@session.user.servers.each do |server|
server.triggers.create(trigger_params)
end
else
@trigger.save
end
redirect_to server_triggers_path(@server)
else
@alert = @trigger.errors.full_messages.first
Expand Down
6 changes: 0 additions & 6 deletions app/models/report.rb
Expand Up @@ -16,14 +16,8 @@ class Report
field :token, type: String
field :username, type: String

before_create :replicate_data
after_create :update_server

def replicate_data
self.token = self.server.token
self.username = self.server.user.username
end

def update_server
if self.server.first_report.nil?
self.server.first_report = self.created_at
Expand Down
7 changes: 1 addition & 6 deletions app/models/server.rb
Expand Up @@ -8,7 +8,6 @@ class Server

field :token, type: String

field :username, type: String
field :first_report, type: Time
field :last_report, type: Time
field :ip, type: String
Expand All @@ -18,7 +17,7 @@ class Server
field :ram_usage, type: Integer
field :disk_usage, type: Integer

before_create :generate_token, :replicate_data
before_create :generate_token

def last_report_minutes
begin
Expand Down Expand Up @@ -74,8 +73,4 @@ def generate_token
break random if Server.where(token: random).count == 0
end
end

def replicate_data
self.username = self.user.username
end
end
8 changes: 1 addition & 7 deletions app/models/session.rb
Expand Up @@ -9,9 +9,7 @@ class Session
field :user_agent, type: String
field :active, type: Boolean, default: true

field :username, type: String

before_create :generate_token, :replicate_data
before_create :generate_token

private

Expand All @@ -21,8 +19,4 @@ def generate_token
break random if Server.where(token: random).count == 0
end
end

def replicate_data
self.username = self.user.username
end
end
2 changes: 2 additions & 0 deletions app/models/trigger.rb
Expand Up @@ -18,6 +18,8 @@ class Trigger
validates :action, presence: true, inclusion: {in: ACTIONS}
validates :url, presence: true

validates_uniqueness_of :server, scope: [:event, :criteria, :action, :url]

def name
self.event.gsub('N', self.criteria.to_s)
end
Expand Down
29 changes: 29 additions & 0 deletions app/views/triggers/edit.html.erb
@@ -0,0 +1,29 @@
<div class="container">
<div class="row">
<div class="col-xl-4"></div>
<div class="col-xl-4">
<h4><%= @server.hostname %> / <%= t(:new_trigger) %></h4>
<%= form_for @trigger, url: server_trigger_path(@server, @trigger) do |f| %>
<div class="form-group">
<label><%= t(:event) %></label>
<%= f.select(:event, options_for_select(Trigger::EVENTS, selected: @trigger.event), {}, class: "form-control") %>
</div>
<div class="form-group">
<label><%= t(:criteria) %></label>
<%= f.number_field(:criteria, class: "form-control") %>
</div>
<div class="form-group">
<label><%= t(:action) %></label>
<%= f.select(:action, options_for_select(Trigger::ACTIONS, selected: @trigger.action), {}, class: "form-control") %>
</div>
<div class="form-group">
<label><%= t(:url) %></label>
<%= f.text_field(:url, class: "form-control") %>
</div>
<div>
<%= f.submit(t(:submit), class: "btn btn-sm btn-primary") %>
</div>
<% end %>
</div>
</div>
</div>
12 changes: 10 additions & 2 deletions app/views/triggers/new.html.erb
Expand Up @@ -6,20 +6,28 @@
<%= form_for @trigger, url: server_triggers_path(@server) do |f| %>
<div class="form-group">
<label><%= t(:event) %></label>
<%= f.select(:event, options_for_select(Trigger::EVENTS), {}, class: "form-control") %>
<%= f.select(:event, options_for_select(Trigger::EVENTS, selected: @trigger.event), {}, class: "form-control") %>
</div>
<div class="form-group">
<label><%= t(:criteria) %></label>
<%= f.number_field(:criteria, class: "form-control") %>
</div>
<div class="form-group">
<label><%= t(:action) %></label>
<%= f.select(:action, options_for_select(Trigger::ACTIONS), {}, class: "form-control") %>
<%= f.select(:action, options_for_select(Trigger::ACTIONS, selected: @trigger.action), {}, class: "form-control") %>
</div>
<div class="form-group">
<label><%= t(:url) %></label>
<%= f.text_field(:url, class: "form-control") %>
</div>
<div class="form-group">
<label>
<%= check_box_tag(:create_for_all) %>
<%= t(:create_for_all) %>
</label>
</div>
<div>
</div>
<div>
<%= f.submit(t(:submit), class: "btn btn-sm btn-primary") %>
</div>
Expand Down
1 change: 1 addition & 0 deletions config/locales/en.yml
Expand Up @@ -94,6 +94,7 @@ en:
criteria: "Criteria (N)"
url: "URL"
send_test: "Send test"
create_for_all: "Create for all servers"

# Alerts
changes_saved: "Changes saved"
Expand Down
3 changes: 3 additions & 0 deletions migrations/20190412230612_disable_data_replication.js
@@ -0,0 +1,3 @@
db.sessions.updateMany({}, {$unset: {username: 1}})
db.servers.updateMany({}, {$unset: {username: 1}})
db.reports.updateMany({}, {$unset: {username: 1, token: 1}})

0 comments on commit f3f09d4

Please sign in to comment.