diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index caf7f31e..ff08b86a 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -89,3 +89,9 @@ a { .force-text-normal { color: #495057; } + +.terms { + overflow: scroll; + height: 55vh; + white-space: pre-line; +} diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index a47ada99..91673a70 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -54,7 +54,7 @@ class ApplicationController < ActionController::Base meeting_logout_url: request.base_url + logout_room_path(@room), meeting_recorded: true, moderator_message: "To invite someone to the meeting, send them this link:\n\n - #{request.base_url + Rails.configuration.relative_url_root + room_path(@room)}" + #{request.base_url + relative_root + room_path(@room)}" } end end diff --git a/app/controllers/main_controller.rb b/app/controllers/main_controller.rb index e0a46491..41632536 100644 --- a/app/controllers/main_controller.rb +++ b/app/controllers/main_controller.rb @@ -10,6 +10,6 @@ class MainController < ApplicationController def redirect_to_room # If the user is logged in already, move them along to their room. - redirect_to room_path(current_user.room.uid) if current_user + redirect_to room_path(current_user.room) if current_user end end diff --git a/app/controllers/rooms_controller.rb b/app/controllers/rooms_controller.rb index f5d10340..8180bb36 100644 --- a/app/controllers/rooms_controller.rb +++ b/app/controllers/rooms_controller.rb @@ -1,5 +1,6 @@ class RoomsController < ApplicationController + before_action :validate_accepted_terms, unless: -> { !Rails.configuration.terms } before_action :find_room, except: :create before_action :verify_room_ownership, except: [:create, :show, :join, :logout] @@ -159,4 +160,8 @@ class RoomsController < ApplicationController redirect_to root_path end end + + def validate_accepted_terms + redirect_to terms_path unless current_user.accepted_terms + end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index dd448a85..938ce351 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -73,6 +73,16 @@ class UsersController < ApplicationController end end end + + # GET /u/terms + def terms + redirect_to root_path unless current_user + + if params[:accept] == "true" + current_user.update_attribute(accepted_terms: true) + redirect_to current_user.main_room + end + end private diff --git a/app/helpers/sessions_helper.rb b/app/helpers/sessions_helper.rb index 4b40d120..8b45de68 100644 --- a/app/helpers/sessions_helper.rb +++ b/app/helpers/sessions_helper.rb @@ -3,7 +3,13 @@ module SessionsHelper # Logs a user into GreenLight. def login(user) session[:user_id] = user.id - redirect_to user.main_room + + # If there are not terms, or the user has accepted them, go to their room. + if !Rails.configuration.terms || user.accepted_terms then + redirect_to user.main_room + else + redirect_to terms_path + end end # Logs current user out of GreenLight. diff --git a/app/views/users/terms.html.erb b/app/views/users/terms.html.erb new file mode 100644 index 00000000..e00d52e2 --- /dev/null +++ b/app/views/users/terms.html.erb @@ -0,0 +1,18 @@ +
<%= Rails.configuration.terms %>
+