diff --git a/app/controllers/dmsf_controller.rb b/app/controllers/dmsf_controller.rb index 672db76a..4c04be2b 100644 --- a/app/controllers/dmsf_controller.rb +++ b/app/controllers/dmsf_controller.rb @@ -247,7 +247,11 @@ class DmsfController < ApplicationController end def create - @folder = DmsfFolder.new(params[:dmsf_folder]) + if (Redmine::VERSION::MAJOR >= 3) + @folder = DmsfFolder.new(folder_params) + else + @folder = DmsfFolder.new(params[:dmsf_folder]) + end @folder.project = @project @folder.user = User.current if @folder.save @@ -405,8 +409,8 @@ class DmsfController < ApplicationController else audit = DmsfFileRevisionAccess.new(:user_id => User.current.id, :dmsf_file_revision_id => f.last_revision.id, :action => DmsfFileRevisionAccess::EmailAction) - end - audit.save! + end + audit.save! end @email_params = { @@ -437,7 +441,7 @@ class DmsfController < ApplicationController else audit = DmsfFileRevisionAccess.new(:user_id => User.current.id, :dmsf_file_revision_id => f.last_revision.id, :action => DmsfFileRevisionAccess::DownloadAction) - end + end audit.save! end @@ -587,4 +591,9 @@ class DmsfController < ApplicationController copy end + private + def folder_params + params.require(:dmsf_folder).permit(:title, :description, :dmsf_folder_id) + end + end diff --git a/app/models/dmsf_folder.rb b/app/models/dmsf_folder.rb index 2162e2c9..d917e253 100644 --- a/app/models/dmsf_folder.rb +++ b/app/models/dmsf_folder.rb @@ -20,6 +20,8 @@ class DmsfFolder < ActiveRecord::Base unloadable + attr_accessible :title, :description, :dmsf_folder_id + include RedmineDmsf::Lockable cattr_reader :invalid_characters @@ -34,8 +36,6 @@ class DmsfFolder < ActiveRecord::Base :dependent => :destroy has_many :files, :class_name => 'DmsfFile', :foreign_key => 'dmsf_folder_id', :dependent => :destroy - - if (Redmine::VERSION::MAJOR >= 3) has_many :folder_links, -> { where target_type: DmsfFolder.model_name }, :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :dependent => :destroy @@ -47,6 +47,7 @@ class DmsfFolder < ActiveRecord::Base :class_name => 'DmsfLink', :foreign_key => 'target_id', :dependent => :destroy has_many :locks, -> { where(entity_type: 1).order("#{DmsfLock.table_name}.updated_at DESC") }, :class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy + accepts_nested_attributes_for :user, :project, :folder, :subfolders, :files, :folder_links, :file_links, :url_links, :referenced_links, :locks else has_many :folder_links, :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :conditions => {:target_type => DmsfFolder.model_name}, :dependent => :destroy