##// END OF EJS Templates
fixed: non public projects were shown on welcome screen even if current user is not a member...
Jean-Philippe Lang -
r126:7a03cf92ba62
parent child
Show More
@@ -19,7 +19,7 class WelcomeController < ApplicationController
19 19 layout 'base'
20 20
21 21 def index
22 @news = News.latest
23 @projects = Project.latest
22 @news = News.latest logged_in_user
23 @projects = Project.latest logged_in_user
24 24 end
25 25 end
@@ -22,8 +22,8 class News < ActiveRecord::Base
22 22
23 23 validates_presence_of :title, :description
24 24
25 # returns last created news
26 def self.latest
27 find(:all, :limit => 5, :include => [ :author, :project ], :order => "news.created_on DESC")
25 # returns latest news for projects visible by user
26 def self.latest(user=nil, count=5)
27 find(:all, :limit => count, :conditions => Project.visible_by(user), :include => [ :author, :project ], :order => "news.created_on DESC")
28 28 end
29 29 end
@@ -35,11 +35,20 class Project < ActiveRecord::Base
35 35 validates_associated :repository
36 36 validates_format_of :name, :with => /^[\w\s\'\-]*$/i
37 37
38 # returns 5 last created projects
39 def self.latest
40 find(:all, :limit => 5, :order => "created_on DESC")
38 # returns latest created projects
39 # non public projects will be returned only if user is a member of those
40 def self.latest(user=nil, count=5)
41 find(:all, :limit => count, :conditions => visible_by(user), :order => "projects.created_on DESC")
41 42 end
42 43
44 def self.visible_by(user=nil)
45 if user && !user.memberships.empty?
46 return ["projects.is_public = ? or projects.id IN (#{user.memberships.collect{|m| m.project_id}.join(',')})", true]
47 else
48 return ["projects.is_public = ?", true]
49 end
50 end
51
43 52 # Returns an array of all custom fields enabled for project issues
44 53 # (explictly associated custom fields and custom fields enabled for all projects)
45 54 def custom_fields_for_issues(tracker)
General Comments 0
You need to be logged in to leave comments. Login now