gitlabhq/app/controllers/teams/projects_controller.rb

58 lines
1.7 KiB
Ruby
Raw Normal View History

2013-01-19 18:48:05 +01:00
class Teams::ProjectsController < Teams::ApplicationController
skip_before_filter :authorize_manage_user_team!, only: [:index]
2013-01-19 18:48:05 +01:00
def index
@projects = user_team.projects
@avaliable_projects = current_user.admin? ? Project.without_team(user_team) : (Project.personal(current_user) + current_user.projects).uniq
2013-01-19 18:48:05 +01:00
end
def new
user_team
@avaliable_projects = current_user.owned_projects.scoped
@avaliable_projects = @avaliable_projects.without_team(user_team) if user_team.projects.any?
redirect_to team_projects_path(user_team), notice: "No avalible projects." unless @avaliable_projects.any?
2013-01-19 18:48:05 +01:00
end
def create
redirect_to :back if params[:project_ids].blank?
project_ids = params[:project_ids]
access = params[:greatest_project_access]
# Reject non-allowed projects
allowed_project_ids = current_user.owned_projects.map(&:id)
project_ids.select! { |id| allowed_project_ids.include?(id) }
# Assign projects to team
user_team.assign_to_projects(project_ids, access)
redirect_to team_projects_path(user_team), notice: 'Team of users was successfully assigned to projects.'
2013-01-19 18:48:05 +01:00
end
def edit
2013-01-22 18:29:19 +01:00
team_project
2013-01-19 18:48:05 +01:00
end
def update
2013-01-22 18:29:19 +01:00
if user_team.update_project_access(team_project, params[:greatest_project_access])
redirect_to team_projects_path(user_team), notice: 'Access was successfully updated.'
else
render :edit
end
2013-01-19 18:48:05 +01:00
end
def destroy
2013-01-22 18:29:19 +01:00
user_team.resign_from_project(team_project)
redirect_to team_projects_path(user_team), notice: 'Team of users was successfully reassigned from project.'
2013-01-19 18:48:05 +01:00
end
2013-01-22 18:29:19 +01:00
private
def team_project
@project ||= user_team.projects.find_with_namespace(params[:id])
2013-01-22 18:29:19 +01:00
end
2013-01-19 18:48:05 +01:00
end