summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValera Sizov <vsv2711@gmail.com>2011-10-09 04:05:31 -0700
committerValera Sizov <vsv2711@gmail.com>2011-10-09 04:05:31 -0700
commit0cc6c7a33b132ca256936e30121e0284b99f1449 (patch)
tree6be90258006411d395b8bf5a7bad3817fa9dd9f7
parent9aeb9ec59d4a2e5c05929ab465ed4a3eab148c0a (diff)
downloadgitlab-ce-0cc6c7a33b132ca256936e30121e0284b99f1449.tar.gz
Issue #82 - Add owner to project
-rw-r--r--app/controllers/projects_controller.rb1
-rw-r--r--app/models/project.rb5
-rw-r--r--app/models/user.rb2
-rw-r--r--db/migrate/20111009101738_add_ownerto_project.rb5
-rw-r--r--db/schema.rb3
-rw-r--r--spec/models/project_spec.rb1
-rw-r--r--spec/models/user_spec.rb1
7 files changed, 15 insertions, 3 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 06f97f57c51..3307ac23d9b 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -87,6 +87,7 @@ class ProjectsController < ApplicationController
def create
@project = Project.new(params[:project])
+ @project.owner = current_user
Project.transaction do
@project.save!
diff --git a/app/models/project.rb b/app/models/project.rb
index 4d9461a1152..48c288eb015 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -4,6 +4,7 @@ class Project < ActiveRecord::Base
has_many :issues, :dependent => :destroy
has_many :users_projects, :dependent => :destroy
has_many :users, :through => :users_projects
+ belongs_to :owner, :class_name => "User"
has_many :notes, :dependent => :destroy
validates :name,
@@ -28,7 +29,7 @@ class Project < ActiveRecord::Base
after_destroy :destroy_gitosis_project
after_save :update_gitosis_project
- attr_protected :private_flag
+ attr_protected :private_flag, :owner_id
scope :public_only, where(:private_flag => false)
@@ -44,7 +45,6 @@ class Project < ActiveRecord::Base
read_attribute(:code).downcase.strip.gsub(' ', '')
end
-
def update_gitosis_project
Gitosis.new.configure do |c|
c.update_project(path, gitosis_writers)
@@ -145,5 +145,6 @@ end
# updated_at :datetime
# private_flag :boolean default(TRUE), not null
# code :string(255)
+# owner_id :integer
#
diff --git a/app/models/user.rb b/app/models/user.rb
index fdb4414576f..1efaf31445e 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -9,6 +9,7 @@ class User < ActiveRecord::Base
has_many :users_projects, :dependent => :destroy
has_many :projects, :through => :users_projects
+ has_many :my_own_projects, :class_name => "Project", :foreign_key => :owner_id
has_many :keys, :dependent => :destroy
has_many :issues,
:foreign_key => :author_id,
@@ -48,5 +49,6 @@ end
# updated_at :datetime
# name :string(255)
# admin :boolean default(FALSE), not null
+# allowed_create_repo :boolean default(TRUE), not null
#
diff --git a/db/migrate/20111009101738_add_ownerto_project.rb b/db/migrate/20111009101738_add_ownerto_project.rb
new file mode 100644
index 00000000000..8d265533add
--- /dev/null
+++ b/db/migrate/20111009101738_add_ownerto_project.rb
@@ -0,0 +1,5 @@
+class AddOwnertoProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :owner_id, :integer
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index eda4b8050ed..ad4b28875bc 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20111005193700) do
+ActiveRecord::Schema.define(:version => 20111009101738) do
create_table "issues", :force => true do |t|
t.string "title"
@@ -52,6 +52,7 @@ ActiveRecord::Schema.define(:version => 20111005193700) do
t.datetime "updated_at"
t.boolean "private_flag", :default => true, :null => false
t.string "code"
+ t.integer "owner_id"
end
create_table "users", :force => true do |t|
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 8f41b525286..14727d1de7e 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -122,5 +122,6 @@ end
# updated_at :datetime
# private_flag :boolean default(TRUE), not null
# code :string(255)
+# owner_id :integer
#
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index aedfd20ade0..7a9e1fa6bc9 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -38,5 +38,6 @@ end
# updated_at :datetime
# name :string(255)
# admin :boolean default(FALSE), not null
+# allowed_create_repo :boolean default(TRUE), not null
#