Commit 9840102651ac84d2eb7824113a544bf4992e0398

Authored by Valera Sizov
1 parent 819818ad

Issue #82 - Add owner to project

app/controllers/projects_controller.rb
@@ -87,6 +87,7 @@ class ProjectsController < ApplicationController @@ -87,6 +87,7 @@ class ProjectsController < ApplicationController
87 87
88 def create 88 def create
89 @project = Project.new(params[:project]) 89 @project = Project.new(params[:project])
  90 + @project.owner = current_user
90 91
91 Project.transaction do 92 Project.transaction do
92 @project.save! 93 @project.save!
app/models/project.rb
@@ -4,6 +4,7 @@ class Project < ActiveRecord::Base @@ -4,6 +4,7 @@ class Project < ActiveRecord::Base
4 has_many :issues, :dependent => :destroy 4 has_many :issues, :dependent => :destroy
5 has_many :users_projects, :dependent => :destroy 5 has_many :users_projects, :dependent => :destroy
6 has_many :users, :through => :users_projects 6 has_many :users, :through => :users_projects
  7 + belongs_to :owner, :class_name => "User"
7 has_many :notes, :dependent => :destroy 8 has_many :notes, :dependent => :destroy
8 9
9 validates :name, 10 validates :name,
@@ -28,7 +29,7 @@ class Project < ActiveRecord::Base @@ -28,7 +29,7 @@ class Project < ActiveRecord::Base
28 after_destroy :destroy_gitosis_project 29 after_destroy :destroy_gitosis_project
29 after_save :update_gitosis_project 30 after_save :update_gitosis_project
30 31
31 - attr_protected :private_flag 32 + attr_protected :private_flag, :owner_id
32 33
33 scope :public_only, where(:private_flag => false) 34 scope :public_only, where(:private_flag => false)
34 35
@@ -44,7 +45,6 @@ class Project < ActiveRecord::Base @@ -44,7 +45,6 @@ class Project < ActiveRecord::Base
44 read_attribute(:code).downcase.strip.gsub(' ', '') 45 read_attribute(:code).downcase.strip.gsub(' ', '')
45 end 46 end
46 47
47 -  
48 def update_gitosis_project 48 def update_gitosis_project
49 Gitosis.new.configure do |c| 49 Gitosis.new.configure do |c|
50 c.update_project(path, gitosis_writers) 50 c.update_project(path, gitosis_writers)
@@ -145,5 +145,6 @@ end @@ -145,5 +145,6 @@ end
145 # updated_at :datetime 145 # updated_at :datetime
146 # private_flag :boolean default(TRUE), not null 146 # private_flag :boolean default(TRUE), not null
147 # code :string(255) 147 # code :string(255)
  148 +# owner_id :integer
148 # 149 #
149 150
app/models/user.rb
@@ -9,6 +9,7 @@ class User < ActiveRecord::Base @@ -9,6 +9,7 @@ class User < ActiveRecord::Base
9 9
10 has_many :users_projects, :dependent => :destroy 10 has_many :users_projects, :dependent => :destroy
11 has_many :projects, :through => :users_projects 11 has_many :projects, :through => :users_projects
  12 + has_many :my_own_projects, :class_name => "Project", :foreign_key => :owner_id
12 has_many :keys, :dependent => :destroy 13 has_many :keys, :dependent => :destroy
13 has_many :issues, 14 has_many :issues,
14 :foreign_key => :author_id, 15 :foreign_key => :author_id,
@@ -48,5 +49,6 @@ end @@ -48,5 +49,6 @@ end
48 # updated_at :datetime 49 # updated_at :datetime
49 # name :string(255) 50 # name :string(255)
50 # admin :boolean default(FALSE), not null 51 # admin :boolean default(FALSE), not null
  52 +# allowed_create_repo :boolean default(TRUE), not null
51 # 53 #
52 54
db/migrate/20111009101738_add_ownerto_project.rb 0 → 100644
@@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
  1 +class AddOwnertoProject < ActiveRecord::Migration
  2 + def change
  3 + add_column :projects, :owner_id, :integer
  4 + end
  5 +end
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 # 11 #
12 # It's strongly recommended to check this file into your version control system. 12 # It's strongly recommended to check this file into your version control system.
13 13
14 -ActiveRecord::Schema.define(:version => 20111005193700) do 14 +ActiveRecord::Schema.define(:version => 20111009101738) do
15 15
16 create_table "issues", :force => true do |t| 16 create_table "issues", :force => true do |t|
17 t.string "title" 17 t.string "title"
@@ -52,6 +52,7 @@ ActiveRecord::Schema.define(:version =&gt; 20111005193700) do @@ -52,6 +52,7 @@ ActiveRecord::Schema.define(:version =&gt; 20111005193700) do
52 t.datetime "updated_at" 52 t.datetime "updated_at"
53 t.boolean "private_flag", :default => true, :null => false 53 t.boolean "private_flag", :default => true, :null => false
54 t.string "code" 54 t.string "code"
  55 + t.integer "owner_id"
55 end 56 end
56 57
57 create_table "users", :force => true do |t| 58 create_table "users", :force => true do |t|
spec/models/project_spec.rb
@@ -122,5 +122,6 @@ end @@ -122,5 +122,6 @@ end
122 # updated_at :datetime 122 # updated_at :datetime
123 # private_flag :boolean default(TRUE), not null 123 # private_flag :boolean default(TRUE), not null
124 # code :string(255) 124 # code :string(255)
  125 +# owner_id :integer
125 # 126 #
126 127
spec/models/user_spec.rb
@@ -38,5 +38,6 @@ end @@ -38,5 +38,6 @@ end
38 # updated_at :datetime 38 # updated_at :datetime
39 # name :string(255) 39 # name :string(255)
40 # admin :boolean default(FALSE), not null 40 # admin :boolean default(FALSE), not null
  41 +# allowed_create_repo :boolean default(TRUE), not null
41 # 42 #
42 43