Merge 7649:7673 from trunk.
[rails.git] / app / controllers / changeset_controller.rb
1 # The ChangesetController is the RESTful interface to Changeset objects
2
3 class ChangesetController < ApplicationController
4   require 'xml/libxml'
5
6   before_filter :authorize, :only => [:create, :update, :delete]
7   before_filter :check_write_availability, :only => [:create, :update, :delete]
8   before_filter :check_read_availability, :except => [:create, :update, :delete]
9
10   # Create a changeset from XML.
11   def create
12     if request.put?
13       cs = Changeset.from_xml(request.raw_post, true)
14
15       if cs
16         cs.user_id = @user.id
17         cs.save_with_tags!
18         render :text => cs.id.to_s, :content_type => "text/plain"
19       else
20         render :nothing => true, :status => :bad_request
21       end
22     else
23       render :nothing => true, :status => :method_not_allowed
24     end
25   end
26 end