def create
@project = Project.new(params[:project])
+ @project.owner = current_user
Project.transaction do
@project.save!
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,
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)
read_attribute(:code).downcase.strip.gsub(' ', '')
end
-
def update_gitosis_project
Gitosis.new.configure do |c|
c.update_project(path, gitosis_writers)
# updated_at :datetime
# private_flag :boolean default(TRUE), not null
# code :string(255)
+# owner_id :integer
#
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,
# updated_at :datetime
# name :string(255)
# admin :boolean default(FALSE), not null
+# allowed_create_repo :boolean default(TRUE), not null
#
--- /dev/null
+class AddOwnertoProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :owner_id, :integer
+ end
+end
#
# 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"
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|
# updated_at :datetime
# private_flag :boolean default(TRUE), not null
# code :string(255)
+# owner_id :integer
#
# updated_at :datetime
# name :string(255)
# admin :boolean default(FALSE), not null
+# allowed_create_repo :boolean default(TRUE), not null
#