diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 06f97f57c513e209288a184f60915eb33eaf6016..3307ac23d9b32f9c14bb4a78b057abaad6eb0803 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 4d9461a1152ce21a1c4936ae039510095ce14418..48c288eb015138038eeb1242ab5db7a2993f52c1 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 fdb4414576f2e16628ef7f7c3e6f244a8d8218b9..1efaf31445e63988aab2a8cb91d1ad3b03abeeb8 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 0000000000000000000000000000000000000000..8d265533add849bd479a0f044da7e7e2d6310171 --- /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 eda4b8050edf90af8bd29184f0950bb9a6607fd5..ad4b28875bc31e5838943eaaa46fd706ff89683f 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 8f41b5252861f04d54ff144724fc2e8011a38e0b..14727d1de7e55fc0c0e9ce138d783eb0a233379d 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 aedfd20ade0a1482e2b65ead3234aafcbcba4207..7a9e1fa6bc917d38ba629af5b7e5c00042a23e0e 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 #