Safe attributes for repositories.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9876 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
3b854bee59
commit
585d08765e
|
@ -47,7 +47,8 @@ class RepositoriesController < ApplicationController
|
|||
|
||||
def create
|
||||
attrs = pickup_extra_info
|
||||
@repository = Repository.factory(params[:repository_scm], attrs[:attrs])
|
||||
@repository = Repository.factory(params[:repository_scm])
|
||||
@repository.safe_attributes = params[:repository]
|
||||
if attrs[:attrs_extra].keys.any?
|
||||
@repository.merge_extra_info(attrs[:attrs_extra])
|
||||
end
|
||||
|
@ -64,7 +65,7 @@ class RepositoriesController < ApplicationController
|
|||
|
||||
def update
|
||||
attrs = pickup_extra_info
|
||||
@repository.attributes = attrs[:attrs]
|
||||
@repository.safe_attributes = attrs[:attrs]
|
||||
if attrs[:attrs_extra].keys.any?
|
||||
@repository.merge_extra_info(attrs[:attrs_extra])
|
||||
end
|
||||
|
|
|
@ -19,6 +19,7 @@ class ScmFetchError < Exception; end
|
|||
|
||||
class Repository < ActiveRecord::Base
|
||||
include Redmine::Ciphering
|
||||
include Redmine::SafeAttributes
|
||||
|
||||
belongs_to :project
|
||||
has_many :changesets, :order => "#{Changeset.table_name}.committed_on DESC, #{Changeset.table_name}.id DESC"
|
||||
|
@ -42,6 +43,14 @@ class Repository < ActiveRecord::Base
|
|||
# Checks if the SCM is enabled when creating a repository
|
||||
validate :repo_create_validation, :on => :create
|
||||
|
||||
safe_attributes 'identifier',
|
||||
'url',
|
||||
'login',
|
||||
'password',
|
||||
'path_encoding',
|
||||
'log_encoding',
|
||||
'is_default'
|
||||
|
||||
def repo_create_validation
|
||||
unless Setting.enabled_scm.include?(self.class.name.demodulize)
|
||||
errors.add(:type, :invalid)
|
||||
|
|
|
@ -21,6 +21,8 @@ require 'digest/sha1'
|
|||
class Repository::Cvs < Repository
|
||||
validates_presence_of :url, :root_url, :log_encoding
|
||||
|
||||
safe_attributes 'root_url'
|
||||
|
||||
def self.human_attribute_name(attribute_key_name, *args)
|
||||
attr_name = attribute_key_name.to_s
|
||||
if attr_name == "root_url"
|
||||
|
|
|
@ -31,7 +31,11 @@ module Redmine
|
|||
def safe_attributes(*args)
|
||||
@safe_attributes ||= []
|
||||
if args.empty?
|
||||
if superclass.include?(Redmine::SafeAttributes)
|
||||
@safe_attributes + superclass.safe_attributes
|
||||
else
|
||||
@safe_attributes
|
||||
end
|
||||
else
|
||||
options = args.last.is_a?(Hash) ? args.pop : {}
|
||||
@safe_attributes << [args, options]
|
||||
|
|
Loading…
Reference in New Issue