From 9840102651ac84d2eb7824113a544bf4992e0398 Mon Sep 17 00:00:00 2001 From: Valera Sizov Date: Sun, 9 Oct 2011 04:05:31 -0700 Subject: [PATCH] Issue #82 - Add owner to project --- app/controllers/projects_controller.rb | 1 + app/models/project.rb | 5 +++-- app/models/user.rb | 2 ++ db/migrate/20111009101738_add_ownerto_project.rb | 5 +++++ db/schema.rb | 3 ++- spec/models/project_spec.rb | 1 + spec/models/user_spec.rb | 1 + 7 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20111009101738_add_ownerto_project.rb diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 06f97f57c..3307ac23d 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 4d9461a11..48c288eb0 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 fdb441457..1efaf3144 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 000000000..8d265533a --- /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 eda4b8050..ad4b28875 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 8f41b5252..14727d1de 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 aedfd20ad..7a9e1fa6b 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 # -- 2.11.0