Read about our upcoming Code of Conduct on this issue

Commit 57baa49b authored by gitlabhq's avatar gitlabhq
Browse files

project path & code regexp validation

parent fd6bb2026f65
......@@ -16,6 +16,8 @@ class Project < ActiveRecord::Base
validates :path,
:uniqueness => true,
:presence => true,
:format => { :with => /^[a-zA-Z0-9_\-]*$/,
:message => "only letters, digits & '_' '-' allowed" },
:length => { :within => 0..255 }
validates :description,
......@@ -24,14 +26,15 @@ class Project < ActiveRecord::Base
validates :code,
:presence => true,
:uniqueness => true,
:length => { :within => 3..12 }
:format => { :with => /^[a-zA-Z0-9_\-]*$/,
:message => "only letters, digits & '_' '-' allowed" },
:length => { :within => 3..16 }
validates :owner,
:presence => true
validate :check_limit
before_save :format_code
after_destroy :destroy_gitosis_project
after_save :update_gitosis_project
......@@ -47,10 +50,6 @@ def common_notes
notes.where(:noteable_type => ["", nil])
end
def format_code
read_attribute(:code).downcase.strip.gsub(' ', '')
end
def update_gitosis_project
Gitosis.new.configure do |c|
c.update_project(path, gitosis_writers)
......
if defined?(Footnotes) && Rails.env.development?
Footnotes.run! # first of all
#Footnotes.run! # first of all
# ... other init code
end
......@@ -32,7 +32,7 @@
get "tree/:commit_id/:path" => "projects#tree",
:as => :tree_file,
:constraints => {
:id => /[a-zA-Z0-9]+/,
:id => /[a-zA-Z0-9_\-]+/,
:commit_id => /[a-zA-Z0-9]+/,
:path => /.*/
}
......
......@@ -88,7 +88,7 @@
visit new_admin_project_path
fill_in 'Name', :with => 'NewProject'
fill_in 'Code', :with => 'NPR'
fill_in 'Path', :with => '/tmp/legit_test/legit'
fill_in 'Path', :with => 'legit_1'
expect { click_button "Save" }.to change { Project.count }.by(1)
@project = Project.last
end
......
......@@ -39,7 +39,7 @@
visit new_project_path
fill_in 'Name', :with => 'NewProject'
fill_in 'Code', :with => 'NPR'
fill_in 'Path', :with => '/tmp/legit_test/legit'
fill_in 'Path', :with => 'newproject'
expect { click_button "Create Project" }.to change { Project.count }.by(1)
@project = Project.last
end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment