From 5a2c87630c1b107cf0174f772f2e75d3411687f8 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 28 Aug 2017 20:02:55 +0200 Subject: [PATCH 1/9] adapt dir permissions for openshift and add dumb-init This commit updates directory permissions to be compatible with OpenShift which starts the container with an arbitrary uid which is member of the root group. For more information please consult https://docs.openshift.org/latest/creating_images/guidelines.html. dumb-init is added to have a proper PID 1. bash should not run as PID 1 as this could lead to improper container shutdown. --- Dockerfile | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index dab432ca..4cc5c04c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,6 +16,12 @@ RUN cd /usr/bin && \ tar -xf dockerize.tar.gz && \ rm dockerize.tar.gz +# dumb-init for a proper PID 1 +RUN cd /tmp && \ + wget https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \ + dpkg -i dumb-init_1.2.0_amd64.deb && \ + rm dumb-init_1.2.0_amd64.deb + # explicitly add Gemfile and install dependencies using bundler to make use of # Docker's caching WORKDIR /osem/ @@ -25,12 +31,13 @@ RUN bundle install --without test development # add OSEM files and prepare them for use inside a Docker container COPY . /osem/ -RUN chown osem.osem /osem/ -R && \ +RUN chown -R osem.root /osem/ && \ + chmod -R g=u /osem/ && \ mv /osem/config/database.yml.docker /osem/config/database.yml # data directory is used to cache the secret key in a file ENV DATA_DIR /data -RUN install -d -m 0700 -o osem $DATA_DIR +RUN install -d -m 0770 -o osem -g root $DATA_DIR VOLUME ["$DATA_DIR"] USER osem @@ -42,4 +49,7 @@ COPY docker/init.sh /init.sh # from a webserver ENV RAILS_SERVE_STATIC_FILES 1 +# Runs "/usr/bin/dumb-init -- /my/script --with --args" +ENTRYPOINT ["/usr/bin/dumb-init", "--"] + CMD ["bash", "/init.sh"] From d00dc631f8a2570495eccdb9621a9d1cf405edf8 Mon Sep 17 00:00:00 2001 From: Naman Gupta <01namangupta@gmail.com> Date: Sat, 21 Oct 2017 02:42:08 +0530 Subject: [PATCH 2/9] Error opening link to difficulty level in Revision history is removed --- app/helpers/versions_helper.rb | 9 +++++++++ app/views/admin/versions/_object_desc_and_link.html.haml | 5 +---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/helpers/versions_helper.rb b/app/helpers/versions_helper.rb index 5788fe9d..7827a5ef 100644 --- a/app/helpers/versions_helper.rb +++ b/app/helpers/versions_helper.rb @@ -162,4 +162,13 @@ module VersionsHelper def users_role_change_description(version) version.event == 'create' ? 'added' : 'removed' end + + + def link_to_difficulty_level(version) + return 'deleted role' if version.conference_id.nil? + conference = Conference.find_by(id: version.conference_id) + difficulty_level = DifficultyLevel.find(version.item_id) + link_to difficulty_level.title, + admin_conference_program_difficulty_levels_path(conference.short_title) + end end diff --git a/app/views/admin/versions/_object_desc_and_link.html.haml b/app/views/admin/versions/_object_desc_and_link.html.haml index 4852a50f..7e24d8c2 100644 --- a/app/views/admin/versions/_object_desc_and_link.html.haml +++ b/app/views/admin/versions/_object_desc_and_link.html.haml @@ -207,10 +207,7 @@ - when 'DifficultyLevel' difficulty level - - difficulty_level = current_or_last_object_state(version.item_type, version.item_id) - = link_if_alive version, difficulty_level.title, - admin_conference_program_difficulty_level_path(conference_short_title, version.item_id), - conference + = link_to_difficulty_level(version) - when 'Splashpage' = link_if_alive version, 'splashpage', From 15813f9be642bcdd6e8a1de5c7735952ff0d294f Mon Sep 17 00:00:00 2001 From: Naman Gupta <01namangupta@gmail.com> Date: Sun, 22 Oct 2017 13:09:43 +0530 Subject: [PATCH 3/9] difficulty level code redundancy is removed --- app/helpers/versions_helper.rb | 10 +--------- .../admin/versions/_object_desc_and_link.html.haml | 10 +++++++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/helpers/versions_helper.rb b/app/helpers/versions_helper.rb index 7827a5ef..b1d6915d 100644 --- a/app/helpers/versions_helper.rb +++ b/app/helpers/versions_helper.rb @@ -162,13 +162,5 @@ module VersionsHelper def users_role_change_description(version) version.event == 'create' ? 'added' : 'removed' end - - - def link_to_difficulty_level(version) - return 'deleted role' if version.conference_id.nil? - conference = Conference.find_by(id: version.conference_id) - difficulty_level = DifficultyLevel.find(version.item_id) - link_to difficulty_level.title, - admin_conference_program_difficulty_levels_path(conference.short_title) - end + end diff --git a/app/views/admin/versions/_object_desc_and_link.html.haml b/app/views/admin/versions/_object_desc_and_link.html.haml index 7e24d8c2..ef791dd1 100644 --- a/app/views/admin/versions/_object_desc_and_link.html.haml +++ b/app/views/admin/versions/_object_desc_and_link.html.haml @@ -207,7 +207,15 @@ - when 'DifficultyLevel' difficulty level - = link_to_difficulty_level(version) + - difficulty_level = DifficultyLevel.find_by(id: version.item_id) + - if difficulty_level.nil? + = 'Difficulty Level Deleted' + - else + - conference = Conference.find_by(id: version.conference_id) + - unless conference.nil? + = link_to difficulty_level.title, admin_conference_program_difficulty_levels_path(conference.short_title) + - else + = difficulty_level.title - when 'Splashpage' = link_if_alive version, 'splashpage', From 0cd8d21611aa70edd6abfdf007ac2463a33cacaa Mon Sep 17 00:00:00 2001 From: Naman Gupta <01namangupta@gmail.com> Date: Sun, 22 Oct 2017 16:30:54 +0530 Subject: [PATCH 4/9] minor changes --- app/helpers/versions_helper.rb | 3 +-- .../admin/versions/_object_desc_and_link.html.haml | 11 ++--------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/app/helpers/versions_helper.rb b/app/helpers/versions_helper.rb index b1d6915d..1baca035 100644 --- a/app/helpers/versions_helper.rb +++ b/app/helpers/versions_helper.rb @@ -162,5 +162,4 @@ module VersionsHelper def users_role_change_description(version) version.event == 'create' ? 'added' : 'removed' end - -end +end \ No newline at end of file diff --git a/app/views/admin/versions/_object_desc_and_link.html.haml b/app/views/admin/versions/_object_desc_and_link.html.haml index ef791dd1..6b182c2f 100644 --- a/app/views/admin/versions/_object_desc_and_link.html.haml +++ b/app/views/admin/versions/_object_desc_and_link.html.haml @@ -207,15 +207,8 @@ - when 'DifficultyLevel' difficulty level - - difficulty_level = DifficultyLevel.find_by(id: version.item_id) - - if difficulty_level.nil? - = 'Difficulty Level Deleted' - - else - - conference = Conference.find_by(id: version.conference_id) - - unless conference.nil? - = link_to difficulty_level.title, admin_conference_program_difficulty_levels_path(conference.short_title) - - else - = difficulty_level.title + - difficulty_level = current_or_last_object_state(version.item_type, version.item_id) + = link_if_alive version, difficulty_level.title,admin_conference_program_difficulty_levels_path(conference_short_title), conference - when 'Splashpage' = link_if_alive version, 'splashpage', From 77d8bfe49643bb593b6195843956bf2569b9b799 Mon Sep 17 00:00:00 2001 From: Naman Gupta <01namangupta@gmail.com> Date: Sun, 22 Oct 2017 17:02:17 +0530 Subject: [PATCH 5/9] styling failing error is corrected minor changes --- app/helpers/versions_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/versions_helper.rb b/app/helpers/versions_helper.rb index 1baca035..5788fe9d 100644 --- a/app/helpers/versions_helper.rb +++ b/app/helpers/versions_helper.rb @@ -162,4 +162,4 @@ module VersionsHelper def users_role_change_description(version) version.event == 'create' ? 'added' : 'removed' end -end \ No newline at end of file +end From 01abbfecc4cb2d68c47328f4f6d6a6456a971012 Mon Sep 17 00:00:00 2001 From: namangupta01 <01namangupta@gmail.com> Date: Fri, 4 Aug 2017 01:29:30 +0530 Subject: [PATCH 6/9] Speaker is ask to register only when registration_period is set --- app/views/proposals/index.html.haml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/views/proposals/index.html.haml b/app/views/proposals/index.html.haml index 5ed332dc..43b17199 100644 --- a/app/views/proposals/index.html.haml +++ b/app/views/proposals/index.html.haml @@ -49,6 +49,7 @@ %br It will also be more likely that visitors find your proposal interesting enough to attend. + - if Conference.where(short_title: params[:conference_id]).first.registration_period %p %strong Why do I need to register to the conference? @@ -73,7 +74,8 @@ = link_to registered_text(event), registrations_conference_program_proposal_path(@conference.short_title, event), class: 'btn btn-xs btn-danger' %td.col-md-2{style: "padding:20px 8px 20px 8px;"} - = link_to 'Complete your proposal', 'javascript: void(0)', "type"=>"button", "data-trigger"=>"focus", "data-toggle"=>"popover", "title"=>"Your todo list", "data-content"=>"#{render partial: 'tooltip', locals: { event: event} }" + - if Conference.where(short_title: params[:conference_id]).first.registration_period + = link_to 'Complete your proposal', 'javascript: void(0)', "type"=>"button", "data-trigger"=>"focus", "data-toggle"=>"popover", "title"=>"Your todo list", "data-content"=>"#{render partial: 'tooltip', locals: { event: event} }" - progress_percentage = event.calculate_progress .progress From b1f32caf7cef65358aff15d70f42f90b9848892c Mon Sep 17 00:00:00 2001 From: namangupta01 <01namangupta@gmail.com> Date: Sun, 6 Aug 2017 01:13:14 +0530 Subject: [PATCH 7/9] speaker is only ask to register when registrations are open and speaker haven't registered yet --- app/views/proposals/_tooltip.html.haml | 13 +++++----- app/views/proposals/index.html.haml | 36 ++++++++++++++------------ 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/app/views/proposals/_tooltip.html.haml b/app/views/proposals/_tooltip.html.haml index 168d2d26..dba9c991 100644 --- a/app/views/proposals/_tooltip.html.haml +++ b/app/views/proposals/_tooltip.html.haml @@ -1,11 +1,12 @@ - progress_status = event.progress_status %ul.list-unstyled - %li{'class'=>class_for_todo(progress_status['registered'])} - %span{'class'=>icon_for_todo(progress_status['registered'])} - - if progress_status['registered'] - Speaker(s) registered to the conference - - else - = link_to 'Speaker(s) not registered to the conference', new_conference_conference_registration_path(event.program.conference.short_title) + - if @conference.registration_open? || (@conference.user_registered? current_user) + %li{'class'=>class_for_todo(progress_status['registered'])} + %span{'class'=>icon_for_todo(progress_status['registered'])} + - if progress_status['registered'] + Speaker(s) registered to the conference + - else + = link_to 'Speaker(s) not registered to the conference', new_conference_conference_registration_path(event.program.conference.short_title) %li{'class'=>class_for_todo(progress_status['biographies'])} %span{'class'=>icon_for_todo(progress_status['biographies'])} - if progress_status['biographies'] diff --git a/app/views/proposals/index.html.haml b/app/views/proposals/index.html.haml index 43b17199..ac833747 100644 --- a/app/views/proposals/index.html.haml +++ b/app/views/proposals/index.html.haml @@ -48,13 +48,12 @@ The more information you add to your proposal, the more likely it is that the conference organizers accept your proposal. %br It will also be more likely that visitors find your proposal interesting enough to attend. - - - if Conference.where(short_title: params[:conference_id]).first.registration_period - %p - %strong - Why do I need to register to the conference? - %p - Knowing the number of visitors for the conference helps the organizers plan better. + - if (@conference.registration_open?) && !(@conference.user_registered? current_user) + %p + %strong + Why do I need to register to the conference? + %p + Knowing the number of visitors for the conference helps the organizers plan better. %table.table.table-striped#events - @events.each do |event| @@ -74,15 +73,20 @@ = link_to registered_text(event), registrations_conference_program_proposal_path(@conference.short_title, event), class: 'btn btn-xs btn-danger' %td.col-md-2{style: "padding:20px 8px 20px 8px;"} - - if Conference.where(short_title: params[:conference_id]).first.registration_period - = link_to 'Complete your proposal', 'javascript: void(0)', "type"=>"button", "data-trigger"=>"focus", "data-toggle"=>"popover", "title"=>"Your todo list", "data-content"=>"#{render partial: 'tooltip', locals: { event: event} }" - - - progress_percentage = event.calculate_progress - .progress - %div{class: "progress-bar #{event_progress_color(progress_percentage)}", style: "width:#{progress_percentage}%;"} - = event.progress_status.reject{ |_key, value| value || value.nil? }.length - left - + = link_to 'Complete your proposal', 'javascript: void(0)', "type"=>"button", "data-trigger"=>"focus", "data-toggle"=>"popover", "title"=>"Your todo list", "data-content"=>"#{render partial: 'tooltip', locals: { event: event} }" + - if (@conference.registration_open?) || (@conference.user_registered? current_user) + - progress_percentage = event.calculate_progress + .progress + %div{class: "progress-bar #{event_progress_color(progress_percentage)}", style: "width:#{progress_percentage}%;"} + = event.progress_status.reject{ |_key, value| value || value.nil? }.length + left + - else + - progress_list = event.progress_status + - progress_percentage = (100 * progress_list.values.count(true) / (progress_list.values.compact.count-1)).to_s + .progress + %div{class: "progress-bar #{event_progress_color(progress_percentage)}", style: "width:#{progress_percentage}%;"} + = event.progress_status.reject{ |_key, value| value || value.nil? }.length-1 + left %td.col-md-3{style: "padding:20px 0px 20px 0px;"} .pull-right - if event.transition_possible? :confirm From e607aca68015b7cd339496311e92b62941df00a9 Mon Sep 17 00:00:00 2001 From: Your Name <01namangupta@gmail.com> Date: Fri, 13 Oct 2017 02:39:36 +0530 Subject: [PATCH 8/9] user ability for registration is used for chcking whether a user can register or not --- app/views/proposals/_tooltip.html.haml | 2 +- app/views/proposals/index.html.haml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/proposals/_tooltip.html.haml b/app/views/proposals/_tooltip.html.haml index dba9c991..b10b5a7a 100644 --- a/app/views/proposals/_tooltip.html.haml +++ b/app/views/proposals/_tooltip.html.haml @@ -1,6 +1,6 @@ - progress_status = event.progress_status %ul.list-unstyled - - if @conference.registration_open? || (@conference.user_registered? current_user) + - if can? :create, @conference.registrations.new %li{'class'=>class_for_todo(progress_status['registered'])} %span{'class'=>icon_for_todo(progress_status['registered'])} - if progress_status['registered'] diff --git a/app/views/proposals/index.html.haml b/app/views/proposals/index.html.haml index ac833747..d22c325e 100644 --- a/app/views/proposals/index.html.haml +++ b/app/views/proposals/index.html.haml @@ -48,7 +48,7 @@ The more information you add to your proposal, the more likely it is that the conference organizers accept your proposal. %br It will also be more likely that visitors find your proposal interesting enough to attend. - - if (@conference.registration_open?) && !(@conference.user_registered? current_user) + - if can? :create, @conference.registrations.new %p %strong Why do I need to register to the conference? @@ -74,7 +74,7 @@ %td.col-md-2{style: "padding:20px 8px 20px 8px;"} = link_to 'Complete your proposal', 'javascript: void(0)', "type"=>"button", "data-trigger"=>"focus", "data-toggle"=>"popover", "title"=>"Your todo list", "data-content"=>"#{render partial: 'tooltip', locals: { event: event} }" - - if (@conference.registration_open?) || (@conference.user_registered? current_user) + - if can? :create, @conference.registrations.new - progress_percentage = event.calculate_progress .progress %div{class: "progress-bar #{event_progress_color(progress_percentage)}", style: "width:#{progress_percentage}%;"} From a0e3ea75ed1958fe93a0f607f729f10825ceee8c Mon Sep 17 00:00:00 2001 From: Naman Gupta <01namangupta@gmail.com> Date: Thu, 2 Nov 2017 21:44:12 +0530 Subject: [PATCH 9/9] consecutive ruby lines are made into the ruby filter --- app/views/proposals/index.html.haml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/proposals/index.html.haml b/app/views/proposals/index.html.haml index d22c325e..bc704296 100644 --- a/app/views/proposals/index.html.haml +++ b/app/views/proposals/index.html.haml @@ -67,7 +67,7 @@ %small.text-muted = event.event_type.title = "(#{event.event_type.length} min)" - = "in #{event.track.name}" if event.track + = "in #{event.traistck.name}" if event.track - if event.require_registration %br = link_to registered_text(event), registrations_conference_program_proposal_path(@conference.short_title, event), class: 'btn btn-xs btn-danger' @@ -81,8 +81,9 @@ = event.progress_status.reject{ |_key, value| value || value.nil? }.length left - else - - progress_list = event.progress_status - - progress_percentage = (100 * progress_list.values.count(true) / (progress_list.values.compact.count-1)).to_s + :ruby + progress_list = event.progress_status + progress_percentage = (100 * progress_list.values.count(true) / (progress_list.values.compact.count-1)).to_s .progress %div{class: "progress-bar #{event_progress_color(progress_percentage)}", style: "width:#{progress_percentage}%;"} = event.progress_status.reject{ |_key, value| value || value.nil? }.length-1