project path & code regexp validation
This commit is contained in:
parent
29158ea38c
commit
57baa49bc3
5 changed files with 9 additions and 10 deletions
|
@ -16,6 +16,8 @@ class Project < ActiveRecord::Base
|
||||||
validates :path,
|
validates :path,
|
||||||
:uniqueness => true,
|
:uniqueness => true,
|
||||||
:presence => true,
|
:presence => true,
|
||||||
|
:format => { :with => /^[a-zA-Z0-9_\-]*$/,
|
||||||
|
:message => "only letters, digits & '_' '-' allowed" },
|
||||||
:length => { :within => 0..255 }
|
:length => { :within => 0..255 }
|
||||||
|
|
||||||
validates :description,
|
validates :description,
|
||||||
|
@ -24,14 +26,15 @@ class Project < ActiveRecord::Base
|
||||||
validates :code,
|
validates :code,
|
||||||
:presence => true,
|
:presence => true,
|
||||||
:uniqueness => true,
|
:uniqueness => true,
|
||||||
:length => { :within => 3..12 }
|
:format => { :with => /^[a-zA-Z0-9_\-]*$/,
|
||||||
|
:message => "only letters, digits & '_' '-' allowed" },
|
||||||
|
:length => { :within => 3..16 }
|
||||||
|
|
||||||
validates :owner,
|
validates :owner,
|
||||||
:presence => true
|
:presence => true
|
||||||
|
|
||||||
validate :check_limit
|
validate :check_limit
|
||||||
|
|
||||||
before_save :format_code
|
|
||||||
after_destroy :destroy_gitosis_project
|
after_destroy :destroy_gitosis_project
|
||||||
after_save :update_gitosis_project
|
after_save :update_gitosis_project
|
||||||
|
|
||||||
|
@ -47,10 +50,6 @@ class Project < ActiveRecord::Base
|
||||||
notes.where(:noteable_type => ["", nil])
|
notes.where(:noteable_type => ["", nil])
|
||||||
end
|
end
|
||||||
|
|
||||||
def format_code
|
|
||||||
read_attribute(:code).downcase.strip.gsub(' ', '')
|
|
||||||
end
|
|
||||||
|
|
||||||
def update_gitosis_project
|
def update_gitosis_project
|
||||||
Gitosis.new.configure do |c|
|
Gitosis.new.configure do |c|
|
||||||
c.update_project(path, gitosis_writers)
|
c.update_project(path, gitosis_writers)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
if defined?(Footnotes) && Rails.env.development?
|
if defined?(Footnotes) && Rails.env.development?
|
||||||
Footnotes.run! # first of all
|
#Footnotes.run! # first of all
|
||||||
|
|
||||||
# ... other init code
|
# ... other init code
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,7 +32,7 @@ Gitlab::Application.routes.draw do
|
||||||
get "tree/:commit_id/:path" => "projects#tree",
|
get "tree/:commit_id/:path" => "projects#tree",
|
||||||
:as => :tree_file,
|
:as => :tree_file,
|
||||||
:constraints => {
|
:constraints => {
|
||||||
:id => /[a-zA-Z0-9]+/,
|
:id => /[a-zA-Z0-9_\-]+/,
|
||||||
:commit_id => /[a-zA-Z0-9]+/,
|
:commit_id => /[a-zA-Z0-9]+/,
|
||||||
:path => /.*/
|
:path => /.*/
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ describe "Admin::Projects" do
|
||||||
visit new_admin_project_path
|
visit new_admin_project_path
|
||||||
fill_in 'Name', :with => 'NewProject'
|
fill_in 'Name', :with => 'NewProject'
|
||||||
fill_in 'Code', :with => 'NPR'
|
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)
|
expect { click_button "Save" }.to change { Project.count }.by(1)
|
||||||
@project = Project.last
|
@project = Project.last
|
||||||
end
|
end
|
||||||
|
|
|
@ -39,7 +39,7 @@ describe "Projects" do
|
||||||
visit new_project_path
|
visit new_project_path
|
||||||
fill_in 'Name', :with => 'NewProject'
|
fill_in 'Name', :with => 'NewProject'
|
||||||
fill_in 'Code', :with => 'NPR'
|
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)
|
expect { click_button "Create Project" }.to change { Project.count }.by(1)
|
||||||
@project = Project.last
|
@project = Project.last
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue