summaryrefslogtreecommitdiff
path: root/app/models/users_project.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/users_project.rb')
-rw-r--r--app/models/users_project.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/app/models/users_project.rb b/app/models/users_project.rb
new file mode 100644
index 00000000000..bdc10633a3e
--- /dev/null
+++ b/app/models/users_project.rb
@@ -0,0 +1,35 @@
+class UsersProject < ActiveRecord::Base
+ belongs_to :user
+ belongs_to :project
+
+ attr_protected :project_id, :project
+
+ after_commit :update_gitosis_project
+
+ validates_uniqueness_of :user_id, :scope => [:project_id]
+ validates_presence_of :user_id
+ validates_presence_of :project_id
+
+ delegate :name, :email, :to => :user, :prefix => true
+
+ def update_gitosis_project
+ Gitosis.new.configure do |c|
+ c.update_project(project.path, project.gitosis_writers)
+ end
+ end
+
+end
+# == Schema Information
+#
+# Table name: users_projects
+#
+# id :integer not null, primary key
+# user_id :integer not null
+# project_id :integer not null
+# read :boolean default(FALSE)
+# write :boolean default(FALSE)
+# admin :boolean default(FALSE)
+# created_at :datetime
+# updated_at :datetime
+#
+