class DataFilesController < ApplicationController before_action :get_file, only: [:show, :edit, :update, :destroy, :rate, :addFile, :delFile] def show end def admin raise AccessError unless cuser and cuser.admin? @files = [] DataFile.all.each do |f| @files << f unless File.exists?(f.path) end @movies = [] DataFile.movies.each do |f| @movies << f unless f.movie or f.preview or (f.related and f.related.movie) end end def new @file = DataFile.new @file.directory = Directory.find params[:id] raise AccessError unless @file.can_create? cuser end def edit raise AccessError unless @file.can_update? cuser end def create @file = DataFile.new(DataFile.params(params, cuser)) @file.size = 0 raise AccessError unless @file.can_create? cuser if @file.save flash[:notice] = t(:files_create) if @file.article redirect_to @file.article elsif @file.movie redirect_to @file.movie else redirect_to @file end else render :new end end def update raise AccessError unless @file.can_update? cuser if @file.update_attributes(DataFile.params(params, cuser)) flash[:notice] = t(:files_update) redirect_to(@file) else render :edit end end def addFile raise AccessError unless @file.can_update? cuser @related = @file.directory.files.not(@file).find params[:data_file][:related_id] @related.related = @file @related.save redirect_to edit_data_file_url(@file) end def delFile raise AccessError unless @file.can_update? cuser @related = @file.related_files.first params[:related_id] @related.related = nil @related.save redirect_to edit_data_file_url(@file) end def destroy raise AccessError unless @file.can_destroy? cuser @file.destroy redirect_to directory_path(@file.directory) end def rate raise AccessError unless cuser if params[:id2].to_i > 0 and params[:id2].to_i <= 5 @file.rate_it(params[:id2], cuser.id) end head :ok end def trash raise AccessError unless cuser and cuser.admin? @result = "" DataFile.all.each do |file| unless File.exists?(file.path) file.destroy @result << file.to_s + "
" end end render text: @result, layout: true end private def get_file @file = DataFile.find params[:id] end end