OSDN Git Service

Issue #82 - Add owner to project
authorValera Sizov <vsv2711@gmail.com>
Sun, 9 Oct 2011 11:05:31 +0000 (04:05 -0700)
committerValera Sizov <vsv2711@gmail.com>
Sun, 9 Oct 2011 11:05:31 +0000 (04:05 -0700)
app/controllers/projects_controller.rb
app/models/project.rb
app/models/user.rb
db/migrate/20111009101738_add_ownerto_project.rb [new file with mode: 0644]
db/schema.rb
spec/models/project_spec.rb
spec/models/user_spec.rb

index 06f97f5..3307ac2 100644 (file)
@@ -87,6 +87,7 @@ class ProjectsController < ApplicationController
 
   def create
     @project = Project.new(params[:project])
+    @project.owner = current_user
 
     Project.transaction do 
       @project.save!
index 4d9461a..48c288e 100644 (file)
@@ -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
 #
 
index fdb4414..1efaf31 100644 (file)
@@ -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 (file)
index 0000000..8d26553
--- /dev/null
@@ -0,0 +1,5 @@
+class AddOwnertoProject < ActiveRecord::Migration
+  def change
+    add_column :projects, :owner_id, :integer
+  end
+end
index eda4b80..ad4b288 100644 (file)
@@ -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|
index 8f41b52..14727d1 100644 (file)
@@ -122,5 +122,6 @@ end
 #  updated_at   :datetime
 #  private_flag :boolean         default(TRUE), not null
 #  code         :string(255)
+#  owner_id     :integer
 #
 
index aedfd20..7a9e1fa 100644 (file)
@@ -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
 #