project path & code regexp validation

This commit is contained in:
gitlabhq 2011-10-15 19:30:56 +03:00
parent 29158ea38c
commit 57baa49bc3
5 changed files with 9 additions and 10 deletions

View file

@ -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 @@ class Project < ActiveRecord::Base
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)

View file

@ -1,5 +1,5 @@
if defined?(Footnotes) && Rails.env.development?
Footnotes.run! # first of all
#Footnotes.run! # first of all
# ... other init code
end

View file

@ -32,7 +32,7 @@ Gitlab::Application.routes.draw do
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 => /.*/
}

View file

@ -88,7 +88,7 @@ describe "Admin::Projects" do
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

View file

@ -39,7 +39,7 @@ describe "Projects" do
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