diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-09-22 17:25:49 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-09-22 17:25:49 +0000 |
commit | 8cd882355edf7b88011ad7fca13ccba5f948001b (patch) | |
tree | f55e11d8d2c8d5a3f4b728a392194579f93a85f9 /lib | |
parent | b3c53efc42ff242e948393ddf7fb3ea6fb340480 (diff) | |
parent | 648557048226ba98c514531135e96df9c34bdda7 (diff) | |
download | gitlab-ce-8cd882355edf7b88011ad7fca13ccba5f948001b.tar.gz |
Merge branch '7-4-pre' into 'master'
7.4 development
Development branch during `master` code freeze for 7.3
See merge request !1096
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/entities.rb | 16 | ||||
-rw-r--r-- | lib/api/groups.rb | 8 | ||||
-rw-r--r-- | lib/api/project_members.rb | 14 | ||||
-rw-r--r-- | lib/gitlab/access.rb | 4 | ||||
-rw-r--r-- | lib/tasks/gitlab/bulk_add_permission.rake | 12 | ||||
-rw-r--r-- | lib/tasks/gitlab/check.rake | 10 |
6 files changed, 34 insertions, 30 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 74fdef93543..ffa3e8a149e 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -53,8 +53,8 @@ module API end class ProjectMember < UserBasic - expose :project_access, as: :access_level do |user, options| - options[:project].users_projects.find_by(user_id: user.id).project_access + expose :access_level do |user, options| + options[:project].project_members.find_by(user_id: user.id).access_level end end @@ -67,8 +67,8 @@ module API end class GroupMember < UserBasic - expose :group_access, as: :access_level do |user, options| - options[:group].users_groups.find_by(user_id: user.id).group_access + expose :access_level do |user, options| + options[:group].group_members.find_by(user_id: user.id).access_level end end @@ -170,24 +170,24 @@ module API end class ProjectAccess < Grape::Entity - expose :project_access, as: :access_level + expose :access_level expose :notification_level end class GroupAccess < Grape::Entity - expose :group_access, as: :access_level + expose :access_level expose :notification_level end class ProjectWithAccess < Project expose :permissions do expose :project_access, using: Entities::ProjectAccess do |project, options| - project.users_projects.find_by(user_id: options[:user].id) + project.project_members.find_by(user_id: options[:user].id) end expose :group_access, using: Entities::GroupAccess do |project, options| if project.group - project.group.users_groups.find_by(user_id: options[:user].id) + project.group.group_members.find_by(user_id: options[:user].id) end end end diff --git a/lib/api/groups.rb b/lib/api/groups.rb index caa2ca97a3e..4841e04689d 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -104,7 +104,7 @@ module API # GET /groups/:id/members get ":id/members" do group = find_group(params[:id]) - members = group.users_groups + members = group.group_members users = (paginate members).collect(&:user) present users, with: Entities::GroupMember, group: group end @@ -123,11 +123,11 @@ module API render_api_error!("Wrong access level", 422) end group = find_group(params[:id]) - if group.users_groups.find_by(user_id: params[:user_id]) + if group.group_members.find_by(user_id: params[:user_id]) render_api_error!("Already exists", 409) end group.add_users([params[:user_id]], params[:access_level]) - member = group.users_groups.find_by(user_id: params[:user_id]) + member = group.group_members.find_by(user_id: params[:user_id]) present member.user, with: Entities::GroupMember, group: group end @@ -141,7 +141,7 @@ module API # DELETE /groups/:id/members/:user_id delete ":id/members/:user_id" do group = find_group(params[:id]) - member = group.users_groups.find_by(user_id: params[:user_id]) + member = group.group_members.find_by(user_id: params[:user_id]) if member.nil? render_api_error!("404 Not Found - user_id:#{params[:user_id]} not a member of group #{group.name}",404) else diff --git a/lib/api/project_members.rb b/lib/api/project_members.rb index 47c4ddce163..1595ed0bc36 100644 --- a/lib/api/project_members.rb +++ b/lib/api/project_members.rb @@ -6,8 +6,8 @@ module API resource :projects do helpers do def handle_project_member_errors(errors) - if errors[:project_access].any? - error!(errors[:project_access], 422) + if errors[:access_level].any? + error!(errors[:access_level], 422) end not_found! end @@ -56,9 +56,9 @@ module API # either the user is already a team member or a new one team_member = user_project.team_member_by_id(params[:user_id]) if team_member.nil? - team_member = user_project.users_projects.new( + team_member = user_project.project_members.new( user_id: params[:user_id], - project_access: params[:access_level] + access_level: params[:access_level] ) end @@ -82,10 +82,10 @@ module API authorize! :admin_project, user_project required_attributes! [:access_level] - team_member = user_project.users_projects.find_by(user_id: params[:user_id]) + team_member = user_project.project_members.find_by(user_id: params[:user_id]) not_found!("User can not be found") if team_member.nil? - if team_member.update_attributes(project_access: params[:access_level]) + if team_member.update_attributes(access_level: params[:access_level]) @member = team_member.user present @member, with: Entities::ProjectMember, project: user_project else @@ -102,7 +102,7 @@ module API # DELETE /projects/:id/members/:user_id delete ":id/members/:user_id" do authorize! :admin_project, user_project - team_member = user_project.users_projects.find_by(user_id: params[:user_id]) + team_member = user_project.project_members.find_by(user_id: params[:user_id]) unless team_member.nil? team_member.destroy else diff --git a/lib/gitlab/access.rb b/lib/gitlab/access.rb index 87f9cfab608..411b2b9a3cc 100644 --- a/lib/gitlab/access.rb +++ b/lib/gitlab/access.rb @@ -16,6 +16,10 @@ module Gitlab options.values end + def all_values + options_with_owner.values + end + def options { "Guest" => GUEST, diff --git a/lib/tasks/gitlab/bulk_add_permission.rake b/lib/tasks/gitlab/bulk_add_permission.rake index 0e1a3d071e9..3d8c171dfa3 100644 --- a/lib/tasks/gitlab/bulk_add_permission.rake +++ b/lib/tasks/gitlab/bulk_add_permission.rake @@ -7,10 +7,10 @@ namespace :gitlab do projects_ids = Project.pluck(:id) puts "Importing #{user_ids.size} users into #{projects_ids.size} projects" - UsersProject.add_users_into_projects(projects_ids, user_ids, UsersProject::DEVELOPER) + ProjectMember.add_users_into_projects(projects_ids, user_ids, ProjectMember::DEVELOPER) puts "Importing #{admin_ids.size} admins into #{projects_ids.size} projects" - UsersProject.add_users_into_projects(projects_ids, admin_ids, UsersProject::MASTER) + ProjectMember.add_users_into_projects(projects_ids, admin_ids, ProjectMember::MASTER) end desc "GITLAB | Add a specific user to all projects (as a developer)" @@ -18,7 +18,7 @@ namespace :gitlab do user = User.find_by(email: args.email) project_ids = Project.pluck(:id) puts "Importing #{user.email} users into #{project_ids.size} projects" - UsersProject.add_users_into_projects(project_ids, Array.wrap(user.id), UsersProject::DEVELOPER) + ProjectMember.add_users_into_projects(project_ids, Array.wrap(user.id), ProjectMember::DEVELOPER) end desc "GITLAB | Add all users to all groups (admin users are added as owners)" @@ -30,8 +30,8 @@ namespace :gitlab do puts "Importing #{user_ids.size} users into #{groups.size} groups" puts "Importing #{admin_ids.size} admins into #{groups.size} groups" groups.each do |group| - group.add_users(user_ids, UsersGroup::DEVELOPER) - group.add_users(admin_ids, UsersGroup::OWNER) + group.add_users(user_ids, GroupMember::DEVELOPER) + group.add_users(admin_ids, GroupMember::OWNER) end end @@ -41,7 +41,7 @@ namespace :gitlab do groups = Group.all puts "Importing #{user.email} users into #{groups.size} groups" groups.each do |group| - group.add_users(Array.wrap(user.id), UsersGroup::DEVELOPER) + group.add_users(Array.wrap(user.id), GroupMember::DEVELOPER) end end end diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake index 248b567d007..9ec368254ac 100644 --- a/lib/tasks/gitlab/check.rake +++ b/lib/tasks/gitlab/check.rake @@ -17,7 +17,7 @@ namespace :gitlab do check_database_config_exists check_database_is_not_sqlite check_migrations_are_up - check_orphaned_users_groups + check_orphaned_group_members check_gitlab_config_exists check_gitlab_config_not_outdated check_log_writable @@ -194,13 +194,13 @@ namespace :gitlab do end end - def check_orphaned_users_groups - print "Database contains orphaned UsersGroups? ... " - if UsersGroup.where("user_id not in (select id from users)").count > 0 + def check_orphaned_group_members + print "Database contains orphaned GroupMembers? ... " + if GroupMember.where("user_id not in (select id from users)").count > 0 puts "yes".red try_fixing_it( "You can delete the orphaned records using something along the lines of:", - sudo_gitlab("bundle exec rails runner -e production 'UsersGroup.where(\"user_id NOT IN (SELECT id FROM users)\").delete_all'") + sudo_gitlab("bundle exec rails runner -e production 'GroupMember.where(\"user_id NOT IN (SELECT id FROM users)\").delete_all'") ) else puts "no".green |