diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index d17059231..e7b4bdac6 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -239,7 +239,7 @@ class ApplicationController < ActionController::Base
 		uid_logger("user_setup: " + (User.current.logged? ? "#{User.current.try(:login)} (id=#{User.current.try(:id)})" : "anonymous"))
 
 		if !User.current.logged? && Rails.env.development?
-			User.current = User.find 8686
+			User.current = User.find 1
 		end
 
 
diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb
index ff1ee4e96..5d1733983 100644
--- a/app/controllers/homework_commons_controller.rb
+++ b/app/controllers/homework_commons_controller.rb
@@ -171,6 +171,14 @@ class HomeworkCommonsController < ApplicationController
           @student_works = @student_works.where(user_id: group_user_ids)
         end
 
+        if @homework.homework_type == "group" && !params[:member_work].blank?
+          if params[:member_work].to_i == 1
+            @student_works = @student_works.where("user_id = commit_user_id")
+          elsif params[:member_work].to_i == 0
+            @student_works = @student_works.where("user_id != commit_user_id")
+          end
+        end
+
         # 输入姓名和学号搜索
         # TODO user_extension 如果修改 请调整
         unless params[:search].blank?
diff --git a/app/controllers/student_works_controller.rb b/app/controllers/student_works_controller.rb
index 93f0fc586..92e60a71c 100644
--- a/app/controllers/student_works_controller.rb
+++ b/app/controllers/student_works_controller.rb
@@ -61,16 +61,21 @@ class StudentWorksController < ApplicationController
   end
 
   def delete_work
-    begin
-      work = @homework.student_works.find_by!(user_id: params[:user_id])
-      work.update_attributes(description: nil, project_id: 0,
-                                 late_penalty: 0, work_status: 0,
-                                 commit_time: nil, update_time: nil, group_id: 0,
-                                 commit_user_id: nil, final_score: nil, work_score: nil, teacher_score: nil, teaching_asistant_score: nil)
-      normal_status("删除成功")
-    rescue Exception => e
-      uid_logger(e.message)
-      tip_exception(e.message)
+    ActiveRecord::Base.transaction do
+      begin
+        work = @homework.student_works.find_by!(user_id: params[:user_id])
+        tip_exception("只有组长才能删除组员") if work.commit_user_id != current_user.id
+        work.update_attributes(description: nil, project_id: 0,
+                                   late_penalty: 0, work_status: 0,
+                                   commit_time: nil, update_time: nil, group_id: 0,
+                                   commit_user_id: nil, final_score: nil, work_score: nil, teacher_score: nil, teaching_asistant_score: nil)
+        work.attachments.destroy_all
+        work.tidings.destroy_all
+        normal_status("删除成功")
+      rescue Exception => e
+        uid_logger(e.message)
+        tip_exception(e.message)
+      end
     end
   end
 
@@ -137,8 +142,9 @@ class StudentWorksController < ApplicationController
     @current_user = current_user
     if @homework.homework_type == "group"
       # todo user_extension
+      @commit_user_id = @work.commit_user_id
       @work_members = @course.students.where(user_id: @homework.student_works.where(group_id: @work.group_id).pluck(:user_id)).
-          order("course_members.id=#{@work.user_id} desc").includes(:course_group, user: :user_extension)
+          order("course_members.user_id=#{@work.commit_user_id} desc").includes(:course_group, user: :user_extension)
     end
   end
 
@@ -150,7 +156,7 @@ class StudentWorksController < ApplicationController
       begin
         @work.description = params[:description]
         @work.update_time = Time.now
-        @work.commit_user_id = current_user.id
+        # @work.commit_user_id = current_user.id
         if @work.save!
           Attachment.associate_container(params[:attachment_ids], @work.id, @work.class)
 
@@ -165,7 +171,8 @@ class StudentWorksController < ApplicationController
 
             # 原成员更新描述、更新时间以及附件
             @homework.student_works.where(group_id: @work.group_id, user_id: (work_user_ids & params_user_ids)).each do |work|
