ensl.org/app/controllers/directories_controller.rb

61 lines
1.4 KiB
Ruby

class DirectoriesController < ApplicationController
before_filter :get_directory, :except => [:new, :create]
def show
if @directory.hidden
@files = @directory.files
render :partial => "data_files/list", :layout => true
else
@directories = Directory.ordered.filtered.all :conditions => {:parent_id => 1}
end
end
def new
@directory = Directory.new
@directory.parent = Directory.find params[:id]
raise AccessError unless @directory.can_create? cuser
end
def edit
raise AccessError unless @directory.can_update? cuser
end
def refresh
@directory.process_dir
render :text => t(:directories_update)
end
def create
@directory = Directory.new params[:directory]
raise AccessError unless @directory.can_create? cuser
if @directory.save
flash[:notice] = t(:directories_create)
redirect_to(@directory)
else
render :action => "new"
end
end
def update
raise AccessError unless @directory.can_update? cuser
if @directory.update_attributes(params[:directory])
flash[:notice] = t(:directories_update)
redirect_to @directory
else
render :action => "edit"
end
end
def destroy
raise AccessError unless @directory.can_destroy? cuser
@directory.destroy
redirect_to directories_url
end
private
def get_directory
@directory = Directory.find params[:id]
end
end