diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 9c6697d..5dfc680 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -41,12 +41,12 @@ class ProjectsController < ApplicationController def list sort_init "#{Project.table_name}.name", "asc" sort_update - @project_count = Project.count(:all, :conditions => ["is_public=?", true]) + @project_count = Project.count(:all, :conditions => Project.visible_by(logged_in_user)) @project_pages = Paginator.new self, @project_count, 15, params['page'] @projects = Project.find :all, :order => sort_clause, - :conditions => ["#{Project.table_name}.is_public=?", true], + :conditions => Project.visible_by(logged_in_user), :include => :parent, :limit => @project_pages.items_per_page, :offset => @project_pages.current.offset diff --git a/app/models/project.rb b/app/models/project.rb index 60a3767..018efe3 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -69,7 +69,9 @@ class Project < ActiveRecord::Base end def self.visible_by(user=nil) - if user && !user.memberships.empty? + if user && user.admin? + return nil + elsif user && !user.memberships.empty? return ["#{Project.table_name}.is_public = ? or #{Project.table_name}.id IN (#{user.memberships.collect{|m| m.project_id}.join(',')})", true] else return ["#{Project.table_name}.is_public = ?", true] diff --git a/app/views/projects/list.rhtml b/app/views/projects/list.rhtml index f83dc0d..54cc787 100644 --- a/app/views/projects/list.rhtml +++ b/app/views/projects/list.rhtml @@ -1,17 +1,18 @@ -
<%=l(:field_description)%> | <%=l(:field_parent)%> | <%= sort_header_tag("#{Project.table_name}.created_on", :caption => l(:field_created_on)) %>|||
---|---|---|---|---|
<%= link_to project.name, :action => 'show', :id => project %> | -<%=h project.description %> | +
+ <%= link_to project.name, {:action => 'show', :id => project}, :class => (@logged_in_user && @logged_in_user.role_for_project(project) ? "icon icon-fav" : "") %> + <%=h project.description %> + |
<%= link_to(project.parent.name, :action => 'show', :id => project.parent) unless project.parent.nil? %> | <%= format_date(project.created_on) %> |