-              work.update_attributes(update_time: Time.now, description: @work.description, commit_user_id: current_user.id)
+              # work.update_attributes(update_time: Time.now, description: @work.description, commit_user_id: current_user.id)
+              work.update_attributes(update_time: Time.now, description: @work.description)
               work.attachments.destroy_all
               @work.attachments.each do |attachment|
                 att = attachment.copy
@@ -193,7 +200,7 @@ class StudentWorksController < ApplicationController
               stu_work.update_attributes(user_id: user_id, description: @work.description, homework_common_id: @homework.id,
                                          project_id: @work.project_id, late_penalty: @work.late_penalty,
                                          work_status: @work.work_status, commit_time: Time.now, update_time: Time.now,
-                                         group_id: @work.group_id, commit_user_id: current_user.id)
+                                         group_id: @work.group_id, commit_user_id: @work.commit_user_id)
               @work.attachments.each do |attachment|
                 att = attachment.copy
                 att.author_id = attachment.author_id
diff --git a/app/views/homework_commons/works_list.json.jbuilder b/app/views/homework_commons/works_list.json.jbuilder
index bbe71661a..08c269670 100644
--- a/app/views/homework_commons/works_list.json.jbuilder
+++ b/app/views/homework_commons/works_list.json.jbuilder
@@ -69,6 +69,7 @@ elsif @user_course_identity == Course::STUDENT
         json.project_info project_info @work, @current_user, @user_course_identity
       end
       json.work_group @work.work_group_name
+      json.is_leader @work.user_id == @work.commit_user_id
     end
 
   end
@@ -140,6 +141,7 @@ elsif @homework.homework_type == "group" || @homework.homework_type == "normal"
         if @homework.homework_detail_group.base_on_project
           json.project_info project_info work, @current_user, @user_course_identity
         end
+        json.is_leader work.user_id == work.commit_user_id
         json.work_group work.work_group_name
       end
 
diff --git a/app/views/student_works/edit.json.jbuilder b/app/views/student_works/edit.json.jbuilder
index ce9d9ff72..88e5354e4 100644
--- a/app/views/student_works/edit.json.jbuilder
+++ b/app/views/student_works/edit.json.jbuilder
@@ -1,12 +1,14 @@
 json.partial! "homework_commons/homework_public_navigation", locals: {homework: @homework, course: @course, user: @current_user}
 json.work_id @work.id
 json.description @work.description
+json.
 
 json.attachments @work.attachments do |atta|
   json.partial! "attachments/attachment_simple", locals: {attachment: atta, delete: @work.delete_atta(atta)}
 end
 
 if @homework.homework_type == "group"
+  json.is_leader_work @work.user_id == @commit_user_id
   json.min_num @homework.homework_detail_group.try(:min_num)
   json.max_num @homework.homework_detail_group.try(:max_num)
 
@@ -15,5 +17,6 @@ if @homework.homework_type == "group"
     json.user_name member.user.real_name
     json.group_name member.course_group_name
     json.student_id member.user.student_id
+    json.is_leader member.user_id == @commit_user_id
   end
 end
\ No newline at end of file
diff --git a/app/views/student_works/show.json.jbuilder b/app/views/student_works/show.json.jbuilder
index 653ed6450..5756ac9cb 100644
--- a/app/views/student_works/show.json.jbuilder
+++ b/app/views/student_works/show.json.jbuilder
@@ -3,6 +3,7 @@ json.(@work, :description, :commit_time, :update_time)
 
 json.is_evaluation @is_evaluation
 json.author_name @is_evaluation ? "匿名" : @work.user.real_name
+json.is_leader_work @work.user_id == @work.commit_user_id if @homework.homework_type == "group"
 json.is_author @is_author
 json.update_user_name @is_evaluation ? "匿名" : @work.commit_user.try(:real_name)
 
@@ -17,8 +18,10 @@ unless @is_evaluation
     json.project_info project_info @work, @current_user, @user_course_identity
   end
 
-  json.work_members @work_members.each do |member|
-    json.user_name member.user.real_name
-    json.user_login member.user.login
+  json.work_members @work_members.each do |work|
+    json.user_name work.user.real_name
+    json.user_login work.user.login
+    json.work_id work.id
+    json.is_leader work.user_id == work.commit_user_id
   end
 end