diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index d10862925..e52f14d7f 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -252,24 +252,24 @@ class RepositoriesController < ApplicationController private :pickup_extra_info def committers + gitlab_project = GitlabProject.find_by_localfile_url(@repository.url) if gitlab_project # gitlab项目 - else - # 老模式 - @committers = @repository.committers - @users = @project.users - additional_user_ids = @committers.collect(&:last).collect(&:to_i) - @users.collect(&:id) - @users += User.find_all_by_id(additional_user_ids) unless additional_user_ids.empty? - @users.compact! - @users.sort! - if request.post? && params[:committers].is_a?(Hash) - # Build a hash with repository usernames as keys and corresponding user ids as values - @repository.committer_ids = params[:committers].values.inject({}) {|h, c| h[c.first] = c.last; h} - flash[:notice] = l(:notice_successful_update) - redirect_to settings_project_path(@project, :tab => 'repositories') - end + end + + @committers = @repository.committers + @users = @project.users + additional_user_ids = @committers.collect(&:last).collect(&:to_i) - @users.collect(&:id) + @users += User.find_all_by_id(additional_user_ids) unless additional_user_ids.empty? + @users.compact! + @users.sort! + if request.post? && params[:committers].is_a?(Hash) + # Build a hash with repository usernames as keys and corresponding user ids as values + @repository.committer_ids = params[:committers].values.inject({}) {|h, c| h[c.first] = c.last; h} + flash[:notice] = l(:notice_successful_update) + redirect_to settings_project_path(@project, :tab => 'repositories') end end diff --git a/app/views/repositories/committers.html.erb b/app/views/repositories/committers.html.erb index ccb037e09..4018b4904 100644 --- a/app/views/repositories/committers.html.erb +++ b/app/views/repositories/committers.html.erb @@ -2,6 +2,24 @@ <%= simple_format(l(:text_repository_usernames_mapping)) %> + + + + <% if @committers.empty? %>

<%= l(:label_no_data) %>

<% else %> diff --git a/db/migrate/20140725034309_add_gitlab_rights.rb b/db/migrate/20140725034309_add_gitlab_rights.rb new file mode 100644 index 000000000..bdcd7f7ff --- /dev/null +++ b/db/migrate/20140725034309_add_gitlab_rights.rb @@ -0,0 +1,22 @@ +# -*coding:utf-8 -*- +class AddGitlabRights < ActiveRecord::Migration + def up + # 添加Gitlab权限 + Role.all.each do |role| + if role.name == 'Manager' + role.permissions.append(:add_gitlab_user ) + elsif role.name =='Developer' + role.permissions.append(:add_gitlab_user ) + elsif role.name == 'Reporter' + elsif role.name == '助教' + role.permissions.append(:add_gitlab_user ) + elsif role.name == '老师' + role.permissions.append(:add_gitlab_user ) + elsif role.name == '学生' + end + role.save() + end + + def down + end +end