class VersionsController < ApplicationController # Action permissions for this class as a class variable, exposed # to the public through a class method. @@hubssolib_permissions = HubSsoLib::Permissions.new({ :new => [ :admin, :webmaster, :privileged, :normal ], :create => [ :admin, :webmaster, :privileged, :normal ] }) def VersionsController.hubssolib_permissions @@hubssolib_permissions end cache_sweeper :page_sweeper, :only => [ :create ] before_filter :find_book def show @page = @book.pages.find_by_title(params[:page_title]) @version = @page.versions[params[:version_number].to_i - 1] end def new Book.transaction do @page = @book.find_or_build_page(params[:page_title]) @version = @page.find_or_build_version(params[:version_number]) end @author_name = hubssolib_unique_name end def create Book.transaction do @page = @book.find_or_create_page(params[:page]) version = @page.versions.build(params[:version]) version.author = @book.find_or_create_author(params[:author_name], request.remote_ip) version.save end redirect_to page_url(:page_title => @page) end end