close #411 segments should not be allowed where node_a == node_b
This commit is contained in:
parent
c91b86a1d1
commit
15d3958627
2 changed files with 28 additions and 2 deletions
|
@ -14,9 +14,14 @@ class SegmentController < ApplicationController
|
||||||
|
|
||||||
segment.from_node = Node.find(segment.node_a.to_i)
|
segment.from_node = Node.find(segment.node_a.to_i)
|
||||||
segment.to_node = Node.find(segment.node_b.to_i)
|
segment.to_node = Node.find(segment.node_b.to_i)
|
||||||
|
|
||||||
|
if segment.from_node == segment.to_node
|
||||||
|
render :nothing => true, :status => HTTP_EXPECTATION_FAILED
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
unless segment.preconditions_ok? # are the nodes visible?
|
unless segment.preconditions_ok? # are the nodes visible?
|
||||||
render :nothing => true, :status => 412
|
render :nothing => true, :status => HTTP_PRECONDITION_FAILED
|
||||||
end
|
end
|
||||||
|
|
||||||
if segment.save_with_history
|
if segment.save_with_history
|
||||||
|
@ -65,13 +70,19 @@ class SegmentController < ApplicationController
|
||||||
segment.timestamp = Time.now
|
segment.timestamp = Time.now
|
||||||
segment.user_id = @user.id
|
segment.user_id = @user.id
|
||||||
|
|
||||||
|
if new_segment.node_a == new_segment.node_b
|
||||||
|
render :nothing => true, :status => HTTP_EXPECTATION_FAILED
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
segment.node_a = new_segment.node_a
|
segment.node_a = new_segment.node_a
|
||||||
segment.node_b = new_segment.node_b
|
segment.node_b = new_segment.node_b
|
||||||
|
|
||||||
segment.tags = new_segment.tags
|
segment.tags = new_segment.tags
|
||||||
segment.visible = new_segment.visible
|
segment.visible = new_segment.visible
|
||||||
|
|
||||||
if segment.id == new_segment.id and segment.save_with_history
|
if segment.id == new_segment.id and segment.save_with_history
|
||||||
render :nothing => true, :status => 200
|
render :nothing => true, :status => HTTP_OK
|
||||||
else
|
else
|
||||||
render :nothing => true, :status => 500
|
render :nothing => true, :status => 500
|
||||||
end
|
end
|
||||||
|
|
|
@ -61,3 +61,18 @@ ActionMailer::Base.server_settings = {
|
||||||
:port => 25,
|
:port => 25,
|
||||||
:domain => 'localhost',
|
:domain => 'localhost',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# HTTP CODES
|
||||||
|
|
||||||
|
# 200's
|
||||||
|
|
||||||
|
HTTP_OK = 200
|
||||||
|
|
||||||
|
# 400's
|
||||||
|
|
||||||
|
HTTP_PRECONDITION_FAILED = 412
|
||||||
|
HTTP_EXPECTATION_FAILED = 417
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue