<% if User.current.member_of?(@project) %>
-
- <%= link_to l(:label_invite_new_user), :controller=>"projects", :action=>"invite_members_by_mail", :id => @project %>
<% if User.current.allowed_to?(:manage_members, @project) %>
diff --git a/public/javascripts/project.js b/public/javascripts/project.js
index 70888e5d0..0a04b2a7b 100644
--- a/public/javascripts/project.js
+++ b/public/javascripts/project.js
@@ -384,4 +384,45 @@ function submitProjectBoard()
{
$("#message-form").submit();
}
-}
\ No newline at end of file
+}
+
+//cookie记忆html区块 显示/隐藏 的代码 start
+$(function(){
+ var personalized_expand_key = "personalized_expand";
+ function personalized_init(){
+ var personalized_map = cookieget(personalized_expand_key);
+ if(personalized_map!=false){
+ personalized_map = JSON.parse(personalized_map);
+ $("*[nhtype='toggle4cookie']").each(function(){
+ var personalized_id=$(this).data('id');
+ var val = personalized_map[personalized_id];
+ if(val!=undefined && val!=$(this).data('val')){
+ personalized_click($(this),0);
+ }
+ });
+ }
+ }
+ function personalized_click(obj,timeout){
+ var target = $(obj.data('target'));
+ var oldval = obj.data('val');
+ var val='';
+ if(oldval=='expand'){val='retract';}else{val='expand';}
+ obj.data('val',val);
+ var personalized_map = cookieget(personalized_expand_key);
+ if(personalized_map == false){
+ personalized_map={};
+ }else{
+ personalized_map = JSON.parse(personalized_map);
+ }
+ var personalized_id=obj.data('id');
+ personalized_map[personalized_id]=val;
+ cookiesave(personalized_expand_key,JSON.stringify(personalized_map));
+ target.toggle(timeout);
+ }
+ $("*[nhtype='toggle4cookie']").click(function(){
+ personalized_click($(this),500);
+ });
+
+ personalized_init();
+});
+//cookie记忆html区块 显示/隐藏 的代码 end
\ No newline at end of file
From 3f77e2cdcfb5e1628c01419150dca7ccae9ff4f2 Mon Sep 17 00:00:00 2001
From: huang
Date: Mon, 18 May 2015 11:36:29 +0800
Subject: [PATCH 2/5] =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=9D=83=E9=99=90?=
=?UTF-8?q?=E5=85=AC=E5=85=B1=E6=96=B9=E6=B3=95=E5=AE=9A=E4=B9=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/helpers/application_helper.rb | 14 ++++++++++++--
app/views/files/_project_file_list.html.erb | 4 +---
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index bb62695c0..b6329c676 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -594,12 +594,22 @@ module ApplicationHelper
end
# 判断当前用户是否为项目管理员
- def is_project_manager?(user_id,project_id)
+ def is_project_manager?(user_id, project_id)
@result = false
mem = Member.where("user_id = ? and project_id = ?",user_id, project_id)
unless mem.blank?
mem.first.roles.to_s.include?("Manager")
- @result = false
+ @result = true
+ end
+ return @result
+ end
+
+ # 私有项目资源不能引用,不能设置公开私有
+ # 公开项目资源可以应用,管理员和资源上传者拥有设置公开私有权限
+ def authority_pubilic_for_files(project, file)
+ @result = false
+ if (is_project_manager?(User.current.id, @project.id) || file.author_id == User.current.id) && project_contains_attachment?(project,file) && file.container_id == project.id && file.container_type == "Project"
+ @result = true
end
return @result
end
diff --git a/app/views/files/_project_file_list.html.erb b/app/views/files/_project_file_list.html.erb
index d3e383a4e..1042be584 100644
--- a/app/views/files/_project_file_list.html.erb
+++ b/app/views/files/_project_file_list.html.erb
@@ -20,10 +20,8 @@
<%= link_to_attachment file, :download => true,:text => truncate(file.filename,length: 35, omission: '...'), :title => file.filename+"\n"+file.description.to_s, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis;",:class => "c_dblue f_14 f_b f_l" %>
<% if User.current.logged? %>
- <%#--私有项目资源不能引用,不能设置公开私有--%>
- <%#--公开项目资源可以应用,管理员和资源上传者拥有设置公开私有权限--%>
<%= link_to(l(:label_slected_to_other_project),quote_resource_show_project_project_file_path(project,file),:class => "f_l re_select",:remote => true) if has_project?(User.current,file) %>
- <% if (is_project_manager?(User.current.id, @project.id) || file.author_id == User.current.id) && project_contains_attachment?(project,file) && file.container_id == project.id && file.container_type == "Project" %>
+ <% if authority_pubilic_for_files(project, file) %>
<%= link_to (file.is_public? ? "公开":"私有"), update_file_dense_attachments_path(:attachmentid=>file.id,:newtype=>(file.is_public? ? 0:1)),:remote=>true,:class=>"f_l re_open",:method => :post %>
From 4b58699ee9f2c361f2c28e30c6907ba198291414 Mon Sep 17 00:00:00 2001
From: yutao <283765470@qq.com>
Date: Mon, 18 May 2015 16:41:04 +0800
Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug#2270=20:forge/course?=
=?UTF-8?q?=E4=B8=BB=E9=A1=B5--=E6=90=9C=E7=B4=A2=E7=94=A8=E6=88=B7?=
=?UTF-8?q?=E6=97=A0=E4=BB=BB=E4=BD=95=E4=BD=9C=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/users_controller.rb | 2 ++
app/services/users_service.rb | 14 +++++++++++---
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 2a10af260..ace4ae903 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -383,6 +383,8 @@ class UsersController < ApplicationController
# scope = User.logged.status(@status)
# @search_by = params[:search_by] ? params[:search_by][:id] : 0
# scope = scope.like(params[:name],@search_by) if params[:name].present?
+ @search_by = params[:search_by] ? params[:search_by] : 0
+
us = UsersService.new
scope = us.search_user params
@user_count = scope.count
diff --git a/app/services/users_service.rb b/app/services/users_service.rb
index 071820ba3..afefc6ff1 100644
--- a/app/services/users_service.rb
+++ b/app/services/users_service.rb
@@ -206,10 +206,18 @@ class UsersService
}
scope = User.logged.status(status)
if params[:is_search_assitant].nil?
- watcher = User.watched_by(params[:user_id])
- watcher.push(params[:user_id])
+ #modify by yutao 2015/5/18 没有params[:user_id]参数时去掉"id not in (?)"条件(bug:#2270) start
+ #say by yutao: params[:user_id]这个是指谁发起的搜索么? 如果是 这个值貌似应该从session获取 怪怪的赶脚-_-!
search_by = params[:search_by] ? params[:search_by] : "0"
- scope = scope.where("id not in (?)",watcher).like(params[:name],search_by) if params[:name].present?
+ if params[:name].present?
+ if !params[:user_id].nil?
+ watcher = User.watched_by(params[:user_id])
+ watcher.push(params[:user_id])
+ scope = scope.where("id not in (?)",watcher)
+ end
+ scope = scope.like(params[:name],search_by)
+ end
+ #modify by yutao 2015/5/18 没有params[:user_id]参数时去掉"id not in (?)"条件 end
else
teachers = searchTeacherAndAssistant(Course.find(params[:course_id]))
scope = scope.where("id not in (?)",teachers.map{|t| t.user_id}).like(params[:name],search_by) if params[:name].present?
From df48d8988116fdce3e15d1822a547c68165c8276 Mon Sep 17 00:00:00 2001
From: huang
Date: Mon, 18 May 2015 17:02:02 +0800
Subject: [PATCH 4/5] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=BA=93=E6=9D=83?=
=?UTF-8?q?=E9=99=90=E5=B0=81=E8=A3=85=20=E6=B7=BB=E5=8A=A0admin=E5=8F=AF?=
=?UTF-8?q?=E4=BB=A5=E7=AE=A1=E7=90=86=E8=B5=84=E6=BA=90=E7=9A=84=E5=85=AC?=
=?UTF-8?q?=E5=BC=80=E7=A7=81=E6=9C=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/helpers/application_helper.rb | 25 +++++++++++++++----
.../layouts/_base_development_group.html.erb | 19 ++++----------
2 files changed, 25 insertions(+), 19 deletions(-)
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 506adceec..0836bf307 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -593,22 +593,37 @@ module ApplicationHelper
Project.project_tree(projects, &block)
end
+ # 项目版本库可见权限判断
+ # 条件:1、modules中设置不可见或项目没有版本库;2、如果项目是私有或者项目版本库隐藏则必须是项目成员才可见
+ def visible_repository?(project)
+ @result = false
+ unless project.enabled_modules.where("name = 'repository'").empty? || project.repositories.count == 0
+ if (project.hidden_repo || !project.is_public?)
+ if User.current.member_of?(project)
+ @result = true
+ end
+ else
+ @result = true
+ end
+ end
+ return @result
+ end
+
# 判断当前用户是否为项目管理员
def is_project_manager?(user_id, project_id)
@result = false
mem = Member.where("user_id = ? and project_id = ?",user_id, project_id)
unless mem.blank?
- mem.first.roles.to_s.include?("Manager")
- @result = true
+ @result = mem.first.roles.to_s.include?("Manager") ? true : false
end
return @result
end
- # 私有项目资源不能引用,不能设置公开私有
- # 公开项目资源可以应用,管理员和资源上传者拥有设置公开私有权限
+ # 公开项目资源可以引用,admin和管理员和资源上传者拥有设置公开私有权限
def authority_pubilic_for_files(project, file)
@result = false
- if (is_project_manager?(User.current.id, @project.id) || file.author_id == User.current.id) && project_contains_attachment?(project,file) && file.container_id == project.id && file.container_type == "Project"
+ if (is_project_manager?(User.current.id, @project.id) || file.author_id == User.current.id || User.current.admin) &&
+ project_contains_attachment?(project,file) && file.container_id == project.id && file.container_type == "Project"
@result = true
end
return @result
diff --git a/app/views/layouts/_base_development_group.html.erb b/app/views/layouts/_base_development_group.html.erb
index 4b0692f9e..218fc186d 100644
--- a/app/views/layouts/_base_development_group.html.erb
+++ b/app/views/layouts/_base_development_group.html.erb
@@ -39,20 +39,11 @@
<% end %>
<%# --版本库被设置成私有、module中设置不显示、没有创建版本库 三种情况不显示-- %>
- <% unless @project.enabled_modules.where("name = 'repository'").empty? || @project.repositories.count == 0 %>
- <% if @project.hidden_repo || !@project.is_public? %>
- <% if User.current.member_of?(@project) %>
-
- <%= link_to l(:project_module_repository), {:controller => 'repositories', :action => 'show', :id => @project.id}, :class => "f14 c_blue02" %>
-
(<%= @project.repositories.count %>)
-
- <% end %>
- <% else %>
-
- <%= link_to l(:project_module_repository), {:controller => 'repositories', :action => 'show', :id => @project.id}, :class => "f14 c_blue02" %>
-
(<%= @project.repositories.count %>)
-
- <% end %>
+ <% if visible_repository?(@project) %>
+
+ <%= link_to l(:project_module_repository), {:controller => 'repositories', :action => 'show', :id => @project.id}, :class => "f14 c_blue02" %>
+
(<%= @project.repositories.count %>)
+
<% end %>
<%= l(:label_project_more) %>
From 9690dc41f657007415e71500d73e77e5f1bdb7e6 Mon Sep 17 00:00:00 2001
From: yutao <283765470@qq.com>
Date: Mon, 18 May 2015 17:03:26 +0800
Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug#2606=20:IE=E6=B5=8F?=
=?UTF-8?q?=E8=A7=88=E5=99=A8=EF=BC=9A=E6=B5=8B=E8=AF=95=E7=89=88=E2=80=94?=
=?UTF-8?q?=E4=B8=AD=E5=9B=BD=E9=AB=98=E6=A0=A1=EF=BC=9A=E6=90=9C=E7=B4=A2?=
=?UTF-8?q?=E5=AD=A6=E6=A0=A1=E6=97=B6ajax=E9=93=BE=E6=8E=A5=E9=94=99?=
=?UTF-8?q?=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/views/school/index.html.erb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/views/school/index.html.erb b/app/views/school/index.html.erb
index 00f419aab..cdd87e723 100644
--- a/app/views/school/index.html.erb
+++ b/app/views/school/index.html.erb
@@ -53,7 +53,7 @@
}
$.ajax({
type :"POST",
- url :prefix + '/school/search_school/?key_word='+encodeURIComponent(value)+'&province='+province,
+ url :prefix + '/school/search_school/?key_word='+encodeURIComponent(value)+'&province='+encodeURIComponent(province),
data :'text',
success: function(data){
$("#schoollist").html(data);