diff options
| -rw-r--r-- | app/models/node.rb | 12 | ||||
| -rw-r--r-- | app/views/admin/index.html.erb | 2 | ||||
| -rw-r--r-- | app/views/nodes/index.html.erb | 2 | ||||
| -rw-r--r-- | test/unit/node_test.rb | 4 |
4 files changed, 10 insertions, 10 deletions
diff --git a/app/models/node.rb b/app/models/node.rb index 04d98b5..8b7fe62 100644 --- a/app/models/node.rb +++ b/app/models/node.rb | |||
| @@ -8,7 +8,7 @@ class Node < ActiveRecord::Base | |||
| 8 | belongs_to :draft, :class_name => "Page", :foreign_key => :draft_id | 8 | belongs_to :draft, :class_name => "Page", :foreign_key => :draft_id |
| 9 | has_many :permissions | 9 | has_many :permissions |
| 10 | has_one :event | 10 | has_one :event |
| 11 | belongs_to :user, :foreign_key => :locking_user_id | 11 | belongs_to :lock_owner, :class_name => "User", :foreign_key => :locking_user_id |
| 12 | 12 | ||
| 13 | # Callbacks | 13 | # Callbacks |
| 14 | after_create :initialize_empty_page | 14 | after_create :initialize_empty_page |
| @@ -46,12 +46,12 @@ class Node < ActiveRecord::Base | |||
| 46 | # Instance Methods | 46 | # Instance Methods |
| 47 | 47 | ||
| 48 | def find_or_create_draft current_user | 48 | def find_or_create_draft current_user |
| 49 | if draft && self.user == current_user | 49 | if draft && self.lock_owner == current_user |
| 50 | draft | 50 | draft |
| 51 | elsif draft && self.user.nil? | 51 | elsif draft && self.lock_owner.nil? |
| 52 | lock_for! current_user | 52 | lock_for! current_user |
| 53 | draft | 53 | draft |
| 54 | elsif draft && self.user != current_user | 54 | elsif draft && self.lock_owner != current_user |
| 55 | raise "Page is locked" | 55 | raise "Page is locked" |
| 56 | else | 56 | else |
| 57 | lock_for! current_user | 57 | lock_for! current_user |
| @@ -98,13 +98,13 @@ class Node < ActiveRecord::Base | |||
| 98 | end | 98 | end |
| 99 | 99 | ||
| 100 | def unlock! | 100 | def unlock! |
| 101 | self.user = nil | 101 | self.lock_owner = nil |
| 102 | self.save | 102 | self.save |
| 103 | end | 103 | end |
| 104 | 104 | ||
| 105 | protected | 105 | protected |
| 106 | def lock_for! current_user | 106 | def lock_for! current_user |
| 107 | self.user = current_user | 107 | self.lock_owner = current_user |
| 108 | self.save | 108 | self.save |
| 109 | end | 109 | end |
| 110 | 110 | ||
diff --git a/app/views/admin/index.html.erb b/app/views/admin/index.html.erb index c5bb5de..b40f92a 100644 --- a/app/views/admin/index.html.erb +++ b/app/views/admin/index.html.erb | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | <td><%= draft.id %></td> | 12 | <td><%= draft.id %></td> |
| 13 | <td><%= draft.title %></td> | 13 | <td><%= draft.title %></td> |
| 14 | <td><%= draft.node.unique_name %></td> | 14 | <td><%= draft.node.unique_name %></td> |
| 15 | <td><%= draft.user.login rescue "" %></td> | 15 | <td><%= draft.node.lock_owner.login rescue "" %></td> |
| 16 | <td><%= link_to 'Show', node_path(draft.node) %></td> | 16 | <td><%= link_to 'Show', node_path(draft.node) %></td> |
| 17 | <td><%= link_to "Diff revisions", :controller => :revisions, :action => :diff, :id => draft.node.id %></td> | 17 | <td><%= link_to "Diff revisions", :controller => :revisions, :action => :diff, :id => draft.node.id %></td> |
| 18 | <td><%= link_to "Publish", publish_node_path(draft.node), :method => :put, :confirm => "Do you really want to publish?" %></td> | 18 | <td><%= link_to "Publish", publish_node_path(draft.node), :method => :put, :confirm => "Do you really want to publish?" %></td> |
diff --git a/app/views/nodes/index.html.erb b/app/views/nodes/index.html.erb index 53ddb5b..be63de3 100644 --- a/app/views/nodes/index.html.erb +++ b/app/views/nodes/index.html.erb | |||
| @@ -28,7 +28,7 @@ | |||
| 28 | <%= link_to 'Unlock', unlock_node_path(node), :method => :put, :confirm => "Are you sure you want to unlock?" %> | 28 | <%= link_to 'Unlock', unlock_node_path(node), :method => :put, :confirm => "Are you sure you want to unlock?" %> |
| 29 | </td> | 29 | </td> |
| 30 | <td> | 30 | <td> |
| 31 | <%= node.user.login if node.user %> | 31 | <%= node.lock_owner.login if node.lock_owner %> |
| 32 | </td> | 32 | </td> |
| 33 | <td> | 33 | <td> |
| 34 | <%= node.draft ? node.draft.revision : node.head.revision %> | 34 | <%= node.draft ? node.draft.revision : node.head.revision %> |
diff --git a/test/unit/node_test.rb b/test/unit/node_test.rb index a7405f0..817c6f9 100644 --- a/test/unit/node_test.rb +++ b/test/unit/node_test.rb | |||
| @@ -30,7 +30,7 @@ class NodeTest < ActiveSupport::TestCase | |||
| 30 | assert_not_nil @first_child.draft | 30 | assert_not_nil @first_child.draft |
| 31 | assert_nil @first_child.draft.user | 31 | assert_nil @first_child.draft.user |
| 32 | @first_child.find_or_create_draft @user1 | 32 | @first_child.find_or_create_draft @user1 |
| 33 | assert_equal @user1, @first_child.user | 33 | assert_equal @user1, @first_child.lock_owner |
| 34 | end | 34 | end |
| 35 | 35 | ||
| 36 | def test_unique_path_returns_an_array | 36 | def test_unique_path_returns_an_array |
| @@ -122,7 +122,7 @@ class NodeTest < ActiveSupport::TestCase | |||
| 122 | node.move_to_child_of @root | 122 | node.move_to_child_of @root |
| 123 | node.publish_draft! | 123 | node.publish_draft! |
| 124 | node.find_or_create_draft @user1 | 124 | node.find_or_create_draft @user1 |
| 125 | assert_equal @user1, node.user | 125 | assert_equal @user1, node.lock_owner |
| 126 | assert_raise(RuntimeError) do | 126 | assert_raise(RuntimeError) do |
| 127 | node.find_or_create_draft @user2 | 127 | node.find_or_create_draft @user2 |
| 128 | end | 128 | end |
