From 120f9abaa15ce0feec1dc457ad3dc3787e4fbfc6 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 3 Nov 2015 21:28:07 +0100 Subject: Add GitLab Pages - The pages are created when build artifacts for `pages` job are uploaded - Pages serve the content under: http://group.pages.domain.com/project - Pages can be used to serve the group page, special project named as host: group.pages.domain.com - User can provide own 403 and 404 error pages by creating 403.html and 404.html in group page project - Pages can be explicitly removed from the project by clicking Remove Pages in Project Settings - The size of pages is limited by Application Setting: max pages size, which limits the maximum size of unpacked archive (default: 100MB) - The public/ is extracted from artifacts and content is served as static pages - Pages asynchronous worker use `dd` to limit the unpacked tar size - Pages needs to be explicitly enabled and domain needs to be specified in gitlab.yml - Pages are part of backups - Pages notify the deployment status using Commit Status API - Pages use a new sidekiq queue: pages - Pages use a separate nginx config which needs to be explicitly added --- app/controllers/admin/application_settings_controller.rb | 1 + app/controllers/projects_controller.rb | 10 ++++++++++ 2 files changed, 11 insertions(+) (limited to 'app/controllers') diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb index 543d5eac504..df8682e246e 100644 --- a/app/controllers/admin/application_settings_controller.rb +++ b/app/controllers/admin/application_settings_controller.rb @@ -109,6 +109,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController :plantuml_url, :max_artifacts_size, :max_attachment_size, + :max_pages_size, :metrics_enabled, :metrics_host, :metrics_method_call_threshold, diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 444ff837bb3..123dc179e73 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -151,6 +151,16 @@ class ProjectsController < Projects::ApplicationController end end + def remove_pages + return access_denied! unless can?(current_user, :remove_pages, @project) + + @project.remove_pages + + respond_to do |format| + format.html { redirect_to project_path(@project) } + end + end + def housekeeping ::Projects::HousekeepingService.new(@project).execute -- cgit v1.2.1 From 5f7257c27dace1dcb9d3eb4732caf68f061a8d68 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 9 Feb 2016 18:06:55 +0100 Subject: Initial work on GitLab Pages update --- app/controllers/projects/pages_controller.rb | 94 ++++++++++++++++++++++++++++ app/controllers/projects_controller.rb | 10 --- 2 files changed, 94 insertions(+), 10 deletions(-) create mode 100644 app/controllers/projects/pages_controller.rb (limited to 'app/controllers') diff --git a/app/controllers/projects/pages_controller.rb b/app/controllers/projects/pages_controller.rb new file mode 100644 index 00000000000..ef0ed505142 --- /dev/null +++ b/app/controllers/projects/pages_controller.rb @@ -0,0 +1,94 @@ +class Projects::PagesController < Projects::ApplicationController + layout 'project_settings' + + before_action :authorize_update_pages!, except: [:show] + before_action :authorize_remove_pages!, only: :destroy + + helper_method :valid_certificate?, :valid_certificate_key? + helper_method :valid_key_for_certificiate?, :valid_certificate_intermediates? + helper_method :certificate, :certificate_key + + def show + end + + def update + if @project.update_attributes(pages_params) + redirect_to namespace_project_pages_path(@project.namespace, @project) + else + render 'show' + end + end + + def certificate + @project.remove_pages_certificate + end + + def destroy + @project.remove_pages + + respond_to do |format| + format.html { redirect_to project_path(@project) } + end + end + + private + + def pages_params + params.require(:project).permit( + :pages_custom_certificate, + :pages_custom_certificate_key, + :pages_custom_domain, + :pages_redirect_http, + ) + end + + def valid_certificate? + certificate.present? + end + + def valid_certificate_key? + certificate_key.present? + end + + def valid_key_for_certificiate? + return false unless certificate + return false unless certificate_key + + certificate.verify(certificate_key) + rescue OpenSSL::X509::CertificateError + false + end + + def valid_certificate_intermediates? + return false unless certificate + + store = OpenSSL::X509::Store.new + store.set_default_paths + + # This forces to load all intermediate certificates stored in `pages_custom_certificate` + Tempfile.open('project_certificate') do |f| + f.write(@project.pages_custom_certificate) + f.flush + store.add_file(f.path) + end + + store.verify(certificate) + rescue OpenSSL::X509::StoreError + false + end + + def certificate + return unless @project.pages_custom_certificate + + @certificate ||= OpenSSL::X509::Certificate.new(@project.pages_custom_certificate) + rescue OpenSSL::X509::CertificateError + nil + end + + def certificate_key + return unless @project.pages_custom_certificate_key + @certificate_key ||= OpenSSL::PKey::RSA.new(@project.pages_custom_certificate_key) + rescue OpenSSL::PKey::PKeyError + nil + end +end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 123dc179e73..444ff837bb3 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -151,16 +151,6 @@ class ProjectsController < Projects::ApplicationController end end - def remove_pages - return access_denied! unless can?(current_user, :remove_pages, @project) - - @project.remove_pages - - respond_to do |format| - format.html { redirect_to project_path(@project) } - end - end - def housekeeping ::Projects::HousekeepingService.new(@project).execute -- cgit v1.2.1 From 930a7030b5a0080128b2fe3e2b9506717c54a6a5 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Tue, 9 Feb 2016 19:04:39 +0100 Subject: Implement proper verification of certificate's public_key against the private_key --- app/controllers/projects/pages_controller.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/pages_controller.rb b/app/controllers/projects/pages_controller.rb index ef0ed505142..359544472e9 100644 --- a/app/controllers/projects/pages_controller.rb +++ b/app/controllers/projects/pages_controller.rb @@ -54,8 +54,9 @@ class Projects::PagesController < Projects::ApplicationController return false unless certificate return false unless certificate_key - certificate.verify(certificate_key) - rescue OpenSSL::X509::CertificateError + # We compare the public key stored in certificate with public key from certificate key + certificate.public_key.to_pem == certificate_key.public_key.to_pem + rescue OpenSSL::X509::CertificateError, OpenSSL::PKey::PKeyError false end -- cgit v1.2.1 From f034f6b3ec5dc8b72f43c954ddb34bae037be254 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 10 Feb 2016 11:37:27 +0100 Subject: WIP --- app/controllers/projects/pages_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/pages_controller.rb b/app/controllers/projects/pages_controller.rb index 359544472e9..055f182ae00 100644 --- a/app/controllers/projects/pages_controller.rb +++ b/app/controllers/projects/pages_controller.rb @@ -89,7 +89,7 @@ class Projects::PagesController < Projects::ApplicationController def certificate_key return unless @project.pages_custom_certificate_key @certificate_key ||= OpenSSL::PKey::RSA.new(@project.pages_custom_certificate_key) - rescue OpenSSL::PKey::PKeyError + rescue OpenSSL::PKey::PKeyError, OpenSSL::Cipher::CipherError nil end end -- cgit v1.2.1 From 13b6bad17ec46eb78878f6972da1e7e34be86bb5 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 10 Feb 2016 15:06:31 +0100 Subject: Implement extra domains and save pages configuration --- app/controllers/projects/pages_controller.rb | 94 ++++++++++------------------ 1 file changed, 33 insertions(+), 61 deletions(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/pages_controller.rb b/app/controllers/projects/pages_controller.rb index 055f182ae00..82814afe196 100644 --- a/app/controllers/projects/pages_controller.rb +++ b/app/controllers/projects/pages_controller.rb @@ -2,25 +2,45 @@ class Projects::PagesController < Projects::ApplicationController layout 'project_settings' before_action :authorize_update_pages!, except: [:show] - before_action :authorize_remove_pages!, only: :destroy + before_action :authorize_remove_pages!, only: [:remove_pages] + before_action :label, only: [:destroy] + before_action :domain, only: [:show] helper_method :valid_certificate?, :valid_certificate_key? helper_method :valid_key_for_certificiate?, :valid_certificate_intermediates? helper_method :certificate, :certificate_key + def index + @domains = @project.pages_domains.order(:domain) + end + def show end - def update - if @project.update_attributes(pages_params) + def new + @domain = @project.pages_domains.new + end + + def create + @domain = @project.pages_domains.create(pages_domain_params) + + if @domain.valid? redirect_to namespace_project_pages_path(@project.namespace, @project) else - render 'show' + render 'new' end end - def certificate - @project.remove_pages_certificate + def destroy + @domain.destroy + + respond_to do |format| + format.html do + redirect_to(namespace_project_pages_path(@project.namespace, @project), + notice: 'Domain was removed') + end + format.js + end end def destroy @@ -33,63 +53,15 @@ class Projects::PagesController < Projects::ApplicationController private - def pages_params - params.require(:project).permit( - :pages_custom_certificate, - :pages_custom_certificate_key, - :pages_custom_domain, - :pages_redirect_http, + def pages_domain_params + params.require(:pages_domain).permit( + :certificate, + :key, + :domain ) end - def valid_certificate? - certificate.present? - end - - def valid_certificate_key? - certificate_key.present? - end - - def valid_key_for_certificiate? - return false unless certificate - return false unless certificate_key - - # We compare the public key stored in certificate with public key from certificate key - certificate.public_key.to_pem == certificate_key.public_key.to_pem - rescue OpenSSL::X509::CertificateError, OpenSSL::PKey::PKeyError - false - end - - def valid_certificate_intermediates? - return false unless certificate - - store = OpenSSL::X509::Store.new - store.set_default_paths - - # This forces to load all intermediate certificates stored in `pages_custom_certificate` - Tempfile.open('project_certificate') do |f| - f.write(@project.pages_custom_certificate) - f.flush - store.add_file(f.path) - end - - store.verify(certificate) - rescue OpenSSL::X509::StoreError - false - end - - def certificate - return unless @project.pages_custom_certificate - - @certificate ||= OpenSSL::X509::Certificate.new(@project.pages_custom_certificate) - rescue OpenSSL::X509::CertificateError - nil - end - - def certificate_key - return unless @project.pages_custom_certificate_key - @certificate_key ||= OpenSSL::PKey::RSA.new(@project.pages_custom_certificate_key) - rescue OpenSSL::PKey::PKeyError, OpenSSL::Cipher::CipherError - nil + def domain + @domain ||= @project.pages_domains.find_by(domain: params[:id].to_s) end end -- cgit v1.2.1 From e5e2e7b70315cbcee12db66ebc73dbd0ef4a14ae Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 10 Feb 2016 16:21:39 +0100 Subject: Fix the remove_pages --- app/controllers/projects/pages_controller.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'app/controllers') diff --git a/app/controllers/projects/pages_controller.rb b/app/controllers/projects/pages_controller.rb index 82814afe196..0c7f2bd5784 100644 --- a/app/controllers/projects/pages_controller.rb +++ b/app/controllers/projects/pages_controller.rb @@ -51,6 +51,11 @@ class Projects::PagesController < Projects::ApplicationController end end + def remove_pages + project.remove_pages + project.pages_domains.destroy_all + end + private def pages_domain_params -- cgit v1.2.1 From b7fd7daee4610674a2301c618fd60b8997f2cf8a Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 14 Feb 2016 19:58:45 +0100 Subject: Fix rubocop complains --- app/controllers/projects/pages_controller.rb | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/pages_controller.rb b/app/controllers/projects/pages_controller.rb index 0c7f2bd5784..2268d2d8aa2 100644 --- a/app/controllers/projects/pages_controller.rb +++ b/app/controllers/projects/pages_controller.rb @@ -43,26 +43,25 @@ class Projects::PagesController < Projects::ApplicationController end end - def destroy - @project.remove_pages - - respond_to do |format| - format.html { redirect_to project_path(@project) } - end - end - def remove_pages project.remove_pages project.pages_domains.destroy_all + + respond_to do |format| + format.html do + redirect_to(namespace_project_pages_path(@project.namespace, @project), + notice: 'Pages were removed') + end + end end private def pages_domain_params params.require(:pages_domain).permit( - :certificate, - :key, - :domain + :certificate, + :key, + :domain ) end -- cgit v1.2.1 From 84edc9a22f5d858cb02f32d22b66c92fb939378a Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 14 Feb 2016 21:06:24 +0100 Subject: Added spinach tests --- app/controllers/projects/pages_domains_controller.rb | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/controllers/projects/pages_domains_controller.rb (limited to 'app/controllers') diff --git a/app/controllers/projects/pages_domains_controller.rb b/app/controllers/projects/pages_domains_controller.rb new file mode 100644 index 00000000000..e69de29bb2d -- cgit v1.2.1 From 7f12cb0eed06ad3f83126a3a8038e7fa658f4eac Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Sun, 14 Feb 2016 21:22:44 +0100 Subject: Split PagesController into PagesController and PagesDomainsController 1. PagesController is used to show all domains and general overview of Pages 2. PagesDomainsController is used to manage pages domains --- app/controllers/projects/pages_controller.rb | 54 +--------------------- .../projects/pages_domains_controller.rb | 49 ++++++++++++++++++++ 2 files changed, 51 insertions(+), 52 deletions(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/pages_controller.rb b/app/controllers/projects/pages_controller.rb index 2268d2d8aa2..b73f998392d 100644 --- a/app/controllers/projects/pages_controller.rb +++ b/app/controllers/projects/pages_controller.rb @@ -1,49 +1,13 @@ class Projects::PagesController < Projects::ApplicationController layout 'project_settings' - before_action :authorize_update_pages!, except: [:show] - before_action :authorize_remove_pages!, only: [:remove_pages] - before_action :label, only: [:destroy] - before_action :domain, only: [:show] - - helper_method :valid_certificate?, :valid_certificate_key? - helper_method :valid_key_for_certificiate?, :valid_certificate_intermediates? - helper_method :certificate, :certificate_key - - def index - @domains = @project.pages_domains.order(:domain) - end + before_action :authorize_update_pages! def show - end - - def new - @domain = @project.pages_domains.new - end - - def create - @domain = @project.pages_domains.create(pages_domain_params) - - if @domain.valid? - redirect_to namespace_project_pages_path(@project.namespace, @project) - else - render 'new' - end + @domains = @project.pages_domains.order(:domain) end def destroy - @domain.destroy - - respond_to do |format| - format.html do - redirect_to(namespace_project_pages_path(@project.namespace, @project), - notice: 'Domain was removed') - end - format.js - end - end - - def remove_pages project.remove_pages project.pages_domains.destroy_all @@ -54,18 +18,4 @@ class Projects::PagesController < Projects::ApplicationController end end end - - private - - def pages_domain_params - params.require(:pages_domain).permit( - :certificate, - :key, - :domain - ) - end - - def domain - @domain ||= @project.pages_domains.find_by(domain: params[:id].to_s) - end end diff --git a/app/controllers/projects/pages_domains_controller.rb b/app/controllers/projects/pages_domains_controller.rb index e69de29bb2d..b8c253f6ae3 100644 --- a/app/controllers/projects/pages_domains_controller.rb +++ b/app/controllers/projects/pages_domains_controller.rb @@ -0,0 +1,49 @@ +class Projects::PagesDomainsController < Projects::ApplicationController + layout 'project_settings' + + before_action :authorize_update_pages!, except: [:show] + before_action :domain, only: [:show, :destroy] + + def show + end + + def new + @domain = @project.pages_domains.new + end + + def create + @domain = @project.pages_domains.create(pages_domain_params) + + if @domain.valid? + redirect_to namespace_project_pages_path(@project.namespace, @project) + else + render 'new' + end + end + + def destroy + @domain.destroy + + respond_to do |format| + format.html do + redirect_to(namespace_project_pages_path(@project.namespace, @project), + notice: 'Domain was removed') + end + format.js + end + end + + private + + def pages_domain_params + params.require(:pages_domain).permit( + :certificate, + :key, + :domain + ) + end + + def domain + @domain ||= @project.pages_domains.find_by(domain: params[:id].to_s) + end +end -- cgit v1.2.1 From 3e6cbcdd00017acae132daafa5af35f16bf48e3c Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Fri, 19 Feb 2016 15:11:26 +0100 Subject: Fix pages abilities --- app/controllers/projects/pages_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/pages_controller.rb b/app/controllers/projects/pages_controller.rb index b73f998392d..fbd18b68141 100644 --- a/app/controllers/projects/pages_controller.rb +++ b/app/controllers/projects/pages_controller.rb @@ -1,7 +1,8 @@ class Projects::PagesController < Projects::ApplicationController layout 'project_settings' - before_action :authorize_update_pages! + before_action :authorize_read_pages!, only: [:show] + before_action :authorize_update_pages!, except: [:show] def show @domains = @project.pages_domains.order(:domain) -- cgit v1.2.1 From 63dac85385c6f82db6c6465876d76f67173ebc3b Mon Sep 17 00:00:00 2001 From: blackst0ne Date: Sat, 4 Feb 2017 00:00:26 +1100 Subject: Fixed redirection from http://someproject.git to http://someproject --- app/controllers/projects/application_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/application_controller.rb b/app/controllers/projects/application_controller.rb index b2ff36f6538..f9d550ffb85 100644 --- a/app/controllers/projects/application_controller.rb +++ b/app/controllers/projects/application_controller.rb @@ -18,7 +18,7 @@ class Projects::ApplicationController < ApplicationController # to # localhost/group/project # - if id =~ /\.git\Z/ + if params[:format] == 'git' redirect_to request.original_url.gsub(/\.git\/?\Z/, '') return end -- cgit v1.2.1 From a132b7d8ce0d962272de5932568a46b64b6dfc5e Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Tue, 24 Jan 2017 10:27:41 +0000 Subject: Add issues to boards list This removes the backlog list & instead creates a modal window that will list all issues that are not part of a list for easy adding onto the board Closes #26205 --- app/controllers/projects/boards_controller.rb | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/boards_controller.rb b/app/controllers/projects/boards_controller.rb index 808affa4f98..7a2e2324323 100644 --- a/app/controllers/projects/boards_controller.rb +++ b/app/controllers/projects/boards_controller.rb @@ -1,7 +1,7 @@ class Projects::BoardsController < Projects::ApplicationController include IssuableCollections - before_action :authorize_read_board!, only: [:index, :show] + # before_action :authorize_read_board!, only: [:index, :show, :backlog] def index @boards = ::Boards::ListService.new(project, current_user).execute @@ -25,6 +25,27 @@ class Projects::BoardsController < Projects::ApplicationController end end + def backlog + board = project.boards.find(params[:id]) + + @issues = issues_collection + @issues = @issues.where.not( + LabelLink.where("label_links.target_type = 'Issue' AND label_links.target_id = issues.id") + .where(label_id: board.lists.movable.pluck(:label_id)).limit(1).arel.exists + ) + @issues = @issues.page(params[:page]) + + render json: @issues.as_json( + labels: true, + only: [:iid, :title, :confidential, :due_date], + include: { + assignee: { only: [:id, :name, :username], methods: [:avatar_url] }, + milestone: { only: [:id, :title] } + }, + user: current_user + ) + end + private def authorize_read_board! -- cgit v1.2.1 From 38d84c1396b5264ba171df109c873469d371be73 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Wed, 25 Jan 2017 13:07:44 +0000 Subject: Changed where data gets loaded Changed what is hidden when data is loading --- app/controllers/projects/boards/lists_controller.rb | 4 ++++ app/controllers/projects/boards_controller.rb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/boards/lists_controller.rb b/app/controllers/projects/boards/lists_controller.rb index 67e3c9add81..ed65cae82dc 100644 --- a/app/controllers/projects/boards/lists_controller.rb +++ b/app/controllers/projects/boards/lists_controller.rb @@ -50,6 +50,10 @@ module Projects end end + def multiple + head :ok + end + private def authorize_admin_list! diff --git a/app/controllers/projects/boards_controller.rb b/app/controllers/projects/boards_controller.rb index 7a2e2324323..9e699fb9b3b 100644 --- a/app/controllers/projects/boards_controller.rb +++ b/app/controllers/projects/boards_controller.rb @@ -33,7 +33,7 @@ class Projects::BoardsController < Projects::ApplicationController LabelLink.where("label_links.target_type = 'Issue' AND label_links.target_id = issues.id") .where(label_id: board.lists.movable.pluck(:label_id)).limit(1).arel.exists ) - @issues = @issues.page(params[:page]) + @issues = @issues.page(params[:page]).per(50) render json: @issues.as_json( labels: true, -- cgit v1.2.1 From 3aabf0c6aa2b76ef4458250ca98876e3f268fe14 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Thu, 26 Jan 2017 16:03:07 +0000 Subject: Used issue bulk update instead of different endpoint --- app/controllers/projects/boards/lists_controller.rb | 4 ---- app/controllers/projects/boards_controller.rb | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/boards/lists_controller.rb b/app/controllers/projects/boards/lists_controller.rb index ed65cae82dc..67e3c9add81 100644 --- a/app/controllers/projects/boards/lists_controller.rb +++ b/app/controllers/projects/boards/lists_controller.rb @@ -50,10 +50,6 @@ module Projects end end - def multiple - head :ok - end - private def authorize_admin_list! diff --git a/app/controllers/projects/boards_controller.rb b/app/controllers/projects/boards_controller.rb index 9e699fb9b3b..ba9d0eaa265 100644 --- a/app/controllers/projects/boards_controller.rb +++ b/app/controllers/projects/boards_controller.rb @@ -37,7 +37,7 @@ class Projects::BoardsController < Projects::ApplicationController render json: @issues.as_json( labels: true, - only: [:iid, :title, :confidential, :due_date], + only: [:id, :iid, :title, :confidential, :due_date], include: { assignee: { only: [:id, :name, :username], methods: [:avatar_url] }, milestone: { only: [:id, :title] } -- cgit v1.2.1 From 0904e9b107ce78fed80830e00b8fc3621cb98f8f Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 27 Jan 2017 11:58:43 +0000 Subject: Infinite scrolling --- app/controllers/projects/boards_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/boards_controller.rb b/app/controllers/projects/boards_controller.rb index ba9d0eaa265..1eaa2ffdf29 100644 --- a/app/controllers/projects/boards_controller.rb +++ b/app/controllers/projects/boards_controller.rb @@ -33,7 +33,7 @@ class Projects::BoardsController < Projects::ApplicationController LabelLink.where("label_links.target_type = 'Issue' AND label_links.target_id = issues.id") .where(label_id: board.lists.movable.pluck(:label_id)).limit(1).arel.exists ) - @issues = @issues.page(params[:page]).per(50) + @issues = @issues.page(params[:page]).per(params[:per]) render json: @issues.as_json( labels: true, -- cgit v1.2.1 From 274987d5c0f7b04a9b7510c318c8df6dfab477df Mon Sep 17 00:00:00 2001 From: Douglas Barbosa Alexandre Date: Fri, 27 Jan 2017 16:21:11 -0200 Subject: Reuse endpoint to list issues for a list instead of create a new one --- .../projects/boards/issues_controller.rb | 2 +- app/controllers/projects/boards_controller.rb | 23 +--------------------- 2 files changed, 2 insertions(+), 23 deletions(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/boards/issues_controller.rb b/app/controllers/projects/boards/issues_controller.rb index dc33e1405f2..a061b575e21 100644 --- a/app/controllers/projects/boards/issues_controller.rb +++ b/app/controllers/projects/boards/issues_controller.rb @@ -59,7 +59,7 @@ module Projects end def filter_params - params.merge(board_id: params[:board_id], id: params[:list_id]) + params.merge(board_id: params[:board_id], id: params[:list_id]).compact end def move_params diff --git a/app/controllers/projects/boards_controller.rb b/app/controllers/projects/boards_controller.rb index 1eaa2ffdf29..808affa4f98 100644 --- a/app/controllers/projects/boards_controller.rb +++ b/app/controllers/projects/boards_controller.rb @@ -1,7 +1,7 @@ class Projects::BoardsController < Projects::ApplicationController include IssuableCollections - # before_action :authorize_read_board!, only: [:index, :show, :backlog] + before_action :authorize_read_board!, only: [:index, :show] def index @boards = ::Boards::ListService.new(project, current_user).execute @@ -25,27 +25,6 @@ class Projects::BoardsController < Projects::ApplicationController end end - def backlog - board = project.boards.find(params[:id]) - - @issues = issues_collection - @issues = @issues.where.not( - LabelLink.where("label_links.target_type = 'Issue' AND label_links.target_id = issues.id") - .where(label_id: board.lists.movable.pluck(:label_id)).limit(1).arel.exists - ) - @issues = @issues.page(params[:page]).per(params[:per]) - - render json: @issues.as_json( - labels: true, - only: [:id, :iid, :title, :confidential, :due_date], - include: { - assignee: { only: [:id, :name, :username], methods: [:avatar_url] }, - milestone: { only: [:id, :title] } - }, - user: current_user - ) - end - private def authorize_read_board! -- cgit v1.2.1 From c368b28cc9615b40881f5f39473314950e77aaa4 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Mon, 30 Jan 2017 15:39:40 +0000 Subject: Fixed issue with issue not persisting in list --- app/controllers/projects/boards/issues_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/boards/issues_controller.rb b/app/controllers/projects/boards/issues_controller.rb index a061b575e21..7fe61c6800d 100644 --- a/app/controllers/projects/boards/issues_controller.rb +++ b/app/controllers/projects/boards/issues_controller.rb @@ -73,7 +73,7 @@ module Projects def serialize_as_json(resource) resource.as_json( labels: true, - only: [:iid, :title, :confidential, :due_date], + only: [:id, :iid, :title, :confidential, :due_date], include: { assignee: { only: [:id, :name, :username], methods: [:avatar_url] }, milestone: { only: [:id, :title] } -- cgit v1.2.1 From 6c828906a24e374c68884c8884135ec1472721b8 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Mon, 30 Jan 2017 15:56:45 +0000 Subject: Disabled add issues button if no lists exist --- app/controllers/projects/boards/issues_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/boards/issues_controller.rb b/app/controllers/projects/boards/issues_controller.rb index 7fe61c6800d..61fef4dc133 100644 --- a/app/controllers/projects/boards/issues_controller.rb +++ b/app/controllers/projects/boards/issues_controller.rb @@ -7,7 +7,7 @@ module Projects def index issues = ::Boards::Issues::ListService.new(project, current_user, filter_params).execute - issues = issues.page(params[:page]) + issues = issues.page(params[:page]).per(params[:per] || 20) render json: { issues: serialize_as_json(issues), -- cgit v1.2.1 From 3d7ace470b1f4c0f4cf90db6b1f7f1243c112de9 Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Thu, 2 Feb 2017 21:16:23 -0200 Subject: Remove unnecessary queries for .atom and .json in Dashboard::ProjectsController#index --- app/controllers/dashboard/projects_controller.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'app/controllers') diff --git a/app/controllers/dashboard/projects_controller.rb b/app/controllers/dashboard/projects_controller.rb index c08eb811532..3ba8c2f8bb9 100644 --- a/app/controllers/dashboard/projects_controller.rb +++ b/app/controllers/dashboard/projects_controller.rb @@ -10,10 +10,8 @@ class Dashboard::ProjectsController < Dashboard::ApplicationController @projects = @projects.sort(@sort = params[:sort]) @projects = @projects.page(params[:page]) - @last_push = current_user.recent_push - respond_to do |format| - format.html + format.html { @last_push = current_user.recent_push } format.atom do event_filter load_events -- cgit v1.2.1 From 5d3816652e13cde6bf5e9de814d2c9d1e6593601 Mon Sep 17 00:00:00 2001 From: Adam Niedzielski Date: Thu, 26 Jan 2017 19:16:50 +0100 Subject: Introduce maximum session time for terminal websocket connection Store the value in application settings. Expose the value to Workhorse. --- app/controllers/admin/application_settings_controller.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'app/controllers') diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb index 543d5eac504..3f10ae81767 100644 --- a/app/controllers/admin/application_settings_controller.rb +++ b/app/controllers/admin/application_settings_controller.rb @@ -137,6 +137,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController :user_default_external, :user_oauth_applications, :version_check_enabled, + :terminal_max_session_time, disabled_oauth_sign_in_sources: [], import_sources: [], -- cgit v1.2.1